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. NumPy迭代数组

    numpy.nditer是NumPy的一个迭代器对象,提供能够灵活的访问一个或者多个属猪元素的方式. # 迭代 z=np.arange(6).reshape(3,2) for x in np.ndit ...

  2. Visual Studio Code 搭建 C/C++开发环境方法总结

    之前看错资料踩了不少坑,先将可行经验总结如下: 1. 下载 Visual Studio Code 并安装.地址:https://code.visualstudio.com 2. 安装 C/C++插件与 ...

  3. BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化

    记录下自己写错的地方吧 1. 区间可能有重复 2. 没有出现的坐标也要计入version (因为询问里可能会有) #include <bits/stdc++.h> using namesp ...

  4. nginx配置长连接(ajax60秒请求超时)

    个人博客 地址:http://www.wenhaofan.com/article/20180911150337 1.在使用ajax做轮训的时候前台发出的ajax请求总是会在60秒之后返回405超时响应 ...

  5. RN开发-组件View,Text

    1.外联js文件(RN自定义组件)        module.exports=Header; 导出模块         const Header=require('./header'); 导入外部j ...

  6. DOM增删改

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  7. sencha Architect 3.2及以下版本都适用的 破解方法

    找到 没有的话 打开隐藏文件夹 C:\Users\ll\AppData\Local\Sencha\Sencha Architect 3.2 用编辑器 打开user.license 把 Print 修改 ...

  8. 2.4测试赛AC代码临时保存

    //H #include<cstdio> #include<cstdlib> #include<cstring> #include<stack> usi ...

  9. 巨杉Tech | 使用 SequoiaDB + Docker + Nodejs 搭建 Web 服务器

    容器化技术的出现大大简化了应用开发人员在构建底层基础设施的工作.SequoiaDB 巨杉数据库于3.2.1版本正式推出了 Docker 容器化部署方案,本文将会基于 SequoiaDB 巨杉数据库与N ...

  10. Java上转型和下转型

    Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象. 什么叫父类引用指向子类对象,且听我慢慢道来. 从2个名词开始说起:向上转型(upcasting) .向下转型(downcasti ...