2012-04-02 12 views
0

Ich habe diese Eulen-Datei. #Indelivers ist eine Unterklasse von #ipInDelivers. Was ich herausfinden möchte ist, wie man die #isPartOfMibDef-Ressource dieser Klasse findet, in diesem Fall # IP-MIB.Zugriff auf Einschränkung von Eule-Superklasse mit 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> 

Der Code, den ich bisher habe, ist dies:

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

Ich habe versucht, die meisten get- und Listenfunktionen in der übergeordneten Klasse zugreifen, aber ich kann nicht die #isPartOfMibDef überall zu finden scheinen

Antwort

0

sollte Ihr Namespace sein:

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

Ja, ich weiß, es war nur ein Tippfehler im OP. – andersem

0

Das ist für mich gearbeitet. Meine Eulenklasse "Sitzung" hat jedoch keine Schnittmenge.

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