Heim > Web-Frontend > js-Tutorial > Javascript查询DBpedia小应用实例学习_javascript技巧

Javascript查询DBpedia小应用实例学习_javascript技巧

WBOY
Freigeben: 2016-05-16 17:40:50
Original
1267 Leute haben es durchsucht

Javascript查询DBpedia小应用
上一篇文章中,我们了解了SPARQL、SPARQL Endpoint,并简单做了一个SPARQLWrapper.js,来从DBpedia中查询了一些数据。
本文则尝试利用SPARQLWrapper.js来读取DBpedia的数据,并显示出来。

目标
通过输入一个英文单词,然后返回WIKI中相关的信息。
那么主要要解决的问题就是怎样的SPARQL语句能够查询到我们需要的东西。

先看一段简单的SPARQL查询语句

复制代码 代码如下:

PREFIX :
SELECT ?instrument
WHERE {
:andrew :playsInstrument ?instrument .
}

首先定义一个域名空间http://aabs.purl.org/music#。
然后选择这样子的instrument变量,他满足:
主语是http://aabs.purl.org/music#andrew,谓语是http://aabs.purl.org/music#playsInstrument,宾语是该instrument。

bif:contains()
bif:contains()是contains()函数的变种函数,顾名思义是判断是否包含的函数。
利用这个我们能查询到我们需要的数据了。
复制代码 代码如下:

prefix foaf:
select distinct ?url ?alma ?comment
where {
?s foaf:name ?sname .
?sname bif:contains 'China'.
?s foaf:depiction ?url .
?s dbpedia-owl:wikiPageExternalLink ?alma .
?s rdfs:comment ?comment .
}
limit 10

这段SPARQL语句是查询包含China的名字的词条,然后将其图片的url、homepage的url,以及简介返回回来。
下面让我们把整个程序写完。

完整代码
复制代码 代码如下:




SPARQL DEMO

<script> <BR>var $ = function(id){ <BR>return document.getElementById(id); <BR>}, <BR>sparql = new SPARQLWrapper("http://dbpedia.org/sparql"), <BR>results = []; <BR>function getInfo(name){ <BR>name = name.replace(/\s/g, "_"); <BR>var command = "prefix foaf: <http://xmlns.com/foaf/0.1/> " <BR>+ "select distinct ?url ?alma ?comment " <BR>+ "where { " <BR>+ "?s foaf:name ?sname . " <BR>+ "?sname bif:contains '" + name + "'. " <BR>+ "?s foaf:depiction ?url . " <BR>+ "?s dbpedia-owl:wikiPageExternalLink ?alma . " <BR>+ "?s rdfs:comment ?comment . " <BR>+ "} " <BR>+ "limit 10"; <BR>sparql.setQuery(command); <BR>sparql.query(function(json){ <BR>showInfo((eval("(" + json + ")")).results.bindings); <BR>}); <BR>} <BR>function showInfo(results){ <BR>var text = ""; <BR>if(results.length !== 0){ <BR>for(var i = 0; i < results.length; i++){ <BR>text += "<img src = '" + results[i].url.value + "' / alt="Javascript查询DBpedia小应用实例学习_javascript技巧" ><br />"; <BR>text += "homepage:" + "<a href = '" + results[i].alma.value + "' >" + results[i].alma.value + "<br />"; <BR>text += "<p>" + results[i].comment.value + "<br /><br /><br />"; <BR>$("result").innerHTML = text; <BR>} <BR>}else{ <BR>$("result").innerHTML = "没有任何相关信息!"; <BR>} <BR>} <BR></script>


目前只支持英文查询。








遗留问题
不太清楚中文怎么查询,如有知道的朋友,麻烦告知一下,谢谢。

例子
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage