создание модели с использованием JENA - PullRequest
0 голосов
/ 18 февраля 2020

Я новичок в веб-поле semanti c и пытаюсь создать модель java с использованием JENA для извлечения классов, подкласса и / или комментариев из файла OWL.

любая помощь / руководство о том, как сделать такую ​​вещь будет принята.

Спасибо

1 Ответ

0 голосов
/ 13 марта 2020

Вы можете сделать это с помощью Jena Ontology API . Этот API позволяет создавать модель онтологии из файла owl, а затем предоставляет вам доступ ко всей информации, хранящейся в онтологии как Java Classes. Вот краткое введение в онтологию Йены . Это введение содержит полезную информацию о начале работы с онтологией Jena.

Код обычно выглядит следующим образом:

String owlFile = "path_to_owl_file"; // the file can be on RDF or TTL format

/* We create the OntModel and specify what kind of reasoner we want to use
Depending on the reasoner you can acces different kind of information, so please read the introduction. */
OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM);

/* Now we read the ontology file
The second parameter is the ontology base uri.
The third parameter can be TTL or N3 it represents the file format*/
model.read(owlFile, null, "RDF/XML"); 

/* Then you can acces the information using the OntModel methods
Let's access the ontology properties */
System.out.println("Listing the properties");
model.listOntProperties().forEachRemaining(System.out::println);
// let's access the classes local names and their subclasses
try {
            base.listClasses().toSet().forEach(c -> {
                System.out.println(c.getLocalName());
                System.out.println("Listing subclasses of " + c.getLocalName());
                c.listSubClasses().forEachRemaining(System.out::println);
            });
        } catch (Exception e) {
            e.printStackTrace();
   }
// Note that depending on the classes types, accessing some information might throw an exception.

Здесь приведен API-интерфейс Jena Ontology JavaDo c .

Надеюсь, это было полезно!

...