D2RQ之Linked data

**基本介绍**

Linked data 即为一系列利用 Web 在不同数据源之间创建语义关联的最佳实践方法。这里的不同数据源,可以来自一个组织内部的不同系统,也可以来自不同组织的不同系统,它们的内容,存储地点以及存储方式都可以完全不同,但它们很可能存在着关联。
Linked data的一些基本原则:
资源。在发布一个领域的数据之前,我们需要确定要发布的资源是什么。任何事物,只要你认为是有意义的,有被引用必要的,都可以称之为资源。
资源标识。任何一个资源都用一个 HTTP URI(Uniform Resource Identifiers)来标识。之所有要用 HTTP URI 来标识,是希望数据能够通过 HTTP 协议访问,真正实现基于 Web 的访问与互联。
资源描述。资源可以有多种描述,例如 HTML,XML,RDF 以及 JPEG。文档 Web 的文档主要通过 HTML 格式来表示,数据 Web 的数据主要通过 RDF格式(Resource Description Framework)来表示。RDF 将一个资源描述成一组三元组(主语,谓语,宾语)。
例如:tb176 博客名 IT丶小农民。
主语用来表示需要描述的资源,谓语用来表示主语的某个属性(例如:姓名,出生日期)或者某个关系(例如,雇佣,认识,教授等),宾语表示了属性的值或者关系的值。主语,谓语都需要要用 HTTP URI 来表示。宾语可以用 HTTP URI 标识另一个资源,也可以是字符串表示的文本。我们可以把主语看作是类资源,而将谓语看作是类资源的属性资源,宾语或者是类资源或者是文字型资源。根据宾语的种类,可以将三元组分为两类:文字型三元组以及非文字型三元组,第二种可以看作是类资源之间的关联。
关于D2R的架构这里就不介绍了,直接进入主题。
环境准备:

第一步:下载d2r-server-0.7.zip 解压到自己的工作目录下。下载地址(http://d2rq.org/ 这里是0.8.1了)

第二步: 我是用的Mysql数据库,这里d2r支持很多数据库,解压包就包含了mysql和PostgreSQL的驱动,创建数据库Academic
第三步:创建表conferences, papers, authors and
topics这里可以从http://d2rq.org/d2rq-language中下iswc-mysql.sql脚本。
第四步:d2rq文件目录下执行以下命令,执行成功之后生成一个Academic.n3的文本。
-o mapping.ttl –>>表示生成一个mapping.ttl的映射文本。
-d com.mysql.jdbc.Driver –>> 表示连接Mysql数据库,这里是驱动注册。
-u root –>> 表示数据库Academic用户名为root。
-p 123456 –>> 表示数据库Academic密码为123456。
jdbc:mysql://localhost/Academic 本地数据库URI。

generate-mapping -o mapping.ttl   -d  com.mysql.jdbc.Driver  -u root -p 123456 jdbc:mysql://localhost/Academic

第四步: 启动服务 ,执行下面命令d2r-server mapping.ttl
成功地标识如下图:

F:\d2r-server-0.7>generate-Mapping -o Academic.n3 -d  com.mysql.jdbc.Driver  -u root -p 123456 jdbc:mysql://localhost/Academic

F:\d2r-server-0.7>d2r-server Academic.n3
11:29:03 INFO  log                  :: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
11:29:03 INFO  log                  :: jetty-6.1.10
11:29:03 INFO  log                  :: NO JSP Support for , did not find org.apache.jasper.servlet.JspServlet
11:29:03 INFO  D2RServer            :: using config file: file:/F:/d2r-server-0.7/Academic.n3
11:29:05 INFO  D2RServer            :: Safe mode (launch using --fast to use all optimizations)
11:29:05 INFO  log                  :: Started SocketConnector@0.0.0.0:2020
11:29:05 INFO  server               :: [[[ Server started at http://localhost:2020/ ]]]

第五步:我们可以访问服务了,打开浏览器输入 http://localhost:2020, 便可以默认的 HTML 浏览器、DF 浏览器以及 SPARQL 查询端对我们的数据进行访问。
在主页面我们可以看到Home|右边为我们Mysql数据映射出来的表名称。随便点击conferences表我们可以看到有两条记录。即我们数据库中的记录。通过点击任何一条记录可以看到该记录的详细信息以及跟其他表的关联信息,这里不做详述了,下一节继续研究~

你可能感兴趣的:(d2rq)