我正在考慮在RDF或OWL本體中存儲Web應用程序的內容而不是RDBMS。本體可以替代Web應用程序的RDBMS嗎?
但是,當我研究本體時,它們總是存在於作爲語義網絡骨幹的可公開訪問的數據存儲中。我從來沒有聽說過他們被用作Web應用程序背後的內容引擎。
對於這樣的應用程序使用本體而不是RDBMS是否合理?
(同樣,這僅僅是內容,用戶數據,電子商務和類似的東西會留在數據庫中,我認爲沒有必要重新發明輪子那裏。)
我正在考慮在RDF或OWL本體中存儲Web應用程序的內容而不是RDBMS。本體可以替代Web應用程序的RDBMS嗎?
但是,當我研究本體時,它們總是存在於作爲語義網絡骨幹的可公開訪問的數據存儲中。我從來沒有聽說過他們被用作Web應用程序背後的內容引擎。
對於這樣的應用程序使用本體而不是RDBMS是否合理?
(同樣,這僅僅是內容,用戶數據,電子商務和類似的東西會留在數據庫中,我認爲沒有必要重新發明輪子那裏。)
通過「存儲的內容在RDF或OWL中的Web應用程序「,你的意思是」將數據存儲在一堆XML文件中「?
人們使用RDBMS的原因並不是他們的美麗。我討厭RDBMS的語義。很多。他們在某個時刻總是與我的編程模型相矛盾。但它們也提供了很多好處。
基本上,問題是,你會使用什麼樣的存儲引擎?您希望存儲速度更快,因此它應該爲搜索操作提供緩存和索引。你希望它是可靠的,所以它會很好,有一些健壯的,那degrades gracefully。您可能希望它能夠處理併發性,因此您希望擁有ACID屬性。你可能希望它可以輕鬆擴展,所以如果它支持分佈式機器上的存儲,最好的辦法是。
「將數據存儲在一堆XML文件中」,正如我直言不諱地說的,根本不符合這些標準中的任何一個。我不知道是否有以XML爲導向的文檔存儲,但我想是有的。
那麼爲什麼RDBMS?當我們說RDBMS時,我們實際上是指SQL。可能有其他選擇,但是在「正常生活」中你會遇到的任何東西都是SQL。大多數這些SQL數據庫都具有所需的屬性。所以做一些文件商店和一些重要價值商店。不同之處在於,SQL在技術上是一個標準(儘管實現的確有很大差異),並且由於對於大多數SQL數據庫驅動程序,實際上在任何語言中都存在綁定,因爲這些數據庫系統中的大多數已經存在了很長時間。
所以不,你沒有理由使用RDBMS。但是你真的應該使用存儲引擎。您可以隨意存儲RDF,但可能應該看看Triplestore。
希望這有助於
@ back2dos,感謝您的回覆。我想我的想法比「一堆XML文件」更強大一點。我見過Triplestore和其他像Seseme(基於Java)的引擎,可以管理大型複雜的本體。我認爲本體一般是爲了增長到令人難以置信的大小而設計的,爲什麼不把它們用於網站?至於併發性和可伸縮性,我對RDF不足之處感興趣。也許那裏的存儲引擎旨在緩解這些問題?我現在可以看到的SQL唯一的缺點是原始速度。 – Thomas 2010-04-01 13:04:11
@Thomas:好吧,我不是那麼肯定本體論應該實際上增長那麼大。我認爲WWW和RESTful系統的總體思路是分佈式的。 RDF對此提供支持。事實上,HTML和RDF引用其他文檔/數據的能力是如此強大。恕我直言,使用RDF忽略了一點,如果你不參考其他來源和其他來源不引用你。當你想到所有這些東西時,交換存儲引擎應該是你最擔心的問題。;) – back2dos 2010-04-01 13:25:57
對我而言,使本體如此強大的是隨着數據集的增長向對象添加屬性的能力。因此,如果我的系統中有幾個「狗」對象,並且有一天我決定所有的狗屬於「哺乳動物」對象,我可以簡單地更新定義,而不是添加表格並更改數據庫模式。我可以看到建立一個這樣的系統不需要連接任何外部來源的價值。雖然您提出的併發性和可伸縮性問題讓我對此提出質疑。 – Thomas 2010-04-01 14:40:13
我想看到的人會說什麼關於這個問題,以及... – 2010-03-31 20:54:53