/ / Wie man Objekteigenschaften aus der Ontologie mit Jena Java API liest - Java, API, Jena, Eule, Ontologie

Wie man Objekteigenschaften von der Ontologie liest, die Jena Java API benutzt - java, api, jena, Eule, Ontologie

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 № 1

Ich 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