Я читал документацию Jena, чтобы попытаться создать простой подход к обратной цепочке. У меня есть простое правило обратной привязки, которое я применяю к небольшой онтологии. мне было интересно, если есть в любом случае, чтобы сделать обратный вывод на каждый запрос основе, так что не все entailments вычисляются, когда я получу свой InfModel с:Обратная связь Jena reasoner
Modelfactory.createInfModel(reasoner,model)
, а только тогда, когда они просят. Так, ниже правила:
[rule2: (?x rdfs:type ?z)<-(?x ?rdf:type ?y),(?y rdfs:subClassOf ?z)]
мог зарегистрировать запрос с просьбой найти все виды определенного класса, который будет затем огнь вышеуказанного правила?
Вы прогресс в этом? –
Извините за поздний ответ. Да, я был доволен ответом, который у меня был, но, думаю, мой вопрос был немного не по себе. Я знал, что Йена позволила вам снова использовать аргументаторов в полном обратном направлении, просто не очень очевидно, что это происходит, когда вы выписываете модель вывода, она возвращает грубый + график вычетов. Для меня это выглядело так, как будто он делал некоторые рассуждения о цепочке цепочек, но если вы назовете .size() на графике вывода, вы увидите, что его размер коррелирует с необработанным графиком. Таким образом, до команды write фактически не было сделано никаких рассуждений, что должно означать количество записей в виде запроса. – Colin
Запись, по существу, должна запрашивать все троек, которые, как и просят модель, отображать утверждения, сопоставляющие '(null, null, null)', поэтому дело не только в том, что запись учитывается как запрос, но и что запись должна запускать запрос в порядке чтобы получить тройки, которые нужно написать. Документы на Model.size() говорят, что «для виртуализованной модели, например, созданной механизмом вывода, она вернет оценочную нижнюю границу для числа операторов в модели, но это возможно для последующих listStatements на такой модели чтобы узнать больше заявлений, чем указано в виде размера(), - это поведение, которое вы видели. –