2012-03-02 6 views
1

私は私のRDFファイル。これ..私は、コード使用していますされdotNetRDfライブラリからクラスとサブクラスを抽出するために私のコード..プロパティを抽出

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System; 
using System.Linq; 
using VDS.RDF; 
using VDS.RDF.Ontology; 
using VDS.RDF.Parsing; 


namespace ConsoleApplication1 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
    // 
     OntologyGraph g = new OntologyGraph(); 
     FileLoader.Load(g, "D:\\SBIRS.owl"); 
     OntologyClass someClass = g.CreateOntologyClass(new  
     Uri("http://www.semanticweb.org/ontologies/2012/0/SBIRS.owl#Shape")); 

        //Write out Super Classes 

     foreach (OntologyClass c in someClass.SuperClasses) 
     { 
      Console.WriteLine("Super Class: " + c.Resource.ToString()); 
     } 
     //Write out Sub Classes 



     foreach (OntologyClass c in someClass.SubClasses) 
     { 

      Console.WriteLine("Sub Class: " + c.Resource.ToString()); 
     } 
     Console.Read(); 
    } 
} 

}

を書かれています

しかし、今、私はクラスに関連付けられたプロパティを抽出したい..私はクラスをOntologyProperty使用しようとしたが、所望の出力

答えて

0

あなたはextract the properties associated with the classesとはどういう意味ですかを取得することができませんでしたか?

これは、任意の数のものを意味する可能性があります。単にそのクラスをドメイン/範囲として持つプロパティを見つけることを意味しますか?あなたはこの基礎となるAPIの単なるラッパーですが、あなたがそうのような低レベルのAPIを使用することができオントロジーのAPIを使用して行うことはできません

//Assuming you've already set up your Graph and Class as above... 

//Find properties who have this class as a domain 
INode domain = g.CreateUriNode(new Uri(NamespaceMapper.RDFS + "domain")); 
IEnumerable<OntologyProperty> ps = g.GetTriplesWithPredicateObject(domain, someClass).Select(t => new OntologyProperty(t.Subject, g)); 

//Now iterate over ps and do what you want with the properties 

を同様に、あなたはrdfs:rangeと同じことを行うことができますクラスを範囲として持つプロパティを取得する

関連する問題