我正在考虑将Web应用程序的内容存储在RDF或OWL本体中而不是RDBMS中。
然而,当我研究本体时,它们似乎总是存在于可公开访问的数据存储的上下文中,作为语义Web的主干。我从未听说过它们被用作网络应用程序背后的内容引擎。
在这样的应用程序中使用本体而不是RDBMS是否合理?
(同样,这只是为了内容。用户数据,商业和类似的东西将保留在数据库中,因为我认为没有必要重新发明轮子。)
答案 0 :(得分:2)
通过“将Web应用程序的内容存储在RDF或OWL中”,您的意思是“将数据存储在一堆XML文件中”吗?
人们使用RDBMS的原因并不是他们的美丽。我讨厌RDBMS的语义。很多。它们总是在某些时候与我的编程模型相矛盾。但它们也提供了很多好处。
基本上,问题是,你会使用什么样的存储引擎?您希望您的存储快速,因此它应该具有用于搜索操作的缓存和索引。你希望它是可靠的,所以有一些健壮的东西会很好degrades gracefully。您可能希望它能够处理并发性,因此您希望拥有ACID属性。并且您可能希望它易于扩展,因此最好是支持分布式计算机上的存储 正如我直截了当地说的那样,“将数据存储在一堆XML文件中”根本不符合这些标准。我不知道是否有面向XML的文档存储,但我想有。那为什么选择RDBMS?当我们说RDBMS时,我们实际上是指SQL。可能有其他选择,但在“正常生活”中你会遇到的任何东西都是SQL。大多数SQL数据库都具有所需的属性。一些文档存储和一些键值存储也是如此。不同的是,SQL在技术上是一个标准(虽然实现真的变化很大),因为对于大多数SQL数据库驱动程序,几乎所有语言都有绑定,因为大多数这些数据库系统已经存在了很长时间。
所以不,你没有理由使用RDBMS。但是你真的应该使用存储引擎。您可以根据需要存储RDF,但可能您应该查看Triplestore。
希望这会有所帮助