1 概述

D2RQ,含义是把关系型数据库当作虚拟的RDF图数据库进行访问。D2RQ平台是一个将关系型数据库当作虚拟的、只读的RDF图数据库进行访问的系统。提供了基于RDF访问关系数据库的内容,而无需复制这个数据库将其以RDF的形式进行保存。D2RQ有以下功能:

使用SPARQL查询非RDF数据库;

在Web上,将数据库内容当作链接数据进行访问;

以RDF形式创建一个自定义的数据库,加载成RDF存储;

使用Apache Jena API访问非RDF数据库的信息。

D2RQ是一个开源软件,基于Apache协议发布,源代码在Github上。

D2RQ平台的组成

l  D2RQ映射语言,一种声明的映射语言,用于描述本体和关系数据模型之间的关系。

l  D2RA引擎,一种服务于Jena语义网工具库插件,使用映射重写对数据库的SQL访问的Jena API调用,并且将查询结果传递给框架高层。

l  D2R服务器,一个提供调试用的链接数据视图和HTML视图的HTTP服务器,还提供了一个SPARQL协议endpoint数据接口。

2 D2RQ映射语言

D2RQ是一种声明式语言,描述了关系型数据库规则和RDFS词汇或OWL本体之间的关系。D2RQ本身是一个符合Trutle语法的RDF文档,映射是用在D2RQ命名空间下的术语表示的,D2RQ命名空间是

http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#

映射定义了一个虚拟RDF图,包括数据库的信息。和SQL视图概念类似,除了虚拟的数据结构是一个RDF图而不是虚拟的关系表。这个虚拟的RDF图能够以多种方式访问,取决于映射的实现形式。D2RQ平台提供了SPARQL访问,一个链接数据服务器,一个RDF数据集生成器,一个简单的HTML界面和Jena API访问D2RQ映射数据库。

下图显示了一个D2RQ映射实例的结构

数据库映射为RDF术语,显示在右侧的,使用d2rq:ClassMaps and d2rq:PropertyBridges。映射中最重要的问题是类的映射,一个类映射表示一个类或者一组相似的本体类。类映射描述了类的实例如何生成URI或者空节点。它还有一组属性映射规则,能够描述实例的属性如何创建。

3 D2R服务器

D2R服务器是一个工具,基于语义网发布关系型数据库的内容,所有的信息都是由链接数据组成。语义网上的数据都是用RDF模型化和表示,D2R服务器使用了一个定制化D2RQ映射将数据库内容转换为RDF的形式,允许以RDF数据浏览和搜索,这是语义网中最主要的两种访问数据的方式。

网络的请求通过映射重写为SQL查询语句,这种即时转换允许从大型实时数据库发布RDF,并且无需将数据复制到专用的RDF三元组存储中。

4 结语

非常简要的介绍了D2RQ的内容,实际的使用过程中,应该更深入的参考http://d2rq.org/的相关内容。

知识图谱学习与实践(6)——从结构化数据进行知识抽取(D2RQ介绍)的更多相关文章

  1. 知识图谱学习与实践(4)——通过例句介绍Sparql的使用

    通过例句介绍Sparql的使用 1 简介 SPARQL的定义,是一个递归的定义,为SPARQL Protocal and RDF Query Language,是W3C制定的RDF知识图谱标准查询语言 ...

  2. 知识图谱学习与实践(4)——Protégé使用入门

    1 Protégé简介 Protégé是一个本体建模工具软件,由斯坦福大学基于java语言开发的,属于开放源代码软件.软件主要用于语义网中本体的构建和基于本体的知识应用,是本体构建的核心开发工具,最新 ...

  3. Spark如何与深度学习框架协作,处理非结构化数据

    随着大数据和AI业务的不断融合,大数据分析和处理过程中,通过深度学习技术对非结构化数据(如图片.音频.文本)进行大数据处理的业务场景越来越多.本文会介绍Spark如何与深度学习框架进行协同工作,在大数 ...

  4. DeepLearning.ai学习笔记(三)结构化机器学习项目--week2机器学习策略(2)

    一.进行误差分析 很多时候我们发现训练出来的模型有误差后,就会一股脑的想着法子去减少误差.想法固然好,但是有点headlong~ 这节视频中吴大大介绍了一个比较科学的方法,具体的看下面的例子 还是以猫 ...

  5. seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码

    seo之google rich-snippets丰富网页摘要结构化数据(微数据)实例代码 网页摘要是搜索引擎搜索结果下的几行字,用户能通过网页摘要迅速了解到网页的大概内容,传统的摘要是纯文字摘要,而结 ...

  6. Python爬虫(九)_非结构化数据与结构化数据

    爬虫的一个重要步骤就是页面解析与数据提取.更多内容请参考:Python学习指南 页面解析与数据提取 实际上爬虫一共就四个主要步骤: 定(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站的内容全 ...

  7. Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)

    一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...

  8. Salesforce开源TransmogrifAI:用于结构化数据的端到端AutoML库

    AutoML 即通过自动化的机器学习实现人工智能模型的快速构建,它可以简化机器学习流程,方便更多人利用人工智能技术.近日,软件行业巨头 Salesforce 开源了其 AutoML 库 Transmo ...

  9. 零基础学Python之结构化数据(附详细的代码解释和执行结果截图)

    3结构化数据 字典(查找表).集合.元组.列表 3.1字典 是有两列任意多行的表,第一列存储一个键,第二列存储一个值. 它存储键/值对,每个唯一的键有一个唯一与之关联的值.(类似于映射.表) 它不会维 ...

随机推荐

  1. SpringBoot2.x打包成war(看这篇就够了)

    springboot默认打包成jar,如果想打包成war,则需要做以下三步. 1.修改pom.xml文件 a.将jar改成war <groupId>com.test</groupId ...

  2. GNU Screen使用

    基本使用 SSH时可以方便地resume工作 # open new screen session screen # restore screen -r  Steps Using GNU Screen ...

  3. layer.open获取弹出层的input框的值

    使用top.$('#txtReason').val();获取值: //不通过 function unAuditData(id) { parent.layer.open({ type: , title: ...

  4. 机器学习作业(七)非监督学习——Matlab实现

    题目下载[传送门] 第1题 简述:实现K-means聚类,并应用到图像压缩上. 第1步:实现kMeansInitCentroids函数,初始化聚类中心: function centroids = kM ...

  5. [POI2006] SZK-Schools - 费用流

    差不多就是个二分图带权匹配?(我还是敲费用流吧) 每个点向着自己能到的学校连边,费用按题意设定 跑最小费用最大流即可 #include <bits/stdc++.h> using name ...

  6. 原生js来写获取元素距离顶部距离,以及滚动条滚动指定距离和时间控制

    这是我在写vue项目里封装的一个公共js类 里面还有一些其他的方法,一并拿过来了 class Public { isDesktop(){ //判断是否为pc端 return (window.scree ...

  7. Linux 环境c++ 编码转换

    #include <iconv.h> //代码转换:从一种编码转为另一种编码 static int CodeConvert(char *from_charset,char *to_char ...

  8. Python里的Flask开发环境的搭建

    在已经安装好了Python后,我这里用的是Python3.5,准备进一步学习Flask框架,下面记录搭建Flask环境 这里使用了虚拟环境,在虚拟环境里,最小化的安装Flask. 参考步骤: 1.首先 ...

  9. vs2017+resharper之常用快捷键备忘

    1.安装resharper后以vs2017的快捷键为主,让resharper作为一些方便的快捷键的补充. 2.vs2017的c++6的键盘布局模式快捷键 IntelliSence: 列表成员: Ctr ...

  10. [USACO19OPEN]I Would Walk 500 Miles 贪心

    题目 洛谷P5425(点击可跳转) 题目描述 Farmer John想要将他的编号为 \(1 \ldots N\)的 N N 头奶牛( \(N \leq 7500\) )分为非空的 \(K\) 组( ...