3

我正在考虑将 Web 应用程序的内容存储在 RDF 或 OWL 本体而不是 RDBMS 中。

然而,当我研究本体时,它们似乎总是存在于可公开访问的数据存储环境中,作为语义网络的骨干。我从未听说过它们被用作 Web 应用程序背后的内容引擎。

对于这样的应用程序使用本体而不是 RDBMS 是否合理?

(同样,这只是针对内容。用户数据、商业和类似的东西将保留在数据库中,因为我认为没有必要在那里重新发明轮子。)

4

1 回答 1

2

通过“将 Web 应用程序的内容存储在 RDF 或 OWL 中”,您的意思是“将数据存储在一堆 XML 文件中”吗?

人们使用 RDBMS 的原因不是他们的美丽。我讨厌 RDBMS 的语义。很多。它们总是在某些时候与我的编程模型相矛盾。但它们也提供了很多好处。

基本上,问题是,您将使用哪种存储引擎?您希望存储速度很快,因此它应该具有用于​​搜索操作的缓存和索引。你希望它是可靠的,所以最好有一些健壮的东西,可以优雅地降级。您可能希望它能够处理并发,因此您会希望拥有ACID属性。而且您可能希望它易于扩展,因此最好是它支持分布式机器上的存储。
正如我直言不讳地说,“将数据存储在一堆 XML 文件中”根本不符合这些标准中的任何一个。我不知道是否有面向 XML 的文档存储,但我想有。

那么为什么是关系型数据库呢?当我们说 RDBMS 时,我们实际上是指 SQL。可能有其他选择,但是您在“正常生活”中遇到的任何事情都是某种 SQL。这些 SQL 数据库中的大多数都具有所需的属性。一些文档存储和一些键值存储也是如此。不同之处在于,SQL 在技术上是一个标准(尽管实现确实有很大差异),因为对于大多数 SQL 数据库驱动程序,几乎任何语言都有绑定,而且这些数据库系统中的大多数已经存在了很长时间。

所以不,你没有理由使用 RDBMS。但是,您确实应该使用存储引擎。您可以根据需要存储 RDF,但也许您真的应该看看Triplestore

希望这可以帮助

于 2010-04-01T11:26:55.487 回答