Javascript查詢DBpedia小應(yīng)用實(shí)例學(xué)習(xí)
Javascript查詢DBpedia小應(yīng)用
上一篇文章中,我們了解了SPARQL、SPARQL Endpoint,并簡單做了一個(gè)SPARQLWrapper.js,來從DBpedia中查詢了一些數(shù)據(jù)。
本文則嘗試?yán)肧PARQLWrapper.js來讀取DBpedia的數(shù)據(jù),并顯示出來。
目標(biāo)
通過輸入一個(gè)英文單詞,然后返回WIKI中相關(guān)的信息。
那么主要要解決的問題就是怎樣的SPARQL語句能夠查詢到我們需要的東西。
先看一段簡單的SPARQL查詢語句
PREFIX : <http://aabs.purl.org/music#>
SELECT ?instrument
WHERE {
:andrew :playsInstrument ?instrument .
}
首先定義一個(gè)域名空間http://aabs.purl.org/music#。
然后選擇這樣子的instrument變量,他滿足:
主語是http://aabs.purl.org/music#andrew,謂語是http://aabs.purl.org/music#playsInstrument,賓語是該instrument。
bif:contains()
bif:contains()是contains()函數(shù)的變種函數(shù),顧名思義是判斷是否包含的函數(shù)。
利用這個(gè)我們能查詢到我們需要的數(shù)據(jù)了。
prefix foaf: <http://xmlns.com/foaf/0.1/>
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,以及簡介返回回來。
下面讓我們把整個(gè)程序?qū)懲辍?
完整代碼
<html>
<head>
<meta charset="utf-8">
<title>SPARQL DEMO</title>
<script src="SPARQLWrapper.js"></script>
<script>
var $ = function(id){
return document.getElementById(id);
},
sparql = new SPARQLWrapper("http://dbpedia.org/sparql"),
results = [];
function getInfo(name){
name = name.replace(/\s/g, "_");
var command = "prefix foaf: <http://xmlns.com/foaf/0.1/> "
+ "select distinct ?url ?alma ?comment "
+ "where { "
+ "?s foaf:name ?sname . "
+ "?sname bif:contains '" + name + "'. "
+ "?s foaf:depiction ?url . "
+ "?s dbpedia-owl:wikiPageExternalLink ?alma . "
+ "?s rdfs:comment ?comment . "
+ "} "
+ "limit 10";
sparql.setQuery(command);
sparql.query(function(json){
showInfo((eval("(" + json + ")")).results.bindings);
});
}
function showInfo(results){
var text = "";
if(results.length !== 0){
for(var i = 0; i < results.length; i++){
text += "<img src = '" + results[i].url.value + "' /><br />";
text += "homepage:" + "<a href = '" + results[i].alma.value + "' >" + results[i].alma.value + "</a><br />";
text += "<p>" + results[i].comment.value + "</p><br /><br /><br />";
$("result").innerHTML = text;
}
}else{
$("result").innerHTML = "沒有任何相關(guān)信息!";
}
}
</script>
</head>
<body>
<p>目前只支持英文查詢。</p>
<input type="text" id="name"/>
<input type="button" onclick="getInfo(document.getElementById('name').value);" value="Wiki Search" />
<div id="result"></p>
</body>
</html>
遺留問題
不太清楚中文怎么查詢,如有知道的朋友,麻煩告知一下,謝謝。
例子
相關(guān)文章
js確認(rèn)刪除對(duì)話框適用于a標(biāo)簽及submit
這篇文章主要介紹的是一個(gè)js確認(rèn)刪除對(duì)話框適用于a標(biāo)簽及submit,非常好用,需要的朋友不要錯(cuò)過2014-07-07JS實(shí)現(xiàn)拼音(字母)匹配漢字(姓名)的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用JavaScript實(shí)現(xiàn)拼音(字母)匹配(搜索)漢字(姓名)的效果,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2023-04-04獲取本機(jī)IP地址的實(shí)例(JavaScript / Node.js)
下面小編就為大家分享一篇使用JavaScript和Node.js獲取本機(jī)IP地址的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助2017-11-11Layui帶搜索的下拉框的使用以及動(dòng)態(tài)數(shù)據(jù)綁定方法
今天小編就為大家分享一篇Layui帶搜索的下拉框的使用以及動(dòng)態(tài)數(shù)據(jù)綁定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09兩種方法實(shí)現(xiàn)在HTML頁面加載完畢后運(yùn)行某個(gè)js
這篇文章主要介紹了通過兩種方法實(shí)現(xiàn)在HTML頁面加載完畢后運(yùn)行某個(gè)js,需要的朋友可以參考下2014-06-06JS對(duì)話框_JS模態(tài)對(duì)話框showModalDialog用法總結(jié)
本篇文章主要是對(duì)JS對(duì)話框_JS模態(tài)對(duì)話框showModalDialog的用法進(jìn)行了總結(jié)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-01-01JS實(shí)現(xiàn)求字符串中出現(xiàn)最多次數(shù)的字符和次數(shù)示例
這篇文章主要介紹了JS實(shí)現(xiàn)求字符串中出現(xiàn)最多次數(shù)的字符和次數(shù),涉及javascript針對(duì)字符串的遍歷、統(tǒng)計(jì)、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2019-07-07