手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >Javascript查询DBpedia小应用实例学习
Javascript查询DBpedia小应用实例学习
摘要:Javascript查询DBpedia小应用上一篇文章中,我们了解了SPARQL、SPARQLEndpoint,并简单做了一个SPARQLW...

Javascript查询DBpedia小应用

上一篇文章中,我们了解了SPARQL、SPARQL Endpoint,并简单做了一个SPARQLWrapper.js,来从DBpedia中查询了一些数据。

本文则尝试利用SPARQLWrapper.js来读取DBpedia的数据,并显示出来。

目标

通过输入一个英文单词,然后返回WIKI中相关的信息。

那么主要要解决的问题就是怎样的SPARQL语句能够查询到我们需要的东西。

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

复制代码 代码如下:

PREFIX : <http://aabs.purl.org/music#>

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: <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,以及简介返回回来。

下面让我们把整个程序写完。

完整代码

复制代码 代码如下:

<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 = "没有任何相关信息!";

}

}

</script>

</head>

<body>

<p>目前只支持英文查询。</p>

<input type="text" id="name"/>

<input type="button" value="Wiki Search" />

<div id="result"></p>

</body>

</html>

遗留问题

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

例子

【Javascript查询DBpedia小应用实例学习】相关文章:

Javascript类型转换的规则实例解析

javascript动态创建表格及添加数据实例详解

JavaScript中fixed()方法的使用简介

JavaScript编程学习技巧汇总

JavaScript中switch语句的用法详解

JavaScript中的条件判断语句使用详解

javascript模拟评分控件实现方法

javascript删除元素节点removeChild()用法实例

Javascript中的Prototype到底是什么

JavaScript检查子字符串是否在字符串中的方法

精品推荐
分类导航