【问题标题】:What are the Best Practices in developing semantic application using Jena & RDF使用 Jena 和 RDF 开发语义应用程序的最佳实践是什么
【发布时间】:2011-12-01 04:36:40
【问题描述】:

语义网:最佳实践

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

【问题讨论】:

    标签: rdf jena semantic-web protege


    【解决方案1】:

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

    存储层

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

    操作层

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

    鉴于您可以选择:

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

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

    表示层

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

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

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

    【讨论】:

      【解决方案2】:

      我会推荐一本由专业从业者为其他从业者写的书:

      其中充满了利用 Jena 和相关语义网络技术的示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-12
        • 2015-11-17
        • 1970-01-01
        • 2012-05-10
        • 2010-10-14
        • 1970-01-01
        • 1970-01-01
        • 2019-08-22
        相关资源
        最近更新 更多