我使用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());
}
此代码基于here(http://answers.semanticweb.com/questions/19984/dotnetrdf-list-all-ontology-classes)
给出的答案任何人都可以让我知道上面的代码中缺少什么? dotNetRDF教程的任何好网址?
答案 0 :(得分:2)
错误消息指的是代码的以下部分:
g.CreateUriNode("owl:Class")
这使用带前缀的名称作为完整URI的快捷方式,这需要在图表中定义owl
前缀。
如果你得到这个,那么你的RDF文件不包括这个,你可以这样定义:
g.NamespaceMap.AddNamespace("prefix", new Uri("http://some/namespace/"));
我想OntologyGraph
应该自动定义OWL名称空间,我将在下一个版本中添加它。