2013-10-30 39 views
2

我正在尋找任何解決方案,通過Java程序將我的RDF化數據直接存儲到芝麻中。我有一個1.7 M記錄的數據庫,我使用D2R將其轉換爲RDF。現在我想將RDF化數據存儲到芝麻三重商店。由於數據龐大,我沒有生成RDF轉儲。有什麼方法可以通過我的代碼/解決方案將我的RDF化數據轉移到我的三重商店。謝謝如何使用D2R將RDF數據直接存儲到芝麻?

+1

有可能有幾種方法來實現這一點。但是,您必須對您的設置有更具體的瞭解,以及您需要的是什麼。你說你沒有RDF轉儲,但你也說你使用D2R生成了RDF。那麼你有什麼? –

+1

您可能還會顯示您嘗試過的內容。有很多關於如何使用在線提供的Sesame API的示例,您可以使用它來適應加載實時饋送或文件轉儲。 – Michael

+1

感謝Jeen和Michael的回覆。那麼,我問,我已經用D2R進行了rdf化數據,可以在http://cbakerlab.unbsj.ca:8080/liapibackup/snorql/找到。問題是由於後端的mysql數據庫,SPARQL查詢執行時間非常緩慢。有人建議我,如果我將數據存儲到芝麻中,它可以提高訪問速度。我在網上搜索找到一個教程,可以指導我做到這一點,但找不到任何。如果您知道,請與我分享任何示例/教程。謝謝。 –

回答

1

我相信你真的想說的是: 你有一個很大的RDBMS,你用它創建了一個使用D2RQ的RDF包裝視圖。 現在您想使用SNORQL(D2RQ的SPARQL端點)提取數據,並使用Sesame將其推送到本地RDF三重存儲。

我試圖編輯你的問題來反映,但不幸的是它被拒絕了。

  1. 燒成圖形查詢將返回一個GraphQueryResult

    GraphQueryResult graphResult = con.prepareGraphQuery(
    QueryLanguage.SPARQL, "CONSTRUCT <...your SPARQL QUERY here ...>".evaluate(); 
    
  2. 使用QueryResults實用工具類返回:

    無論如何,芝麻,您可以通過Java代碼通過這樣做作爲模型的聲明:

    Model resultModel = QueryResults.asModel(graphQueryResult); 
    
  3. use on e重載的RepositoryConnection.add方法將此數據添加到本機Sesame存儲中。

+1

好,但你完全可以跳過第2步。 'GraphQueryResult'是'Iteration'的子類型,所以你可以直接將它提供給'RepositoryConnection.add'方法。這具有以下優點:結果不需要首先在模型中完全實現:它可以以流式方式處理。 –

+0

我忽略了這一點。好點子。謝謝@JeenBroekstra – Nikhil