2010-03-31 70 views
3

我正在考虑在RDF或OWL本体中存储Web应用程序的内容而不是RDBMS。本体可以替代Web应用程序的RDBMS吗?

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

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

(同样,这仅仅是内容,用户数据,电子商务和类似的东西会留在数据库中,我认为没有必要重新发明轮子那里。)

+0

我想看到的人会说什么关于这个问题,以及... – 2010-03-31 20:54:53

回答

1

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

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

基本上,问题是,你会使用什么样的存储引擎?您希望存储速度更快,因此它应该为搜索操作提供缓存和索引。你希望它是可靠的,所以它会很好,有一些健壮的,那degrades gracefully。您可能希望它能够处理并发性,因此您希望拥有ACID属性。你可能希望它可以轻松扩展,所以如果它支持分布式机器上的存储,最好的办法是。
“将数据存储在一堆XML文件中”,正如我直言不讳地说的,根本不符合这些标准中的任何一个。我不知道是否有以XML为导向的文档存储,但我想是有的。

那么为什么RDBMS?当我们说RDBMS时,我们实际上是指SQL。可能有其他选择,但是在“正常生活”中你会遇到的任何东西都是SQL。大多数这些SQL数据库都具有所需的属性。所以做一些文件商店和一些重要价值商店。不同之处在于,SQL在技术上是一个标准(尽管实现的确有很大差异),并且由于对于大多数SQL数据库驱动程序,实际上在任何语言中都存在绑定,因为这些数据库系统中的大多数已经存在了很长时间。

所以不,你没有理由使用RDBMS。但是你真的应该使用存储引擎。您可以随意存储RDF,但可能应该看看Triplestore

希望这有助于

+0

@ back2dos,感谢您的回复。我想我的想法比“一堆XML文件”更强大一点。我见过Triplestore和其他像Seseme(基于Java)的引擎,可以管理大型复杂的本体。我认为本体一般是为了增长到令人难以置信的大小而设计的,为什么不把它们用于网站?至于并发性和可伸缩性,我对RDF不足之处感兴趣。也许那里的存储引擎旨在缓解这些问题?我现在可以看到的SQL唯一的缺点是原始速度。 – Thomas 2010-04-01 13:04:11

+0

@Thomas:好吧,我不是那么肯定本体论应该实际上增长那么大。我认为WWW和RESTful系统的总体思路是分布式的。 RDF对此提供支持。事实上,HTML和RDF引用其他文档/数据的能力是如此强大。恕我直言,使用RDF忽略了一点,如果你不参考其他来源和其他来源不引用你。当你想到所有这些东西时,交换存储引擎应该是你最担心的问题。;) – back2dos 2010-04-01 13:25:57

+0

对我而言,使本体如此强大的是随着数据集的增长向对象添加属性的能力。因此,如果我的系统中有几个“狗”对象,并且有一天我决定所有的狗属于“哺乳动物”对象,我可以简单地更新定义,而不是添加表格并更改数据库模式。我可以看到建立一个这样的系统不需要连接任何外部来源的价值。虽然您提出的并发性和可伸缩性问题让我对此提出质疑。 – Thomas 2010-04-01 14:40:13

相关问题