D2R 使用方法2

一、Mapping 语言

Mapping 语言中最重要的是两个概念,一个是 d2rq:ClassMap,另一个是 d2rq:PropertyBridge

d2rq:ClassMap 代表 OWL Ontology 或者 RDFS Schema 中的一个或一组相似的 Class,它一般映射到关系数据库中的一个表。其中包括几个重要属性:

  1. d2rq:Class:表示该 ClassMap 所对应 Class,其取值可以来自现有的 OWL Ontology 或者 RDFS Schema,也可以根据自己的数据特征定义新的 Class;
  2. d2rq:UriPattern: 描述了一个 URI 模板,用来指导生成实例化资源的真实 URI。一般用“table/@@table.primarykey@@”来表示,“/”前面的部分为表名,后面“@@”之间的部分为表的列,,常采用主键表示。

d2rq:PropertyBridge 代表 OWL Ontology 或者 RDFS Schema 中 Class 的属性,它一般映射到关系数据库中某个表的一列。其中包括几个重要属性:

  1. d2rq:belongsToClassMap: 表示该 propertyBridge 所属的 ClassMap;
  2. d2rq:property: 表示该 propertyBridge 所对应 property,其取值可以来自现有的 OWL Ontology 或者 RDFS Schema,也可以根据自己的数据特征定义新的 property;
  3. d2rq:column: 表示该 propertyBridge 关联的某个具体表中的列。
  4. d2rq:refersToClassMap: 表示该 propertyBridge 引用的其它 ClassMap,它的取值不是该 propertyBridge 所属 ClassMap 对应表中的取值,而是从引用的 ClassMap 对应表中取值。该属性一般会跟随几个 d2rq:join 来指明关联的条件,d2rq:join 类似 sql 语句中的 where 条件。

注意:如果一个表 A 被表 B 外键引用,则为 A 对应的 ClassMap 创建一个 PropertyBridge,其d2rq:belongsToClassMap 为 A 所对应的 ClassMap,d2rq:refersToClassMap 为 B 所对应的 ClassMap。 这样,在浏览 A 的实例资源时,便可以通过该 PropertyBridge 跳转到 B 的实例资源。如果一个表的所有列都通过外键引用其它数据表,则不会为该表生成对应的 ClassMap,而是选取一个被引用的表,为其创建属性,属性取值来自其它被引用的表。

如下表中只存在actor_id和movie_id 两列,且分别被表actor,movie外键引用,则生成以下代码:

# Table actor_to_movie (n:m)
map:actor_to_movie_link a d2rq:PropertyBridge;
	d2rq:belongsToClassMap map:movie;
	d2rq:property vocab:to_star;
	d2rq:refersToClassMap map:actor;
	d2rq:join "actor_to_movie.movie_id => movie.movie_id";
	d2rq:join "actor_to_movie.actor_id => actor.actor_id";
	.

这样,可以通过to_star这个PropertyBridge在actor与movie之间跳转。

                


 如需要外键引用的列没有外键引用,可安装上述方法自己修改ClassMap A,添加对应的属性。具体语法可参考:http://d2rq.org/d2rq-language

 

参考:https://www.ibm.com/developerworks/cn/web/1003_zhangjing_d2r/index.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值