Ich habe meine Ontologie bisher geöffnet und möchte nun alle Objekte lesen und deren Eigenschaften anzeigen:
Ich habe den nächsten Code:
// Opening the ontology.
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);
model.read("file:C:/Users/Antonio/Desktop/myOntology.owl","OWL");
// Going through the ontology
for (Iterator<OntClass> i = model.listClasses();i.hasNext();){
OntClass cls = i.next();
System.out.print(cls.getLocalName()+": ");
// here I want to show the properties
}
Das zeigt nur den Namen der Klassen, aber nicht ihre Eigenschaften. Ich habe die Dokumentation gelesen, aber ich finde nichts Nützliches.
Hoffentlich kann mir jemand helfen.
Danke im Voraus.
Antworten:
0 für die Antwort № 1Ich bin nicht sicher, warum Sie alle Eigenschaften wünschen, aber Sie können das leicht machen. Stellen Sie zuerst sicher, Jena's OntProperty zu importieren import org.apache.jena.ontology.OntProperty;
Dann kannst du einfach in deine for-Schleife: cls.listDeclaredProperties().toList()
Wenn Sie auf den Inhalt einer bestimmten Eigenschaft zugreifen möchten, können Sie dies folgendermaßen tun: Überprüfe dein .owl
Datei für die URI, die in etwa so aussieht "http://example.com/ontology#"
Ihr Java-Code wird also so aussehen: OntProperty nameOfProperty = model.getOntProperty("http://example.com/ontology#nameOfyourProperty");
Dann könnten Sie in Ihrer Schleife zum Beispiel so etwas tun: cls.getProperty(nameOfProperty).getString()
Und bevor Sie Ihre Datei lesen, möchten Sie sie vielleicht in eine try catch-Anweisung schreiben. Hoffnung, die geholfen hat.
0 für die Antwort № 2
Der Code druckt Klassen, weil listClasses()
gibt Klassen der Ontologie zurück. Um die Objekteigenschaften der Personen zu drucken, können Sie die OWL-API verwenden