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 相关文章推荐
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 Javascript
js识别不同浏览器基于userAgent做判断
Jul 29 Javascript
全面解析Bootstrap弹窗的实现方法
Dec 01 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
Jun 03 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 Javascript
js实现复选框的全选和取消全选效果
Jan 03 Javascript
微信小程序去哪里找 小程序到底如何使用(附小程序名单)
Jan 09 Javascript
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
vue的token刷新处理的方法
Jul 17 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
Aug 17 Javascript
layui select 禁止点击的实现方法
Sep 05 Javascript
JS实现炫酷雪花飘落效果
Aug 19 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
社区(php&amp;&amp;mysql)一
2006/10/09 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
jquery 获取json数据实现代码
2009/04/27 Javascript
JS input 数字验证代码
2009/07/30 Javascript
精通JavaScript 纠正 cleanWhitespace函数
2010/03/11 Javascript
说说JSON和JSONP 也许你会豁然开朗
2012/09/02 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
基于JavaScript实现表单密码的隐藏和显示出来
2016/03/02 Javascript
jQuery防止重复绑定事件的解决方法
2016/05/14 Javascript
论Bootstrap3和Foundation5网格系统的异同
2016/05/16 Javascript
Bootstrap中的Panel和Table全面解析
2016/06/13 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
python实现从wind导入数据
2019/12/03 Python
Python enumerate内置库用法解析
2020/02/24 Python
cosme官方海外旗舰店:日本最大化妆品和美容产品的综合口碑网站
2017/01/18 全球购物
美国时尚孕妇装品牌:A Pea in the Pod
2017/07/16 全球购物
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
实习自我鉴定
2013/12/15 职场文书
党支部遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
公司租房协议书
2014/10/14 职场文书
社区灵活就业证明
2014/11/03 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
golang slice元素去重操作
2021/04/30 Golang
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
golang 语言中错误处理机制
2021/08/30 Golang
使用Spring处理x-www-form-urlencoded方式
2021/11/02 Java/Android