Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
ddia
提交
1cd8a188
D
ddia
项目概览
OpenDocCN
/
ddia
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
ddia
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
1cd8a188
编写于
11月 26, 2019
作者:
F
Feng Ruohang
提交者:
GitHub
11月 26, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #54 from Panmax/master
Update ch2.md
上级
5591283f
4d18bcc3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
2 deletion
+2
-2
ch2.md
ch2.md
+2
-2
未找到文件。
ch2.md
浏览文件 @
1cd8a188
...
...
@@ -843,7 +843,7 @@ SPARQL是一种很好的查询语言——哪怕语义网从未实现,它仍
[^viii]: Datomic和Cascalog使用Datalog的Clojure S表达式语法。在下面的例子中使用了一个更容易阅读的Prolog语法,但两者没有任何功能差异。
Datalog的数据模型类似于三元组模式,但进行了一点泛化。把三元组写成**谓语**(**主语,宾语**),而不是写三元语(**主语,
宾
语,宾语**)。[例2-10]()显示了如何用Datalog写入我们的例子中的数据。
Datalog的数据模型类似于三元组模式,但进行了一点泛化。把三元组写成**谓语**(**主语,宾语**),而不是写三元语(**主语,
谓
语,宾语**)。[例2-10]()显示了如何用Datalog写入我们的例子中的数据。
**例2-10 用Datalog来表示图2-5中的数据子集**
...
...
@@ -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')
`。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录