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 相关文章推荐
JS创建优美的页面滑动块效果 - Glider.js
Sep 27 Javascript
jquery ajax请求实例深入解析
Nov 26 Javascript
jquery配合css简单实现返回顶部效果
Sep 30 Javascript
javascript中基本类型和引用类型的区别分析
May 12 Javascript
浅析Javascript ES6中的原生Promise
Aug 25 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
详解js的事件处理函数和动态创建html标记方法
Dec 16 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 Javascript
JavaScript实现的商品抢购倒计时功能示例
Apr 17 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 Javascript
WebStorm中如何将自己的代码上传到github示例详解
Oct 28 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
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
php文件上传类完整实例
2016/05/14 PHP
浅谈PHP的exec()函数无返回值排查方法(必看)
2017/03/31 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
PHP调用微博接口实现微博登录的方法示例
2018/09/22 PHP
Laravel 5.1 框架Blade模板引擎用法实例分析
2020/01/04 PHP
javascript 变量作用域 代码分析
2009/06/26 Javascript
jquery 跳到顶部和底部动画2句代码简单实现
2013/07/18 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
vue异步加载高德地图的实现
2018/06/19 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
2019/03/07 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
jQuery 筛选器简单操作示例
2019/10/02 jQuery
centos系统升级python 2.7.3
2014/07/03 Python
Python贪心算法实例小结
2018/04/22 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
解决python gdal投影坐标系转换的问题
2020/01/17 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Python的信号库Blinker用法详解
2020/12/31 Python
菲律宾优惠券网站:MetroDeal
2019/04/12 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
override和overload的区别
2016/03/09 面试题
员工薪酬激励方案
2014/06/13 职场文书
2016春季运动会前导词
2015/11/25 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers