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

发布于 2024-12-08 09:22:30 字数 340 浏览 0 评论 0原文

语义网:最佳实践

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

Semantic Web: Best Practices

I am new to Semantic Web, in my application, I'm using Protege,RDF,SPARQL,Jena,Virtuaso. My concern is, in popular Java Frameworks (like Hibernate), we have POJO layer, in this Semantic Web application can I have the same thing? is it a good practice? I want to know, Jena is providing me the connection of RDF and Model, but what are the best practices to design the whole application? In front end I will use simple HTML and JS, so servlets will be there. Also, I want to know the standards of representing an ontology created in Protege in Java (without using OntModel, because I am not using OWL).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陪你到最终 2024-12-15 09:22:30

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

存储层

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

操纵层

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

鉴于您可以选择:

  • JastorJenaBean 生成与您的本体类相对应的 Java POJO 类,以及
  • Jena Model/OntModel,或 Protege API 在较低级别上微型化 RDF、OWL 和基于框架的本体。

Jastor 包装了 Jena OntModelModel,但对您隐藏了 Jena 内部结构,因此,如果您发现它有限,您可以随时扩展它。请注意,Jastor 似乎不再被维护。

表示层

操作层技术使您可以从表示视图中隐藏本体内部结构,因此您可以使用 JSP 等传统技术来生成 HTML 输出。尽管如此,对于某些问题,以 RDF/XML 格式发出模型并对其应用类似 XSL(T) 的转换可能会很方便。我发现 rx4RDF,一个基于 Python 的工具,对于支持这种转换非常有用。

免责声明:我 6 年前就使用了上述技术。与此同时,事情可能已经发生了变化。因此:

  • 我鼓励您查看不同现有语义 Web 应用程序的架构,并找到适合您问题的架构。例如此处
  • 尽管在语义 Web 工具领域已经做了很多工作,但这仍然是小众技术。为了更好地定位您的问题,您可以尝试在产品邮件列表和研究论坛上提出您的问题。
  • 此外,W3C 还维护着相当长的用于​​ RDF 处理的工具列表

As in any Web application you will have to make architectural decisions for three or more layers.

Storage layer

Most of the tools for ontology manipulation (Jena, Virtuoso, Sesame, Protege) offers a number of ways to store your data: in-process (in memory) models, RDB model (in RDBMS of your choice), native format storage. The choice depends on your environment constrains and performance/scalability requirements.

Manipulation layer

Selecting a solution here brings always some trade-off between level of abstraction and expressiveness. This is because it's hard to map all ontology constructs to object-oriented constructs.

Given that you may choose between:

  • Jastor or JenaBean that generates Java POJO classes corresponding to your ontology classes, and
  • Jena Model/OntModel, or Protege API to minipulate RDF, OWL, and frame-based ontologies on a lower level.

Jastor wraps Jena OntModel or Model but hides Jena internals from you, so if you find it limited you may always extend it. Note, Jastor seems not to be maintained any more.

Representation layer

Manipulation layer technologies let's you hide ontology internals from the representation view, so you may use traditional technologies like JSP to produce HTML output. Still, for some problems it may be convenient for you to emit model in RDF/XML format and apply XSL(T)-like transformation to it. I found rx4RDF, a Python-based tool, useful for supporting this kind of transformations.

Disclaimer: I worked 6 years ago with the mentioned technologies. Things may have changed in the meantime. Hence:

  • I encourage you to see architectures of different existing Semantic Web applications and find the one that suits your problem. For instance here.
  • Although lot's of work has been done in the field of Semantic Web tooling, this is still nichè technology. To target better your question, you may try to ask your question on product mailing lists and research fora.
  • Also, W3C maintains pretty long list of tools for RDF processing.
无风消散 2024-12-15 09:22:30

我建议其他从业者阅读一本由专业从业者编写的书:

它充满了示例利用耶拿和相关的语义网络技术。

I'd suggest a book written by a professional practitioner for other practitioners:

It is full of examples that utlize Jena and related semantic web technologies.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文