2

com.hp.hpl.jena.rdf.model.Model.listNameSpaces() を使用して、Jena RDF モデルの名前空間を取得しています。

しかし、モデルには、listNameSpaces メソッドによってリストされていない名前空間を持つステートメント オブジェクトを含めることができることに気付きました。

たとえば、カメラ グラフ ( http://www-users.cs.york.ac.uk/~jc/teaching/arin/camera.owl.turtle ) には次のオブジェクトが含まれていますが、それらの名前空間は名前空間に表示されません。リスト:

http://www.dbpedia.org/resource/ Nikon http://www.w3.org/2001/XMLSchema# decimal

これらの 2 つの ns がリストされない理由を知っている人はいますか? ありがとう。

// 圧縮コード:

Model model = ModelFactory.createDefaultModel();
RDFReader reader = model.getReader("TURTLE");
InputStream in = FileManager.get().open("http://www-users.cs.york.ac.uk/~jc/teaching/arin/camera.owl.turtle");
reader.read(model, in, null);

NsIterator listNameSpaces = model.listNameSpaces();
while (listNameSpaces.hasNext())
{
  System.out.println("Namespace from iterator: " + listNameSpaces.next());
}
4

1 に答える 1

5

そのメソッドの API ドキュメントには次のように書かれています。

返される名前空間は、(a) モデルでプロパティーとして使用されるすべての URI のもの、および (b) rdf:type ステートメントのオブジェクトとして現れるすべての URI のものです。

dbpedia:Nikonとはそれぞれリテラルのオブジェクトと型として使用されるためxsd:decimal、メソッドは名前空間を返しません。

ドキュメントには次のようにも記載されています。

(おそらく、このメソッドは必要ありません。Model がサポートする PrefixMapping メソッドが必要になる可能性が高くなります。)

それらはここに文書化されています。

于 2013-03-21T18:36:38.723 に答える