2014-01-22 75 views
4

我想用Jena解析freebase-dump-file-free-rdf-2014-01-12-00-00.gz(25 GB)。 Jena報告了很多關於不良數據的問題。 示例 - 150.0無效,true和false值無效 這些問題通過在轉儲文件中添加雙引號括起來,並且在轉儲文件中添加了雙引號。 但是,問題仍然存在reported by Jena.(current - org.apache.jena.riot.RiotException: [line: 161083, col: 110] Illegal object: [MINUS])Jena解析Freebase RDF dump的問題(2014年1月)

有什麼辦法可以預處理這些數據,這樣我就不必一一解決每個問題。 我的Java代碼:

// Open TDB dataset 
    String directory = "D:/test_dump"; 
    Dataset dataset = TDBFactory.createDataset(directory); 

    // Assume we want the default model, or we could get a named model here 
    Model tdb = dataset.getDefaultModel(); 

    // Read the input file - only needs to be done once 
    String source = "D:/test_dump/fixed-freebase-second-rdf.gz"; 
    FileManager.get().readModel(tdb, source, "N-TRIPLES"); 
+1

在answers.semanticweb.com上有一個關於此問題的最近問題,[Freebase RDF dump是否符合w3 n-triples規範?](http://answers.semanticweb.com/questions/26084/does-在-遊離鹼,RDF-自卸符合到的-W3-N-三元規格)。數據在烏龜,而不是N-Triples。 –

回答

4

的數據是龜格式,而不是的N-Triples。他們使用各種海龜縮寫(如true"true"^^xsd:boolean-27"-27"^^xsd:integer)。

可能仍然存在錯誤,因爲它們的轉儲還包含非法語法,例如使用的前綴名稱$沒有周圍的事物改變的RDF必要\

加上引號。

2

注:這是一個從answers.semanticweb.com問題,Does the Freebase RDF dump conform to the w3 n-triples spec?簡短的回答是,該數據是在龜系列化,不是的N-Triples我的答案的副本。龜支持各種縮寫,例如true代表"true"^^xsd:boolean

即使在上Data Dumps示例數據有不正確的N-Triples:

<http://rdf.freebase.com/ns/g.11vjz1ynm> <http://rdf.freebase.com/ns/measurement_unit.dated_percentage.rate> 4.5 . 

它看起來更像他們的數據是在符號3(N3)或龜格式大於N-三元組。事實上,從this post on the freebase-discuss肖恩·錫米斯特於2013年8月29日說,(強調):

我一直工作在 遊離鹼RDF的新版本轉儲這將 解決許多有 一直是問題自從我們首次開始發現 發佈數據爲RDF以來發現。 ... 在這些垃圾場的最大的變化是 的格式已經從龜切換到 的N-Triples。在實踐中 這是一個非常小的變化,因爲 N-Triples是龜的一個子集,其中 遵循我們現在具有的相同的每三行 格式。

一個later post(2013年10月31日)觸及布爾問題:

嗯,是啊,看來這是一個 錯誤。龜支持true和false爲 相當於「true」^^ xsd:boolean和 「false」^^ xsd:boolean但即使 N三元組是龜的一個子集它 不支持簡化布爾 語法。

這是值得閱讀更多的線程。這有點令人沮喪,因爲當人們寫這樣的東西時,「你可以用」真「,」不清楚他們的意思是true還是"true"。聽起來好像有些人實際上並不關心有效的RDF,或者是無意義的簡單文字"true"與布爾類型文字"true"^^xsd:boolean之間的差異,可以簡寫爲true。無論如何,簡短的答案看起來像是「使用烏龜或N3解析器」。

相關問題