SPARQL和Virtuoso数据库(1)

讲了这么多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的更新操作。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20190115G06I8O00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券