Нахождение класса OWL в Java
Я начинаю изучать OWL в Java, я прочитал некоторые статьи, включая OWL API, Apache Jena и Protege. Я хочу получить класс в сове, но в OWL API он возвращает введенный IRI.
Вот процесс: давайте предположим, что я ищу слово "красота", которое является отдельным от "Инспектора", а "Инспектор" является подклассом "Хранителя". В настоящее время в моей программе выводится IRI самой красоты. Я хотел получить инспектора IRI и Guardian IRI.
Любая помощь / руководство будет оценено, спасибо:)
1 ответ
Если у вас есть OWLIndividual, то вы сможете вызвать getTypes, чтобы получить набор типов, одним из которых будет класс, который вы описываете. (Обратите внимание, что метод toString по умолчанию для некоторых классов API OWL может показывать IRI объекта, поэтому простая печать отдельного лица или класса может выглядеть так же, как и печать его IRI в виде строки.) GetTypes возвращает набор OWLClassExpressions и один раз у вас есть один из них, вы можете использовать asOWLClass, чтобы получить соответствующий класс, а затем использовать getSuperClasses, чтобы пройти вверх по иерархии классов. Обратите внимание, что, как указал Игнацио в комментариях, вы должны вызывать asOWLClass, только если выражение класса не является анонимным. Чтобы получить список суперклассов, который гарантированно будет полным, вам также понадобится использовать завершающий модуль относительно OWL, а встроенный в OWL API модуль не является таковым.