在c#中读取RDF / XML文件

时间:2016-08-14 20:41:42

标签: c# ontology dotnetrdf

我正在努力阅读c#中的OWL文件,我想解决这个问题,因为我是语义网络世界的新手 我读过有关dotnetrdf库的内容,该库用于在c#和asp.net中读取OWL文件 通过他们的文档,我找到了关于Hello世界的例子 我的问题在这里 当我把代码

        IGraph g = new Graph();
        g.LoadFromFile("Helloworld.owl");
        IUriNode dotNetRDF = g.CreateUriNode(UriFactory.Create("http://www.dotnetrdf.org"));
        IUriNode says = g.CreateUriNode(UriFactory.Create("http://example.org/says"));
        ILiteralNode helloWorld = g.CreateLiteralNode("Hello World");
        ILiteralNode bonjourMonde = g.CreateLiteralNode("Bonjour tout le Monde", "fr");

        g.Assert(new Triple(dotNetRDF, says, helloWorld));
        g.Assert(new Triple(dotNetRDF, says, bonjourMonde));
        foreach (Triple t in g.Triples)
        {
            Console.WriteLine(t.ToString());
        }
        Console.ReadLine();

它给我这样的输出

http://www.dotnetrdf.org/ , http://example.org/says , Hello World
http://www.dotnetrdf.org/ , http://example.org/says , Bonjour tout le Monde@fr

那么如何在没有URI的情况下显示结果,请对此有任何想法???

2 个答案:

答案 0 :(得分:1)

使用Console.WriteLine(t.ToString())Triple个对象的字符串表示形式打印到控制台。如果您想访问特定成员(请查看http://www.dotnetrdf.org/api/dotNetRDF~VDS.RDF.Triple~Members.html),则可以直接访问。 e.g。

foreach (Triple t in g.Triples)
{
     Console.WriteLine(t.Predicate);
     Console.WriteLine(t.Subject);
     Console.WriteLine(t.Object);
}

希望这有帮助。

答案 1 :(得分:0)

尝试打印'对象'三重财产:

        foreach (Triple t in g.Triples)
        {
            Console.WriteLine(t.Object);
        }