/ / Jak odczytać właściwości obiektu z ontologii przy pomocy Jena Java API - java, api, jena, owl, ontology

Jak odczytać właściwości obiektu z ontologii za pomocą Jena Java API - java, api, jena, owl, ontology

Otworzyłem dotychczas swoją ontologię, a teraz chcę przeczytać wszystkie obiekty i wyświetlić ich właściwości:

Mam następny kod:

// 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
}

która pokazuje tylko nazwy klas, ale nie ich właściwości. Czytałem dokumentację, ale nie znajduję niczego użytecznego.

Mam nadzieję, że ktoś może mi pomóc.

Z góry dziękuję.

Odpowiedzi:

0 dla odpowiedzi № 1

Nie jestem pewien, dlaczego chciałbyś wszystkie właściwości, ale możesz to zrobić łatwo. Przede wszystkim należy zaimportować Jena "OntProperty" import org.apache.jena.ontology.OntProperty;

Następnie możesz po prostu wewnątrz swojej pętli for: cls.listDeclaredProperties().toList()

Jeśli chcesz uzyskać dostęp do zawartości określonej właściwości, możesz zrobić to w ten sposób: Sprawdź swój .owl plik dla URI, który generalnie wygląda mniej więcej tak "http://example.com/ontology#"

Twój kod Java będzie wyglądał następująco: OntProperty nameOfProperty = model.getOntProperty("http://example.com/ontology#nameOfyourProperty");

Następnie wewnątrz pętli możesz zrobić na przykład coś takiego: cls.getProperty(nameOfProperty).getString()

A tak na marginesie, zanim przeczytasz swój plik, możesz umieścić go w instrukcji catch catch. Nadzieja, która pomogła.


0 dla odpowiedzi nr 2

Kod drukuje klasy, ponieważ listClasses() zwraca klasy ontologii. Do drukowania właściwości obiektu osób można użyć interfejsu API OWL