Какой тип рассуждений поддерживает Гракн? - PullRequest
1 голос
/ 29 апреля 2020

Я посетил вебинар и узнал, что Гракн поддерживает рассуждения посредством основанных на правилах и основанных на типах рассуждений:

person sub entity; 
man sub person; 

when {
  $r1 (located: $x, locating: $y) isa locates;  
  $r2 (located: $y, locating: $z) isa locates;  
},
then {
  (located: $x, locating: $z) isa locates;
};

Чем обратное рассуждение отличается от прямого объединения в этом контексте?

1 Ответ

1 голос
/ 30 апреля 2020

Легче всего увидеть разницу от тех вопросов, которые вы можете задать для прямой и обратной цепочки.

Grakn, обратная цепочка

В Grakn, учитывая это правило, если вы запрашиваете:

(1)

match (located: $x, locating: $z) isa locates; get;

Тогда Гракн увидит из вашего запроса, что есть правило, которое можно использовать для вывода такого рода фактов. Затем он работает в обратном направлении, чтобы увидеть, есть ли какие-либо результаты для when правила. Несколько упрощая, он делает запрос в соответствии с when:

(2)

match 
$r1 (located: $x, locating: $y) isa locates;  
$r2 (located: $y, locating: $z) isa locates;
get;

, если есть результаты, то then выводится Grakn, и вы получаете ответьте на свой исходный запрос (1).

Обратная цепочка отвечает на вопрос: «Это правда?» Использование логического вывода для определения этого.

Прямая цепочка

Прямая цепочка отвечает на другой вопрос. Он говорит: «У меня есть эти факты, что из них можно извлечь из них?». Вы также можете использовать это для ответа на вопрос обратной цепочки, однако он будет гораздо менее эффективным, так как прямая цепочка выведет ненужные факты.

Хорошая сводка из Прямая цепочка Википедии статья:

Поскольку данные определяют, какие правила выбираются и используются, этот метод называется управляемым данными, в отличие от целенаправленного обратного вывода из цепочки.

...