mirror of
https://github.com/Vonng/ddia.git
synced 2026-06-21 00:47:05 +08:00
调整脚注段落的位置
This commit is contained in:
parent
a422ae808c
commit
949b3c0fb4
1 changed files with 4 additions and 4 deletions
8
ch2.md
8
ch2.md
|
|
@ -744,14 +744,14 @@ _:namerica a :Location; :name "North America"; :type "continent".
|
|||
|
||||
如果你深入了解关于三元组存储的信息,可能会陷入关于**语义网**的讨论漩涡中。三元组存储模型其实是完全独立于语义网存在的,例如,Datomic【40】作为一种三元组存储数据库 [^vii],从未被用于语义网中。但是,由于在很多人眼中这两者紧密相连,我们应该简要地讨论一下。
|
||||
|
||||
[^vii]: 从技术上讲,Datomic 使用的是五元组而不是三元组,两个额外的字段是用于版本控制的元数据
|
||||
|
||||
从本质上讲,语义网是一个简单且合理的想法:网站已经将信息发布为文字和图片供人类阅读,为什么不将信息作为机器可读的数据也发布给计算机呢?(基于三元组模型的)**资源描述框架**(**RDF**)【41】,被用作不同网站以统一的格式发布数据的一种机制,允许来自不同网站的数据自动合并成 **一个数据网络** —— 成为一种互联网范围内的 “通用语义网数据库”。
|
||||
|
||||
不幸的是,语义网在二十一世纪初被过度炒作,但到目前为止没有任何迹象表明已在实践中应用,这使得许多人嗤之以鼻。它还饱受眼花缭乱的缩略词、过于复杂的标准提案和狂妄自大的困扰。
|
||||
|
||||
然而,如果从过去的失败中汲取教训,语义网项目还是拥有很多优秀的成果。即使你没有兴趣在语义网上发布 RDF 数据,三元组这种模型也是一种好的应用程序内部数据模型。
|
||||
|
||||
[^vii]: 严格来讲,Datomic 使用的是五元组而不是三元组,两个额外的字段是用于版本控制的元数据
|
||||
|
||||
#### RDF 数据模型
|
||||
|
||||
[例 2-7]() 中使用的 Turtle 语言是一种用于 RDF 数据的人类可读格式。有时候,RDF 也可以以 XML 格式编写,不过完成同样的事情会相对啰嗦,请参阅 [例 2-8]()。Turtle/N3 是更可取的,因为它更容易阅读,像 Apache Jena 【42】这样的工具可以根据需要在不同的 RDF 格式之间进行自动转换。
|
||||
|
|
@ -840,10 +840,10 @@ SPARQL 是一种很好的查询语言 —— 尽管它构想的语义网从未
|
|||
|
||||
实践中,Datalog 在有限的几个数据系统中使用:例如,它是 Datomic 【40】的查询语言,Cascalog 【47】是一种用于查询 Hadoop 大数据集的 Datalog 实现 [^viii]。
|
||||
|
||||
[^viii]: Datomic 和 Cascalog 使用 Datalog 的 Clojure S 表达式语法。在下面的例子中使用了一个更容易阅读的 Prolog 语法,但两者没有任何功能差异。
|
||||
|
||||
Datalog 的数据模型类似于三元组模式,但进行了一点泛化。把三元组写成 **谓语**(**主语,宾语**),而不是写三元语(**主语,谓语,宾语**)。[例 2-10]() 显示了如何用 Datalog 写入我们的例子中的数据。
|
||||
|
||||
[^viii]: Datomic 和 Cascalog 使用 Datalog 的 Clojure S 表达式语法。在下面的例子中使用了一个更容易阅读的 Prolog 语法,但两者没有任何功能差异。
|
||||
|
||||
**例 2-10 用 Datalog 来表示图 2-5 中的数据子集**
|
||||
|
||||
```prolog
|
||||
|
|
|
|||
Loading…
Reference in a new issue