From 4d18bcc38cfad5f72a557885b59f7282a1d1108f Mon Sep 17 00:00:00 2001 From: Panmax <967168@qq.com> Date: Wed, 20 Nov 2019 16:46:55 +0800 Subject: [PATCH] Update ch2.md --- ch2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch2.md b/ch2.md index 5b9fcf1..100c032 100644 --- a/ch2.md +++ b/ch2.md @@ -883,7 +883,7 @@ migrated(Name, BornIn, LivingIn) :- name(Person, Name), /* Rule 3 */ ``` -Cypher和SPARQL使用SELECT立即跳转,但是Datalog一次只进行一小步。我们定义**规则**,以将新谓语告诉数据库:在这里,我们定义了两个新的谓语,`_recursive`和`migrated`。这些谓语不是存储在数据库中的三元组中,而是它们是从数据或其他规则派生而来的。规则可以引用其他规则,就像函数可以调用其他函数或者递归地调用自己一样。像这样,复杂的查询可以一次构建其中的一小块。 +Cypher和SPARQL使用SELECT立即跳转,但是Datalog一次只进行一小步。我们定义**规则**,以将新谓语告诉数据库:在这里,我们定义了两个新的谓语,`within_recursive`和`migrated`。这些谓语不是存储在数据库中的三元组中,而是它们是从数据或其他规则派生而来的。规则可以引用其他规则,就像函数可以调用其他函数或者递归地调用自己一样。像这样,复杂的查询可以一次构建其中的一小块。 在规则中,以大写字母开头的单词是变量,谓语则用Cypher和SPARQL的方式一样来匹配。例如,`name(Location, Name)`通过变量绑定`Location = namerica`和`Name ='North America'`可以匹配三元组`name(namerica, 'North America')`。