快速业务通道

Jenabean:将JavaBeans轻松绑定到RDF - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19

Jenabean:将JavaBeans轻松绑定到RDF

时间:2011-02-13 IBM Taylor Cowan

Java 开发人员是幸运的,因为在 Jena 中他们可以利用一种良好的 RDF 框架。Jena 提供了一个编写和读取 RDF 的 API,它可以以多种方式进行保存和持久化。

Jena 的设计目标是可以良好地处理 RDF 数据模型,正如 JDBC 适合处理关系模型一样。数据库应用程序中编写的大量代码都用来保存 Java 对象,还有一些代码用来从数据库中聚集对象。用 Java 代码编写的语义 Web 应用程序面临一个类似的问题:它们必须实现 Java 对象和 RDF 之间的相互转换。因此,开发人员必须编写大量的代码来消除自身模型(一般为 JavaBeans)和 Jena 的以 RDF 为中心的 API 之间的差异。

本文展示 Jenabean 的 Java-to-RDF 绑定框架如何简化上述过程并减少所需的代码量。您将审视一些 Jena 客户端代码并将其与 Jenabean 的基于 JavaBean 的编程模型对比。首先查看一个简单的例子,我将向您展示如何实现以下操作:

将一个 bean 保存为 RDF

将其属性与特定的 RDF 属性绑定

将其与其他对象关联

再次回读 bean

Jenabean 编程模型

考虑清单 1 中的简单 RDF 示例,为方便阅读,它使用了 N-triple(N3)格式:

清单 1. RDF 示例(N3 格式)

<http://www.ibm.com/developerworks/xml/library/j-jena/>    a    dc:Article ;    dc:creator "Philip McCarthy"^^xsd:string ;    dc:subject "jena, rdf, java, semantic web"^^xsd:string ;    dc:title "Introduction to Jena"^^xsd:string .

清单 1 说明了 “Jena 简介” 这篇文章由 Philip McCarthy 撰写并且主题包括 jena、rdf、java 和语义 web。词汇表是 Dublin Core 元数据分类的一部分。要使用 Jena 的原始的 Java API 复制这些 RDF 声明,您可能要执行类似清单 2 的工作:

清单 2. 使用原始的 Jena API 断言 RDF 示例

String NS = "http://purl.org/dc/elements/1.1/"; OntModel m = createModel(); OntClass articleCls = m.createClass(NS +"Article"); Individual i = articleCls.createIndividual(   "http://www.ibm.com/developerworks/xml/library/j-jena/"); Property title = m.getProperty(NS + "title"); Literal l = m.createTypedLiteral("Introduction to Jena"); i.setPropertyValue(title,l); Property creator = m.getProperty(NS + "creator"); l = m.createTypedLiteral("Philip McCarthy"); i.setPropertyValue(creator,l); Property subject = m.getProperty(NS + "subject"); l = m.createTypedLiteral("jena, rdf, java, semantic web"); i.setPropertyValue(subject,l); m.write(System.out, "N3");

Jenabean:将JavaBeans轻松绑定到RDF(2)

时间:2011-02-13 IBM Taylor Cowan

清单 2 中每个数值断言需要三行代码:

访问属性

创建典型的字母

断言属性关系

这个代码的优点是使用透明、清晰的方式直接映射到 RDF 概念。这种情况与 JDBC 客户端代码相似,其中 API 直接应用到关系模型。

如果花大量时间研究 Jena,您将会认识到普通的面向对象代码和与 Jena API 交互的客户端代码之间存在差异。您将在 Java 对象设计的方法中进行断言,而不是使用 setPropertyValue 方法设置属性。

清单 3 展示了使用 Jenabean 创建相同的断言:

清单 3. 使用 Jenabean 创建相同的断言

Model m = _ Bean2RDF writer = new Bean2RDF(m); Article article = new Article("http://www.ibm.com/developerworks/xml/library/j-jena/&

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号