前缀,等效于本体的命名空间。具体实现时,主要通过调用D2RQ组件Java类的
generate_mapping方法:
generate-mapping -u root -p ****
-d com.mysql.jdbc.driver -o iswc.n3
jdbc:mysql://localhost:3306/iswc
参数说明:-u表示数据库用户名,-p是数据库登录密码,-d是数据库驱动类名称,不同的数据库驱动格式不同。-o是D2RQ输出的映射文件名称,后缀指定为n3。最后一个参数设置了所映射的数据库的路径和名称。
(2)基于CASIR核心实体类的RDF语义标注,以会议论文实体(Paper)为例,选取部分代表性的代码:
# Table papers
map:papers a d2rq:ClassMap;
d2rq:dataStorage map:database;
d2rq:uriPattern \d2rq:class iswc:InProceedings; .
d2rq:belongsToClassMap map:papers; d2rq:property dc:title; d2rq:property rdfs:label; d2rq:column \d2rq:lang \.
d2rq:belongsToClassMap map:papers; d2rq:property dc:identifier; d2rq:uriColumn \.
d2rq:class foaf:Document;
map:papers_Title a d2rq:PropertyBridge;
map:papers_URI a d2rq:PropertyBridge;
map:papers_Conference a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:papers; d2rq:property iswc:conference;
d2rq:refersToClassMap map:conferences;
d2rq:join \.
(3)基于CASIR实体关系的RDF关联转换。主要是针对3.1中所述的几种实体关系进行编程转换,部分代码如下:
# n:m table rel_person_paper
map:rel_person_paper a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:papers; d2rq:property dc:creator;
21
d2rq:refersToClassMap map:persons;
d2rq:join \ d2rq:join \ .
# n:m table rel_person_organization
map:rel_person_organization a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:persons; d2rq:property iswc:has_affiliation; d2rq:refersToClassMap map:organizations;
d2rq:join \
d2rq:join \.
(4)将CASIR实体元数据关联到外部数据源的RDF呈现,仍以Paper实体为例。CASIR中的会议论文元数据提供了对作者、论文名称、会议名称、以及ISBN号的准确记录,ISBN作为会议论文的唯一标示符,为我们关联到外部数据源提供了方便。在实例化时,只需要判断两个资源的ISBN是否一致,即可获得该会议论文元数据在DBLP关联数据源中的描述URL,此外也可以根据作者以及对应的机构,获得作者的其他论文资源信息。
# Table papers
map:papers_Seealso a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:papers; d2rq:property rdfs:seealso; d2rq:uriColumn \map:papers_Sameas a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:papers; d2rq:property owl:sameas; d2rq:uriColumn \ .
.
参数简要说明:
①d2rq:uriPattern提供一个URI标识,用来指导生成所实例化实体的真实URI。一般由关系数据库的实体表名和对应的主键组成。
②d2rq:class表示该映射类所对应的实体类,其取值一般来自所应用的OWL 本体或RDFS Schema,也可以根据自己的数据模型定义新class。
③d2rq:PropertyBridge代表OWL本体或ORDFS Schema中类的属性,它具体映射到关系数据库中数据表的某一列。
最终构建的RDF接口可满足如下基本条件:
其一,能够生成并使用一个或多个一致的隐性本体描述的合法RDF; 其二,接口能够接收一个查询或者一个对返回数据的说明; 其三,能够生成可以准确反映机构知识库底层数据源中的实体及相互关系的关联数据集。
5 语义扩展模块的运行和应用测试 5.1基本运行情况
本项目的语义扩展模块是基于java语言和D2RQ开源工具在windows7平台下进行设计
22
和开发,由于java语言的跨平台性,经测试,该模块在windows和Linux系统下皆可正常运行,且性能稳定,运行良好。
在D2RQ的DOS路径下,以#d2r-server iswc.n3的命令行启动D2R Server,然后在浏览器中输入地址:http://210.77.64.53:2020/。可看到已将上述实体元数据扩展为含有语义的关联数据集,并提供三种形式的访问:HTML View、RDF View和SPARQL Endpoint,详细见图9。
图9 CASIR语义扩展模块首页
点击conferences可以看到所有的会议实体,见图10,点击organizations可以看到所有的机构实体,点击papers可以看到全部的会议论文实体,其他同理。
图10 会议实体
以CASIR中的一篇原始会议论文元数据为例,见图11。
23
图11 CASIR中会议元数据描述示例
经过RDF语义标注和关联扩展的同一篇会议元数据如下,见图12。通过对比发现,语义扩展后的论文元数据中的属性和实体数据都是灵活的,可通过众多URI标示获得该论文元数据的合作者、会议、学科主题等具体信息。
图12 语义化的论文元数据
24
(1)示例1,点击图12中
图13 语义化的会议元数据
(2)示例2,点击图12中的
图14 语义化的作者元数据
(3)示例3,点击图14
图15 语义化的机构元数据
(4)示例4,本语义扩展模块还开放了基于SPARQL的语义查询服务端点http://210.77.64.53:2020/snorql/,能够进行基于类和属性的浏览,以及进行基于实体关
25