Javascript查询DBpedia小应用实例学习


Posted in Javascript onMarch 07, 2013

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" onclick="getInfo(document.getElementById('name').value);" value="Wiki Search" /> 
<div id="result"></p> 
</body> 
</html>

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

例子

Javascript 相关文章推荐
使用Post提交时须将空格转换成加号的解释
Jan 14 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
JavaScript异步编程Promise模式的6个特性
Apr 03 Javascript
JS Attribute属性操作详解
May 19 Javascript
使用JSON作为函数的参数的优缺点
Oct 27 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
js用类封装pop弹窗组件
Oct 08 Javascript
vue计算属性及使用详解
Apr 02 Javascript
jQuery轻量级表单模型验证插件
Oct 15 jQuery
详解微信小程序支付流程与梳理
Jul 16 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
前端学习——JavaScript原生实现购物车案例
Mar 31 Javascript
JS链式调用的实现方法
Mar 07 #Javascript
jQuery滚动加载图片效果的实现
Mar 06 #Javascript
HTML上传控件取消选择
Mar 06 #Javascript
jQuery操作Select选择的Text和Value(获取/设置/添加/删除)
Mar 06 #Javascript
JQuery操作tr和td内容的方法实例
Mar 06 #Javascript
node在两个div之间移动,用ztree实现
Mar 06 #Javascript
js实现一个省市区三级联动选择框代码分享
Mar 06 #Javascript
You might like
SONY ICF-SW55的电路分析
2021/03/02 无线电
symfony表单与页面实现技巧
2015/01/26 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
Yii视图CGridView列表用法实例分析
2016/07/12 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
js强制把网址设为默认首页
2015/09/29 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
对angular 监控数据模型变化的事件方法$watch详解
2018/10/09 Javascript
JS实现textarea通过换行或者回车把多行数字分割成数组并且去掉数组中空的值
2018/10/29 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
Element InputNumber 计数器的实现示例
2020/08/03 Javascript
js+for循环实现字符串自动转义的代码(把后面的字符替换前面的字符)
2020/12/24 Javascript
Python数据类型详解(四)字典:dict
2016/05/12 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
python处理RSTP视频流过程解析
2020/01/11 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
波兰补充商店:Muscle Power
2018/10/29 全球购物
德国家用电器购物网站:Premiumshop24
2019/08/22 全球购物
Stio官网:男女、儿童户外服装
2019/12/13 全球购物
某公司.Net方向面试题
2014/04/24 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
研究生求职推荐信范文
2013/11/30 职场文书
毕业学生推荐信
2013/12/01 职场文书
企业承诺书格式
2014/05/21 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
开学第一天的感想
2015/08/10 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
辞职申请书范本
2019/05/20 职场文书