2012-04-02 1 views
0

У меня есть этот файл совы. #indelivers является подклассом #ipInDelivers. Я хочу узнать, как найти ресурс #isPartOfMibDef этого класса, в данном случае # IP-MIB.Доступ к ограничению от сова-суперкласса с Apache Jena

<owl:ObjectProperty rdf:about="#isPartOfMibDef"/> 

<owl:ObjectProperty rdf:about="#hasSyntax"/> 

<owl:Class rdf:about="#Counter32"> 
    <rdfs:subClassOf rdf:resource="#SYNTAX"/> 
</owl:Class> 

<owl:Class rdf:about="&owl;Thing"/> 

<owl:Class rdf:about="#mibObjects"> 
    <rdfs:subClassOf rdf:resource="&owl;Thing"/> 
</owl:Class> 

<owl:Class rdf:about="#IP-MIB"> 
    <rdfs:subClassOf rdf:resource="#mibDefs"/> 
</owl:Class> 

<owl:Class rdf:about="#ipInDelivers"> 
    <owl:equivalentClass> 
     <owl:Class> 
      <owl:intersectionOf rdf:parseType="Collection"> 
       <owl:Restriction> 
        <owl:onProperty rdf:resource="#hasSyntax"/> 
        <owl:allValuesFrom rdf:resource="#Counter32"/> 
       </owl:Restriction> 
       <owl:Restriction> 
        <owl:onProperty rdf:resource="#isPartOfMibDef"/> 
        <owl:allValuesFrom rdf:resource="#IP-MIB"/> 
       </owl:Restriction> 
      </owl:intersectionOf> 
     </owl:Class> 
    </owl:equivalentClass> 
    <rdfs:subClassOf rdf:resource="#mibObjects"/> 
</owl:Class> 

<owl:Class rdf:about="#aliases"> 
    <rdfs:subClassOf rdf:resource="&owl;Thing"/> 
</owl:Class> 

<owl:Class rdf:about="#indelivers"> 
    <rdfs:subClassOf rdf:resource="#aliases"/> 
    <rdfs:subClassOf rdf:resource="#ipInDelivers"/> 
</owl:Class> 

код у меня до сих пор это:

String NS = "http://namespace.com/owl#"; 
InputStream is = FileManager.get().open(this.owlPath); 
OntModel ontology = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF,null); 
    ontology.read(is,""); 

Reasoner reason = ReasonerRegistry.getOWLMicroReasoner(); 
InfModel info = ModelFactory.createInfModel(reason,ontology); 

OntClass alias = this.ontology.getOntClass(NS+"indelivers"); 
OntClass superClass = alias.getSuperClass(); 

Я пытался получить доступ к большинству GET- и список функций в суперкласса, но я не могу найти где-нибудь #isPartOfMibDef

ответ

0

Ваше пространство имен должно быть:

String NS = "http://namespace.com/owl#"; 
+0

Да, я знаю, это была просто опечатка в OP. – andersem

0

Это работает для меня. Однако у моего класса «сеанс» совы нет пересечения.

OntClass cl1 = model.getOntClass(nsPrefix + "session"); 
    OntClass cl = cl1.getSuperClass(); 
    for (StmtIterator i = model.listStatements(cl, null, (RDFNode) null); i.hasNext();) { 
     Statement stmt = i.nextStatement(); 
     logger.info(" - " + PrintUtil.print(stmt)); 
    }