快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
JavaBean 示例,使它满足所有必需的要求。正如使用 Java Persistence API (JPA) 或 Hibernate 一样,您需要保证对象有惟一的 ID。Jenabean 需要您将一个单独的注释 — @Id — 添加到至少一个 bean 字段,使用它充当惟一标识符。清单 4 展示了这个简单的 bean:

清单 4. 一个简单的可直接保存的 bean

package example; import thewebsemantic.Id; public class Person {   private String email;     @Id     public String getEmail() { return email;}     public void setEmail(String email) { this.email = email;} }

清单 4 为 Jenabean 提供足够的信息来可靠地保存和装载 Person 类实例。您没有必要扩展任何内容或编写 XML 描述符文件。由于电子邮件地址是惟一的,它是有效的 ID。清单 5 展示如何将 Person 实例保存到 Jena 模型:

清单 5. 使用生成的 RDF 保存 Person 类的实例

Model m = ModelFactory.createOntologyModel(); Bean2RDF writer = new Bean2RDF(m); Person p = new Person(); p.setEmail("person@example.com"); writer.save(p); m.write(System.out, "N3"); ... <http://example/Person>    a    owl:Class ; <http://thewebsemantic.com/javaclass>    "example.Person" . <http://example/Person/taylor_cowan@yahoo.com>    a    <http://example/Person> ; <http://example/email>    "taylor_cowan@yahoo.com"^^xsd:string .

Bean2RDF 是一个将对象作为 RDF 编写的 Jenabean 类。它默认情况下是浅(shallow)模式,这意味着它将保存实例和其单一属性。如果 Person 类还没有添加到模型中,它将断言一个新类作为 owl:Class 的实例。注意在清单 5 中 Jenabean 使用example 包作为一个新的本体类的名称空间。第二个断言是一个注释,指明用于创建个体的 Java 类。Person 实例及电子邮件地址都进行了断言。Jenabean 首先为已保存的实例创建 URI。它还处理电子邮件属性并将其断言为一个 string 字母值。

从 Jena 模型中检索 JavaBeans

用 RDF 表示的个体需要一个 URI,然而 Java 开发人员倾向于使用惟一的 ID。Jenabean 通过将声明的 ID 字段附加到名称空间(这种情况下默认来自包和类名)来提供帮助。创建好 URI 后,您可以使用 RDF2Bean 从模型中装载信息:RDF2Bean reader = new RDF2Bean(m); Person p2 = reader.load(    Person.class,"person@example.com");

Jenabean 也可以装载所有的 Person 实例:

Collection<Person> people = reader.load(Person.class);

这些是在模型中访问 bean 的最简单方法。Jenabean 还支持到 SPARQL(RDF 的 SPARQL 查询语言)结果的绑定。简言之,Jenabean 至少要求 bean 作者指明哪个字段保存的值对于该类型的所有实例是惟一的。保存了 bean 后,将根据类的包和名称为 bean 的类和属性提供默认的 URI。这允许您开始从 Java 层轻松地快速创建 RDF。

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

时间:2011-02-13 IBM Taylor Cowan

指定名称空间和属性

到目前为止,我已经向您展示了 Jenabean 如何根据 bean 的类路径和名称创建默认的 URI。Jenabean 还支持声明您希望使用的名称空间。您可以使用 @Namespace 注释将 bean 映射到特定的名称空间。作为演示,我将使用一个目前未被使用的名称空间,Jenabean 自己的项目 URL:

@Namespace("http://jenabean.googlecode.com/") public class Person { _ <http://jenabean.googlecode.com/Person/person@example.com>   a    <http://jenabean.googlecode.com

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号