2010-08-04 69 views
9

我有一个本体文件(在RDF中),它表示我写的应用程序中的实体。我正在使用Jena,可以通过直接操作三元组来访问Concepts和创建/访问资源。为了使事情变得更简单,我创建了一组Java类,每个类对应于本体中的每种资源类型,并记住它们的继承和属性。例如。从本体创建Java类

public class Agent{ 
} 

public class Person extends Agent{ 
    private String name; 
} 

如果本体包含了两种类型的资源,AgentPerson的,而后者是前者的一个子类。

我意识到创建这些类(以及提取它们的方法)的过程非常单调。如果我在数据库上编写应用程序,我会使用Hibernate的配置文件并让它处理细节。

我的问题是:有没有一种工具可以将本体(在RDF文件中)作为输入,并创建一组代表本体中概念的Java文件,如上例所示? (或者,如果耶拿本身可以做到这一点,而我缺少一些东西)

谢谢。

+0

我认为他们必须是接口,因为一个实例可以具有FlyingThing,Animal,Black等类型。问题在于它无法处理继承的属性值。 – Thien 2010-08-04 16:44:00

回答

1

通过上面提供的链接,我偶然发现了Trispresso Project,它提供了相关工具及其功能(包括多继承和代码生成)的一个很好的总结。认为这对我自己的问题会很好的回答。

0

是否检查过JRDF?还有其他代码生成工具也可用。请检查here

+0

谢谢。 从JRDF页 “未来的功能可能包括: 一个RDF到Java对象的API(类似休眠或芝麻的埃尔莫),” 所以我觉得这是不被支持。将从其他页面检出RDFReactor,Kazuki和Owl2Java。 – Animesh 2010-08-04 18:23:38

1

Protege支持RDF导入和java导出。我过去曾经用它将本体数据导入到java程序中,并且它的工作是合理的。

+0

谢谢。我假设你的意思是在http://sharon.cselt.it/projects/jade/doc/tutorials/beangenerator/beangenerator.html使用BeanGenerator插件。我会尝试。 – Animesh 2010-08-05 12:56:47

2

有一些工具,例如BoumlAndromda,您可以使用它们从XMI UML序列化中生成Java。

此外,已经完成了将UML与RDF集成的工作:http://infolab.stanford.edu/~melnik/rdf/uml/

所以我想你可以找到一种方法将RDF转换为XMI,然后从XMI生成Java,因为您首先将初始RDF模式映射到RDF/UML。

此外,我刚刚发现这篇论文:Automatic Mapping of OWL Ontologies into Java,我没有阅读,所以我不能评论。