2016-10-06 6 views
0

hereからダウンロードした標準ピザオントロジーのスーパークラスを印刷しようとしています。私はOWL API 3.4.3とHermit 1.3.8.1(推理系)を使用しています。OWL-APIとHermitを使ったピザオントロジーのスーパークラスの印刷

次のコードスニペットを使用して、というクラスの必須スーパークラスをに出力します。

OWLOntologyManager manager = OWLManager.createOWLOntologyManager(); 
IRI ontologyIRI =IRI.create("file:/D:/pizza.owl.xml");  
//IRI ontologyIRI =IRI.create("http://www.co-ode.org/ontologies/pizza/pizza.owl"); 

OWLOntology ontology = manager.loadOntology(ontologyIRI); 
OWLReasoner reasoner = new Reasoner.ReasonerFactory().createReasoner(ontology); 
OWLDataFactory df = manager.getOWLDataFactory();  
    try{ 
      reasoner.precomputeInferences(InferenceType.CLASS_ASSERTIONS); 
      //following Lines are to see super classes of Container 
      OWLClass clsA = df.getOWLClass(IRI.create(ontologyIRI + "#Food")); 
      Set<OWLClassExpression> superClasses = clsA.getSuperClasses(ontology); 
      System.out.println("in TRY 1"); 
      //System.out.println("Hello World\n"+superClasses.iterator().toString()); 
      for (OWLClassExpression g : superClasses) { 
       System.out.println("The superclasses are:"+g); 
      } 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 

コンパイルエラーは発生しません。結果はTRY 1です。ループの内容の内容は印刷されていません

プロテジェ5.0では、私は2つを見た。スーパークラスのフードクラス;すなわちDomainConceptおよびowl:Thingです。なぜこれら2つの名前がプログラムによって印刷されていないのですか?

どこが間違っていますか?

ありがとうございました。

答えて

1

あなたのオントロジーIRIはローカルファイル名です。クラスIRIを取得するためにそれを使用すると、オントロジで実際に使用されているものとは異なるIRIが取得されます。クラスが実際に持っているものを確認してください。

関連する問題