- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RDF数据查询语言SPARQL
RDF数据查询语言SPARQL:初步
imarine
说明:本文档实质上是阅读Jena Doc中SPARQL部分学习使用SPARQL的学习笔记,主要想和大家分享学习过程,了解如何在Windows XP中开始使用SPARQL,在命令行(command line)和Jena环境中执行简单SPARQL
可以从Jena的最新版本,可以从ARQ主页/~afs/ARQ/index.html下载最新的ARQ 发行包,从而在运行SPARQL查询。当然,在梯队网站的个人主页上,这些资源也是可得的。
SPARQL是W3C的RDF数据工作组设计的一种查询语言和协议,用于RDF数据的查询。经过类似于JDK安装时候的配置,可以在命令行运行SPARQL查询,也可以在安装了Jena API之后,在Java程序用使用SPARQL查询。
在开始学习SPARQL之前,我的机器上已经安装了JDK 5.0并在eclipse 3.2中可以使用Jena API。不知道SPARQL的命令行运行是不是需要Java环境,是不是需要Jena环境?当然,在Jena中使用SPARQL一定是需要Jena API的。我很想实验一下,但是,卸载JDK还得装,麻烦的狠,所以算了。如果谁没有装JDK,可以试一试,然后分享一下结论。
?
1.????? 下载和配置SPARQL
在 ARQs downloads(/~afs/ARQ/download.html) 页上找到最新的 ARQ 发行包,并解压到某个目录,我解压到了D:\Jena-2.5\ARQ-2.1-beta,实际上,解压到哪里并没有多大关系,不影响使用。
配置环境变量:鼠标右键单击【我的电脑】-【属性】-【高级】-【环境变量】,在系统变量中找到CLASSPATH,将将解压路径中的lib文件夹路径添加到CLASSPATH,对我的机器来说就是D:\Jena-2.5\ARQ-2.1-beta\lib;然后,在系统变量中找到PATH变量,将解压路径中的bat文件夹路径添加到PATH变量,对我的机器来说就是D:\Jena-2.5\ARQ-2.1-beta\bat。
第一个CLASSPATH设置保证机器可以使用开发包中的API,第二个PATH设置使得可以在任意命令行路径使用SPARQL查询。如果不做PATH设置,那么只能在D:\Jena-2.5\ARQ-2.1-beta\bat路径下使用SPARQL查询,那样会很不方便。
在一般的设置建议中,会让建一个ARQROOT变量,其值为D:\Jena-2.5\ARQ-2.1-beta,这样在随后的设置中用ARQROOT代替D:\Jena-2.5\ARQ-2.1-beta,使得环境变量的配置不至于很麻烦。我觉得这只是一个替换作用,在JDK的配置中也有类似的建议,我没有做,只是照搬完整路径。建立ROOT变量的好处在于,以后需要再配置环境变量时,直接JAVAROOT\..\就可以了,不用再去找JDK到底安装在什么目录下。
如果上面的设置成功,那么在命令行下运行sparql命令,会返回
No query string or query file
指示没有查询语句和查询数据文件。如果运行sparql –h(或者sparql –h,sparql –help,sparql –h)就会返回命令sparql的帮助信息。
?
2.????? 执行一个简单的查询
SPARQL查询语句的执行格式是:
sparql --data=file --query=query
file是要查询的数据源,RDF文件或者RDF图文件;query是查询语句文件,以.rq为文件后缀。
2.1?? 数据源,一个RDF文件,就是帮助文档中的vc-db-1.rdf,文档描述了一些简单的人名信息,下面是类似三元组形式的数据表示。
@prefix vCard:?? /2001/vcard-rdf/3.0# .
@prefix rdf:???? /1999/02/22-rdf-syntax-ns# .
@prefix :??????? # .
http://somewhere/MattJones/
??? vCard:FN??? Matt Jones ;
??? vCard:N???? [ vCard:Family
????????????????????????????? Jones ;
????????????????? vCard:Given
??????????? ??????????????????Matthew
??????????????? ] .
http://somewhere/RebeccaSmith/
??? vCard:FN??? Becky Smith ;
??? vCard:N???? [ vCard:Family
???????
文档评论(0)