与任何 Web 应用程序一样,您必须为三层或更多层做出架构决策。
存储层
大多数本体操作工具(Jena、Virtuoso、Sesame、Protege)提供了多种存储数据的方法:进程内(内存中)模型、RDB 模型(在您选择的 RDBMS 中)、原生格式存储。选择取决于您的环境限制和性能/可扩展性要求。
操作层
在这里选择一个解决方案总是会在抽象级别和表现力之间进行一些权衡。这是因为很难将所有本体构造映射到面向对象构造。
鉴于您可以选择:
Jastor 封装了 Jena OntModel
,或者Model
对您隐藏了 Jena 内部,因此如果您发现它受到限制,您可以随时扩展它。请注意,Jastor 似乎不再被维护。
表示层
操作层技术让您可以从表示视图中隐藏本体内部,因此您可以使用 JSP 等传统技术来生成 HTML 输出。不过,对于某些问题,以 RDF/XML 格式生成模型并对其应用 XSL(T) 类转换可能会很方便。我发现rx4RDF是一个基于 Python 的工具,可用于支持这种转换。
免责声明:我在 6 年前使用上述技术工作。在此期间情况可能发生了变化。因此:
- 我鼓励您查看不同现有语义 Web 应用程序的架构,并找到适合您问题的一种。比如这里。
- 尽管在语义网工具领域已经做了很多工作,但这仍然是小众技术。为了更好地定位您的问题,您可以尝试在产品邮件列表和研究论坛上提出您的问题。
- 此外,W3C 维护了相当长的RDF 处理工具列表。