2016-08-14 8 views
0

Я борюсь с чтением OWL-файла в C#, и я хочу решить эту проблему, потому что я новичок в мире семантической сети Я читал о библиотеке dotnetrdf, которая используется для чтение файла OWL в C# и ASP.NET через их документации, которую я нашел пример о Привет, мир мой вопрос здесь когда я поставил кодЧтение файла RDF/XML в C#

 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 [email protected] 

, так как я могу отобразить результат без URI, пожалуйста, любая идея об этом ???

ответ

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

Надеюсь, что это поможет.

+0

Большое спасибо вашему ответу, это было полезно для этого кода, но когда я сделал то же самое для моего кода, он по-прежнему дает мне uri, мой вопрос относительно моего файла OWL, который uei мне нужно использовать, чтобы поместить его в код свойства объекта или свойства данных ???? вы можете мне посоветовать ?? –

+0

@brahamalboshi - Какая собственность дает вам еще ури? –

+0

В моей онтологии у меня есть класс, который разделен на 5 подклассов, но в этом классе у него есть объект, который называется именем, например, как (Car), он имеет имя (BMW) и имеет подкласс (тип, год и т. Д.), Когда я запрашиваю для имени он дает мне весь подкласс uri –

0

Try печать свойство «объекта» Тройной:

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