Генерация DL-выражений с использованием OWL API - PullRequest
0 голосов
/ 26 апреля 2019

Мне нужно сгенерировать DL-выражение из OWLObject в OWL API. Сейчас я использую DLSyntaxObjectRenderer как:

DLSyntaxObjectRenderer obj = new DLSyntaxObjectRenderer();

Проблема в том, что сгенерированные выражения DL содержат только метки ресурсов (например, Awning ⊔ Door ⊔ Gate ⊔ Shutter ⊔ Window). Хотя это синтаксически допустимые выражения DL, для реализации мне нужны IRI атомарных объектов, чтобы я мог загрузить выражение с помощью OWL API без необходимости загрузки всей онтологии.

Как мне этого добиться?

1 Ответ

0 голосов
/ 08 мая 2019

ShortFormProvider определяет отображение объектов. Он имеет несколько реализаций, таких как ManchesterOWLSyntaxPrefixNameShortFormProvider, QNameShortFormProvider, SimpleShortFormProvider. Например, следующий код использует DLSyntaxObjectRenderer и заставляет его отображать выражения DL с использованием IRI сущностей,

obj = new DLSyntaxObjectRenderer();
ShortFormProvider shortFormProvider = new ShortFormProvider() {
                @Override
                public String getShortForm(OWLEntity owlEntity) {
                    return owlEntity.getIRI().getIRIString();
                }
            };
obj.setShortFormProvider(shortFormProvider);

Чтобы отобразить выражение exp, просто используйте obj.render(exp)

...