0

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

        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 的情况下显示结果,请对此有任何想法???

4

2 回答 2

1

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

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

希望这可以帮助。

于 2016-08-14T21:07:45.267 回答
0

尝试打印 Triple 的“对象”属性:

        foreach (Triple t in g.Triples)
        {
            Console.WriteLine(t.Object);
        }
于 2016-08-14T21:11:12.137 回答