私はセマンティック Web の学習にかなり慣れていないので、学習を容易にするために、私がよく知っているビデオ ゲームについてのオントロジーを作成することにしました。
これで少しは理解できたと思いますが、まだいくつか問題があります。ここでの私の一般的な考えは、基本的に 4 つのプラットフォームがあるということです。これは非常に単純化されています (さまざまなコンソールではなく、ゲームをプレイできるコンソールを作成している会社をリストするだけです)。とにかく、私が抱えている問題は次の行に起因します。
<owl:someValuesFrom rdf:resource="#Platforms"/>
何が問題なのか完全にはわかりません。「#」文字を使用して、または使用せずに試しましたが、Jena は解析時にこのエラーを表示しています (コメントアウトすると、正常に解析されます)。
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);
}
追加情報: Jena 2.10.0 (最新) と Eclipse を使用しています。