Я работаю со стеклом OWL API 3/Pellet/SPARQL-DL и хочу прочитать утвержденные аксиомы TBox определенного класса из онтологии.Получить Аксиомы TBox с API OWL
Я могу легко получить доступ к аксиомам с помощью OWL API. Однако OWLClassAxiom просто предоставляет функцию доступа к сигнатуре без соединений. То есть Я хочу знать, к какому классу назначен ObjectProperty. Все, что я могу получить, это набор всех элементов в сигнатуре без их соединения.
Похоже, что OWL API не поддерживает работу с заданными аксиомами на уровне классов (чтение, а не добавление). Или я что-то упускаю? Любые другие идеи, как это достичь? (С любыми инструментами.)
Бетон Пример: Пицца hasBase немного PizzaTopping. Я хочу получить значение «PizzaTopping», указав Pizza и hasBase.
Правильно, единственное, что вы можете сделать легко, это получить все интересующие вас аксиомы в свойствах в сигнатуре, но в зависимости от типа аксиомы это может быть не то, что вы хотите. «OWLAxiomVisitor» может быть способом ... – AKSW
Спасибо, что указал на недостатки в моей логике, отличный ответ. Я заработал. Однако мне все еще не нравится доступ к аксиомам. Все, что есть, есть «getXInSignature», который просто возвращает набор. Это бесполезно, если у вас есть композиция (например, пересечение двух некоторых значений) - мне нужно вручную пройти через субаксиомы. Возможно, мой вариант использования очень специфичен, или я все еще не получил его полностью. Но так или иначе, это работает сейчас[email protected] можно ли использовать посетителя только для аксиом определенного класса или пройти через всю онтологию? – nick
@nick Есть 'getProperty()' в объекте OWL Некоторые значения из Axiom. Вам не нужно использовать методы getXInSignature. Тем не менее, предложение AKSW изучить посетителей аксиомы, вероятно, поможет многим. –