Настройка OWL Reasoner в Йене

Я пытаюсь определить (в черепахе) симметричный транзитивный предикат в черепахе и сделать из него выводы.

Вот как я определил свой предикат:

:similar a owl:SymmetricProperty; a owl:TransitiveProperty .

Как я его использую (тот же файл черепахи):

:a :similar :b .
:b :similar :c .

Затем я выдаю искровой запрос «выберите?x, где?x:similar:c», надеясь получить a и b.

Я попытался настроить модель следующим образом:

OntModel ont = ModelFactory.createOntologyModel( OntModelSpec.OWL_MEM );      
ont.read("file:./myontology.turtle",null,"TURTLE"); 
InfModel model = ModelFactory.createInfModel(ReasonerRegistry.getOWLReasoner(), ont);

а затем с помощью InfModel в моем QueryExecutionFactory.create. Не работает.

Я также пробовал только это:

OntModel model = ModelFactory.createOntologyModel( OntModelSpec.OWL_DL_MEM_RULE_INF );
model.read("file:./myontology.turtle",null,"TURTLE");

Тоже не повезло. Как правильно? Что мне не хватает?

Заранее спасибо.


person user14750    schedule 01.09.2012    source источник


Ответы (1)


Нашел ответ. Следующее работает отлично:

OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM_MICRO_RULE_INF);
model.read("file:./myontology.turtle",null,"TURTLE");

У меня были некоторые проблемы с префиксами. Кроме того, я объявлял :similar как класс и предполагал, что подклассы будут наследовать owl:SymmetricProperty и owl:TransitiveProperty. Кажется, так не работает

person user14750    schedule 04.09.2012