我需要保留幾個Jena模型(具體而言,OntModels)跨套接字進行同步,並且我想每次都做一次更改(出於各種原因 - 其中一個原因是每個Statement添加或從OntModels中刪除也適應JESS規則庫)。我能夠聽取OntModels上的添加/刪除事件,然後創建簡單的事件實例,這些實例將添加/刪除的語句以及指示添加或刪除語句的ChangeType一起包裝,但序列化語句已被證明是一個問題。序列化JENA OntModel更改
不幸的是,我發現的所有JENA序列化文檔都涉及到將整個模型序列化到xml/rdf/n3 /等等。由於語句只是字符串的三元組(無論如何),它似乎就像它應該很簡單,以便在Statement級別序列化數據。但是,Jena似乎沒有提供用於「用正確的方式」的普通字符串來創建語句的API。類型文字出現問題。例如:
我可以創建聲明:
<http://someuri/myont#foo> <http://someuri/myont#weight> "50.7"^^www.w3.org/2001/XMLSchema#double
但字符串版本,我可以出去看起來是這樣的:
"http://someuri/myont#foo" "http://someuri/myont#weight" "50.7^^www.w3.org/2001/XMLSchema#double"
(注意不存在的「前^^ )
這不會是太大的問題,因爲文字仍然可以用正則表達式解析出來,但是我一直無法用正確的文字創建一個Statement。明顯的方法(ModelC on.createStatement(Resource,Property,String))會生成一個無類型的字符串文本,其中傳入的字符串的全部值爲
有誰知道我如何可靠地序列化(和反序列化,當然)單個耶拿語句?
N-triples語法實際上是我正在使用的(並最終使用的)問題是在檢測文字期間反序列化。 (你現在可以在這裏看到我的方法)。儘管使用模型序列化可能是最強大的。 – rcreswick 2009-01-14 00:12:28