我對學習語義網很陌生,所以爲了便於學習,我選擇了寫一個關於我相當熟悉的東西的本體論,視頻遊戲。Jena someValues從錯誤 - {E201} rdf:資源不允許作爲屬性在這裏
所以我想我已經開始瞭解這一點,但仍然有一些問題。我的一般想法是基本上有4個平臺。誠然,這是非常簡單(而不是不同的控制檯,只列出,使一個控制檯遊戲可玩上的公司。)反正,說我遇到的問題從線梗:
<owl:someValuesFrom rdf:resource="#Platforms"/>
我不能完全肯定有什麼地方錯了,我已經試過有和沒有「#」字符,但耶拿是給我上分析它(如果我把它註釋掉,它解析就好了)這個錯誤:
org.apache.jena.riot.RiotException: {E201} rdf:resource not allowed as attribute here.
我有一種感覺,我沒有完全理解owl:someValuesFrom,而且我看過的大多數參考本體似乎都在類似的環境中使用它。我幾乎可以肯定,我忽略了一些簡單的東西,所以也許更多的眼睛會有所幫助,但任何和所有的幫助表示讚賞如果需要的話,我很樂意發佈更多的本體論。
它的內容是:
<owl:Class rdf:ID="Platforms">
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#PC"/>
<owl:Thing rdf:about="#Playstation"/>
<owl:Thing rdf:about="#Xbox"/>
<owl:Thing rdf:about="#Nintendo"/>
</owl:oneOf>
</owl:Class>
<owl:Class rdf:ID="Platform">
<rdfs:label>Platform</rdfs:label>
<owl:Restriction>
<owl:someValuesFrom rdf:resource="#Platforms"/>
</owl:Restriction>
</owl:Class>
用於打開Java代碼/讀取的本體是:
try
{
// open input file stream
InputStream in = FileManager.get().open(inputFile);
// create a new model, then read the OWL file into it
model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_RULE_INF, null);
model.read(inputFile);
}
catch (Exception e)
{
System.err.println(e);
}
其他信息: 我使用耶拿2.10.0(最新)和Eclipse。
謝謝,我真的很新的這個和人們似乎很少/稀疏文件。我嘗試使用Protege,但它吐出的本體似乎有所不同,而耶拿似乎並不喜歡它。 – 2013-05-05 20:30:32
Protege應該能夠生成Jena(或任何其他RDF工具包)可以處理的OWL本體。如果遇到問題,可以詢問保護人或者jena用戶名單。 – 2013-05-06 00:17:32
真的很晚在這裏辦理登機手續,但我想提供一個更新。在花了很多時間之後,我最終放棄了這個「項目」,專注於其他更緊迫的任務。最後把你的回答標記爲答案,抱歉這麼久! – 2014-02-27 15:32:54