在 C# 中读取 RDF/XML 文件

Read RDF/XML file in c#

我在用 C# 读取 OWL 文件时遇到困难,我想解决这个问题,因为我是语义网世界的新手 我已经阅读了用于在 c# 和 asp.net 中读取 OWL 文件的 dotnetrdf 库 通过他们的文档,我找到了关于 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 的情况下显示结果,请问有什么想法吗???

使用 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);
}

希望对您有所帮助。

尝试打印三元组的 'Object' 属性:

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