使用Jena和RDF开发语义应用程序的最佳实践是什么?

问题描述 投票:7回答:2

语义网:最佳实践

我是Semantic Web的新手,在我的应用程序中,我使用的是Protege,RDF,SPARQL,Jena,Virtuaso。我关心的是,在流行的Java Frameworks(比如Hibernate)中,我们有POJO层,在这个语义Web应用程序中我可以拥有相同的东西吗?这是一个好习惯吗?我想知道,Jena为我提供了RDF和Model的连接,但是设计整个应用程序的最佳实践是什么?在前端,我将使用简单的HTML和JS,因此servlet将在那里。另外,我想知道表示在Protege in Java中创建的本体的标准(不使用OntModel,因为我没有使用OWL)。

rdf jena semantic-web protege
2个回答
1
投票

我建议由专业从业者为其他从业者撰写一本书:

它充满了利用Jena和相关语义Web技术的示例。


1
投票

与任何Web应用程序一样,您必须为三层或更多层做出架构决策。

存储层

大多数用于本体操作的工具(Jena,Virtuoso,Sesame,Protege)提供了许多存储数据的方法:进程内(内存)模型,RDB模型(在您选择的RDBMS中),本机格式存储。选择取决于您的环境约束和性能/可伸缩性要求。

操纵层

在这里选择解决方案总会在抽象级别和表达性之间进行一些权衡。这是因为很难将所有本体构造映射到面向对象的构造。

鉴于您可以选择:

  • JastorJenaBean生成与您的本体类相对应的Java POJO类,以及
  • Jena qazxsw poi / qazxsw poi,或qazxsw poi在较低级别操纵RDF,OWL和基于帧的本体。

Jastor包裹了Jena ModelOntModel,但隐藏了Jena的内部构件,所以如果你发现它有限,你可以随时扩展它。注意,Jastor似乎不再维护了。

表示层

操作层技术允许您从表示视图隐藏本体内部,因此您可以使用JSP等传统技术来生成HTML输出。但是,对于某些问题,您可以方便地以RDF / XML格式发出模型并对其应用类似XSL(T)的转换。我发现Protege API是一个基于Python的工具,可用于支持这种转换。

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

  • 我鼓励您查看不同现有语义Web应用程序的体系结构,并找到适合您问题的应用程序。例如OntModel
  • 虽然很多工作都是在语义Web工具领域完成的,但这仍然是nichè技术。为了更好地定位您的问题,您可以尝试在产品邮件列表和研究论坛上提出您的问题。
  • 此外,W3C维持相当长的Model用于RDF处理。
© www.soinside.com 2019 - 2024. All rights reserved.