2010-05-23 53 views
3

我正在做(想做)使用Linked Open Datasets進行的一些實驗,特別是那些由政府推出的實驗。爲RDBMS(MySQL數據庫)創建SPARQL端點的最佳方法

我有一個RDBMS(更具體的MySQL)。我設計了語義網頁的想法,即我有一個信息存儲爲定義對象的對象,謂詞和類。反過來,所有對象通過形式爲subject - > predicate - > object(其中主體來自對象表)的語句彼此相關。

我希望能夠從我的應用程序中查詢其他RDF三重商店,並讓其他三重商店查詢我的數據。是否有可能「設置某些東西」,這樣纔有可能?

我曾看過耶拿。使用Jena似乎意味着我必須將它作爲存儲應用程序而不是MySQL--唯一的問題是我包含了一個名爲類別的新概念(我不認爲它是語義Web語言的一部分)。我將使用類別來幫助顯示信息(它們沒有任何其他含義),但使用Jena似乎意味着我無法在類別下組織謂詞以便更方便查看。

我正在使用Java,所以首選JAVA API。

這也有可能是我誤解了耶拿的目的,也許這可以使用,但我不知道如何。

我相信從現在開始的四天之後,這個問題看起來會很愚蠢,但目前我對如何繼續有些困惑。

回答

4

我不確定你的意思是「一個新的概念稱爲類別」,也許你可以舉個例子嗎?

如果您的意思是您想要添加額外的元數據,或許是作爲在用戶界面中組織信息的一種方式,則不需要擴展語義Web語言或存儲系統 - 它們可以已經做到了您想要的。

假設你從UK Government schools dataset(使用龜編碼爲簡潔起見)有一所學校的數據:

@prefix sch-ont: <http://education.data.gov.uk/def/school/>. 
<http://education.data.gov.uk/id/school/135412> 
a sch-ont:School; 
sch-ont:establishmentStatus 
    <http://education.data.gov.uk/def/school/EstablishmentStatus_Open>; 
sch-ont:MSOA <http://statistics.data.gov.uk/id/msoa/E02000001>; 
sch-ont:establishmentName "Guildhall School of Music and Drama"; 
... 

您可以直接從SPARQL end-point查詢的數據,也可以在本地下載的數據並將其存儲你自己的三重商店。無論哪種方式,您都可以隨意添加對用戶有用的額外信息。例如:

@prefix ankurs-app: <http://ankur.org/example/app/vocab/display#>. 
<http://education.data.gov.uk/id/school/135412> 
     ankurs-app:category ankurs-app:wkdCool. 

您可以在同一個圖形保存這個新的三層作爲下載的數據,也可以將其存儲在一個單獨的命名圖來表明它是有不同的起源而不是源數據信息。無論哪種方式,通過Jena以編程方式或通過SPARQL查詢進行查詢都很簡單。

高效地爲做一個佈局查詢無模式的三重中心數據是一個研究得很深刻,難度很大的問題。包括Jena在內的大多數RDF平臺都有針對自己的數據庫方案查詢和更新三元組的優化代碼。你必須有很好的理由開始你自己的關係表佈局:)

如果你真的需要採取現有的關係表方案並將其映射到耶拿RDF模型,請看D2RQ

3

爲什麼你不使用三重商店來存儲所有的數據?如果您使用具有SPARQL endpoint功能的三重商店,那麼您將擁有SPARQL可訪問的Web API。同樣,Web上的許多其他數據集都作爲SPARQL端點公開,並可通過HTTP訪問。

在db和其他方面(Jena + SDB,Mulgara,Virtuoso,Oracle等),有很多三重存儲可用於持久存儲。你當然可以通過他們的解析器擴展Mulgara來支持對你的定製數據庫的查詢,但我認爲這可能是很多工作,因爲沒有太多的實際價值。

我確定您可以使用現有的概念來處理您在RDF中的類別概念,或者可能通過對Jena進行分層。

+0

是的,我傾向於耶拿和SDB--不知道類別會發生什麼。 – Ankur 2010-05-24 02:06:09

相關問題