讲了这么多SPARQL语法,一直在用别人发布的SPARQL Endpoint,有不少人在问:我们自己能不能部署自己的SPARQL Endpoint Server?这些三元组的数据又存放在什么地方?
上一讲,我们介绍了SPARQL的一些更新操作和Graph的一些操作,可这些没有地方去实践。今天我们就来介绍一款三元组数据库(Triple Store):OpenLink Virtuoso。该软件可以从网站上下载(https://sourceforge.net/projects/virtuoso/files/virtuoso/7.2.5/),或者从三人行的QQ群文件中去下载。
三元组数据库相当多,主要有Allegraph、Virtuoso、GraphDB、StarDog、Oracle NoSQL等,具体的可以参考wiki上的Comparison of triple stores(里面有详细的不同数据库之间的比较),地址为:https://en.wikipedia.org/wiki/Comparison_of_triplestores。
一、OpenLink Virtuoso数据库安装
注意,最新的Virtuoso数据库(2018_08_28_Virtuoso_OpenSource_Server_7.2.x64.exe)只能安装在64位系统中。Windows版本的安装比较简单,直接运行安装文件。Linux的版本安装同其他软件的安装一致(三步法),这个给出Linux的安装方法。
Windows下的版本启动命令(假设安装在c:\Virtuoso OpenSource 7.205路径下)如下,并看到下图Server online at 1111表示启动成功。
C:\Virtuoso OpenSource 7.205\database>..\bin\virtuoso-t.exe -f
访问控制台http://localhost:8890
点左上角的“Conductor”进行登陆,初始帐号/密码为:dba/dba
注意,我这里的版本为07.20.3217(此版本有问题,下一讲,我会用新的版本),大家安装后的版本应为07.20.3229。
二、数据集(RDF数据)导入
这里我们使用诺奖数据集,具体可以从三人行QQ群文件中下载nobel.nt文件。具体步骤为:
1、登陆后选择菜单“Linked Data”-> “Quad Store Upload”。
2、选中“Create graph explicitly”前的checkbox框,输入Named Graph IRI*:http://www.example.com/graph/nobel,原则上Graph这里可以随便输入URI。
3、选择文件nobel.nt。
4、点“Upload”按钮进行导入,导入后会自动创建出GRAPH:http://www.example.com/graph/nobel。如果导入有误,W系统会有提示。
三、常用的Graph操作命令
导入后,我们来简单查看下数据量。“Linked Data”->“SPARQL”菜单。这里的Default Graph IRI输入上一步的Graph IRI:http://www.example.com/graph/nobel,SPARQL语句为:
运行结果为:87369。之前我们介绍过的所有的SPARQL在这里都可以运行。
我们来看上一讲中的GRAPH相关操作,这需要在Interactive SQL (ISQL)中操作。
1、COPY
在ISQL中运行:
即可复制出新的GRAPH:http://www.example.com/graph/nobel_1。可以用之前的SPARQL进行数量统计,注意Default Graph IRI要用nobel_1。
2、DROP和CLEAR
这里要注意DROP和CLEAR的区别:DROP删除、CLEAR清除。
CLEAR可以用来清除通过COPY创建的GRAPH(此时,GRAPH并不实际存在,为虚拟GRAPH);DROP只能删除通过Create graph explicitly创建的GRAPH(之前的导入方式)。这里可以通过Linked Data -> Graphs -> Graphs菜单来查看。
3、MOVE
MOVE命令常用来修改GRAPH名称。
4、CREATE
创建新的GRAPH:nobel_2,等同于通过导入创建。
5、ADD
在nobel_2中加入以下数据,首先需要在ISQL中运行:grant execute on "DB.DBA.L_O_LOOK" to "SPARQL";
然后,在Linked Data -> SPARQL -> Query中执行,这里插入2条三元组数据。
将nobel_2中新增的2条数据加入到nobelprize中,增加后,可以在nobelprize中进行检索,以确认是否增加成功。
今天,我们介绍了如何安装三元组数据库OpenLink Virtuoso,以及如何导入三元组数据。此外,还详细介绍了GRAPH相关的一些操作,大家可以多尝试尝试。今天的作业:如何删除nobelprize中增加的nobel_2中的2条三元组数据?
下一讲,我们将介绍如何在Virtuoso中进行SPARQL的更新操作。
领取专属 10元无门槛券
私享最新 技术干货