2011-10-05 20 views
7
语义应用

语义网:最佳实践什么是最好的做法在开发利用耶拿和RDF

我是新来的语义Web,我的应用程序,我使用的门生,RDF,SPARQL,耶拿,Virtuaso。我担心的是,在流行的Java框架(如Hibernate),我们有POJO层,在此语义Web应用程序,我可以有同样的事情?这是一个好习惯吗?我想知道,耶拿是我提供RDF和型号的连接,但什么是设计整个应用程序的最佳实践?在前端我会用简单的HTML和JS,这样的servlet将在那里。 另外,我想知道代表Protege在Java的创建本体的标准(不使用OntModel,因为我没有使用OWL)。

回答

1

正如在任何Web应用程序,你将不得不为三层或多层架构做出的决定。

存储层

大多数的工具本体操作(耶拿,炫技,芝麻,门生)提供了多种方式来存储你的数据:在进程(内存)模式,RDB模型(在您选择的RDBMS中),本机格式存储。选择取决于您的环境限制和性能/可伸缩性要求。

操纵层

在此处选择的解决方案总是带来的抽象和表现的水平之间存在一些权衡。这是因为很难将所有本体构造映射到面向对象的构造。

既然你可以选择之间:生成与你的本体类的Java POJO类

  • JastorJenaBean,并
  • 耶拿Model/OntModel,或Protege API到minipulate RDF,OWL和框架基于本体的较低级别。

Jastor包装耶拿OntModelModel但是从你隐藏耶拿内部,所以如果你发现它的限制,你可以随时进行扩展。请注意,Jastor似乎不再被维护。

表示层

操纵层技术,让您隐藏的代表性观点本体内部,所以您可以使用传统的技术,如JSP生成HTML输出。尽管如此,一些问题也可能是方便您在发出RDF/XML格式的模型并应用XSL(T)样改造它。我发现了一个基于Python的工具rx4RDF,可用于支持这种转换。

免责声明:我6年前用上述技术工作。事情可能在此期间发生变化。因此:

  • 我鼓励您查看不同现有语义Web应用程序的体系结构,并找到适合您问题的体系结构。例如here
  • 虽然很多工作都是在语义Web工具领域完成的,但这仍然是nichè技术。为了更好地解决您的问题,您可以尝试在产品邮件列表和研究论坛上提出您的问题。
  • 另外,W3C为RDF处理保留了相当长的list of tools