Я пытаюсь определить (в черепахе) симметричный транзитивный предикат в черепахе и сделать из него выводы.
Вот как я определил свой предикат:
: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");
Тоже не повезло. Как правильно? Что мне не хватает?
Заранее спасибо.