作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 sparql 从 dbpedia 中获取摘要。我想在 Visual Studio C# 中的 ASP .NET 中运行下面的查询。这是我所做的。
<script>
var query= "\
PREFIX dbpedia: <http://dbpedia.org/resource/>\
PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>\
SELECT ?abstract\
WHERE {\
?s dbpedia:Junagadh
dbpedia-owl:abstract ?abstract\
}";
var queryUrl = url + "?query=" + encodeURIComponent(query) + "&format=json";
$.ajax({
dataType: "jsonp",
url: queryUrl,
success: function (_data) {
var results = _data.results.bindings;
for (var i in results) {
var src = results[i].abstract.value;
$('body').append(src);
}
}
});
我想对浏览器中输入的搜索词进行抽象。在这里我输入了“印度”。当我运行这段代码时,我没有在浏览器中获得输出。
所以我的问题是如何从 javascript 执行此查询并在浏览器中获取结果?
请帮帮我,谢谢。
编辑#1:
我尝试按照您建议的示例链接来运行 sparql 查询。我尝试了示例中给出的代码,但在第 17 行出现如下错误。
Version number '1.1' is invalid. Line 1, position 16.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Xml.XmlException: Version number '1.1' is invalid. Line 1, position 16.
source Error:
Line 16: //Make a SELECT query against the Endpoint
Line 17: SparqlResultSet results = endpoint.QueryWithResultSet("SELECT DISTINCT ?Concept WHERE {[] a ?Concept}");
Line 18: foreach (SparqlResult result in results)
Line 19: {
Stack Trace:
[XmlException: Version number '1.1' is invalid. Line 1, position 16.]
System.Xml.XmlTextReaderImpl.Throw(Exception e) +76
System.Xml.XmlTextReaderImpl.Throw(String res, String arg) +126
System.Xml.XmlTextReaderImpl.ParseXmlDeclaration(Boolean isTextDecl) +3983351
System.Xml.XmlTextReaderImpl.Read() +239
VDS.RDF.Parsing.SparqlXmlParser.Parse(SparqlXmlParserContext context) in e:\mercurial\dotnetrdf\Libraries\core\net40\Parsing\SPARQLXMLParser.cs:376
VDS.RDF.Parsing.SparqlXmlParser.Load(ISparqlResultsHandler handler, TextReader input) in e:\mercurial\dotnetrdf\Libraries\core\net40\Parsing\SPARQLXMLParser.cs:101
VDS.RDF.Parsing.SparqlXmlParser.Load(ISparqlResultsHandler handler, StreamReader input) in e:\mercurial\dotnetrdf\Libraries\core\net40\Parsing\SPARQLXMLParser.cs:124
VDS.RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(ISparqlResultsHandler handler, String sparqlQuery) in e:\mercurial\dotnetrdf\Libraries\core\net40\Query\SPARQLRemoteEndpoint.cs:309
VDS.RDF.Query.SparqlRemoteEndpoint.QueryWithResultSet(String sparqlQuery) in e:\mercurial\dotnetrdf\Libraries\core\net40\Query\SPARQLRemoteEndpoint.cs:284
test.Page_Load(Object sender, EventArgs e) in c:\Users\MKS\Documents\Visual Studio 2010\WebSites\WebSite3\test.aspx.cs:17
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
System.Web.UI.Control.OnLoad(EventArgs e) +99
System.Web.UI.Control.LoadRecursive() +50
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627
请帮帮我,谢谢。
最佳答案
您的查询完全错误。当您编写 SPARQL 查询时,您需要询问一个三元组 ?s ?p ?o
。如果您查看您的查询,那里有 4 个项目。因此,如果您需要所有语言的摘要,您需要索取:
SELECT ?abstract
WHERE {
dbpedia:Junagadh dbpedia-owl:abstract ?abstract.
}
如果您需要特定语言的摘要,则需要对其进行相应的过滤。例如,英文摘要为:
SELECT ?abstract
WHERE {
dbpedia:Junagadh dbpedia-owl:abstract ?abstract.
filter(lang(?abstract)='en')
}
如果您需要了解如何在 .net 环境中编写 SPARQL,请阅读这些 examples .
关于javascript - 如何在 vs 2010 中为 dbpedia 在 javascript 中运行 sparql 查询以获得抽象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412690/
我是一名优秀的程序员,十分优秀!