使用dotnetrdf遍历本体

时间:2012-12-27 08:43:46

标签: sparql ontology owl dotnetrdf

我使用protege创建了一个本体。现在我想编写一个代码来使用dotNetRDF遍历本体。通过遍历来显示所有类,子类等。

我正在使用以下代码,但它提供异常**

  

给定前缀'owl'的名称空间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());
        }

此代码基于herehttp://answers.semanticweb.com/questions/19984/dotnetrdf-list-all-ontology-classes

给出的答案

任何人都可以让我知道上面的代码中缺少什么? dotNetRDF教程的任何好网址?

1 个答案:

答案 0 :(得分:2)

错误消息指的是代码的以下部分:

g.CreateUriNode("owl:Class")

这使用带前缀的名称作为完整URI的快捷方式,这需要在图表中定义owl前缀。

如果你得到这个,那么你的RDF文件不包括这个,你可以这样定义:

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

我想OntologyGraph应该自动定义OWL名称空间,我将在下一个版本中添加它。