0

protegeを使用してオントロジーを作成しました。ここで、dotNetRDFを使用してオントロジーをトラバースするコードを記述したいと思います。トラバースとは、すべてのクラス、サブクラスなどを表示することです。

次のコードを使用していますが、例外が発生しています**

指定されたプレフィックス「フクロウ」の名前空間URIは、スコープ内のNamespaceMapperによって認識されません。

OntologyGraph g = new OntologyGraph();
        FileLoader.Load(g, "humanontordf.owl");

        OntologyClass classOfClasses = g.CreateOntologyClass(g.CreateUriNode("owl:Class"));

        //This iterates over the things that are a class
        foreach (OntologyResource r in classOfClasses.Instances)
        {
            //Do what you want with the class
            Console.WriteLine(r.ToString());
        }

このコードは、ここで与えられた回答に基づいています(http://answers.semanticweb.com/questions/19984/dotnetrdf-list-all-ontology-classes

上記のコードに何が欠けているのか誰かに教えてもらえますか?dotNetRDFのチュートリアルに適したURLはありますか?

4

1 に答える 1

2

エラーメッセージは、コードの次の部分を参照しています。

g.CreateUriNode("owl:Class")

owlこれは、グラフでプレフィックスを定義する必要がある完全なURIのショートカットとしてプレフィックス名を使用します。

これを取得している場合、RDFファイルにはこれが含まれていません。次のように定義できます。

g.NamespaceMap.AddNamespace("prefix", new Uri("http://some/namespace/"));

OntologyGraph本当にOWL名前空間を自動的に定義する必要があると思います。これは次のリリースで追加します。

于 2012-12-27T13:55:20.023 に答える