Как рассуждать или делать выводы в Neo4j?
Я создал семантический график в Neo4j. Есть ли возможность использовать OWL-рассуждение в Neo4j? Или любой двигатель вывода?
Хотя здесь уже упоминалось, я не могу найти никакого решения или API для этого.
Благодарен за любой совет!
2 ответа
Может быть, вы хотите увидеть это: нажмите здесь
Я процитировал это по этой ссылке:
Ваша основная задача, если вы хотите использовать рассуждения над базой данных neo4j, - выкачивать данные из neo4j и форматировать их как набор троек RDF. Затем вы можете поместить эти тройки RDF в модель Jena. Если у вас есть эта модель jena в памяти, вы можете использовать существующие API-интерфейсы jena для использования аргументов с этой моделью
Если вы ищете практический вывод по данным графа, вам следует взглянуть на Grakn, он имеет встроенный механизм рассуждений. Вы можете определить свою логику рассуждений, используя
rules
в Graql.
PS Я работаю на Grakn;)
Мои исследования в этой области продолжаются, пожалуйста, смотрите здесь, чтобы увидеть последний проект статьи, есть специальный раздел Вывод на графике.
Я смотрю на neo4j -> Prolog -> neo4j
подход: (a)-[b]->(c)
график может быть выражен как b(a,c)
предикат, поэтому экспортируйте ваш.db в.pl и запросите, например, в SWI Prolog. Но самое сложное: как сделать некоторые (прямые) рассуждения для обратного импорта в neo4j.
Я подумываю о применении YieldProlog с прямым обходом через neo4j db с использованием BOLT пролопротеза. Я планирую добавить специальные моды для метода Yield для специальной обработки меток и атрибутов элементов графа, так что мои базы знаний, которые будут описаны, - это базы данных neo4j.