3

我刚刚发现了精益图的定义,但我并不总是知道如何定义它,以及是否有人可以向我解释这些图是否精益。

G1 :
_:X foaf:knows ex:bob
_:X foaf:knows _:Y

我觉得这很瘦!

G2:    
_:X foaf:knows ex:bob
_:X foaf:knows _:X

G2不瘦!

G3
_:X foaf:knows ex:bob

我不知道XD

G4
_:X foaf:knows _:X

而且我不知道XD

提前致谢。

4

2 回答 2

4

https://www.w3.org/TR/rdf11-mt/#dfn-lean上的示例

例如,图表

例如:a ex:p _:x 。
_:y ex:p _:x 。

不是瘦,而是

例如:a ex:p _:x 。
_:x ex:p _:x 。

很瘦。地面图很精简。

在问题示例中,主题和对象被翻转,但 G1 和 G2 是“RDF 1.1 Semantics”示例。

G1 不瘦。

您可以删除“_:X foaf:knows _:Y”(或删除“_:y ex:p _:x”)——该三元组不添加任何新信息。我们从第一个三元组“_:X foaf:knows ex:bob”中知道“_:X 知道一些事情”,这就是第二个三元组所说的全部内容。

图 G3 和 G4 是精益图。

如果我们有 G5:_:X foaf:knows _:Y那么 G5 是精益但 G3 合并 G5 不是精益。

G2 是精益的,因为三重“_:X foaf:knows _:X”添加了一些信息,即存在一些了解自身的资源。第一个三元组没有这么说。

于 2020-02-06T10:19:00.380 回答
1

我将使用w3 规范中的定义和示例添加更多技术性答案 。

定义

名称是任何IRI 或文字。

RDF 图的(正确)图是图中三元组的(正确)子集。

假设 M 是从一组空白节点到一组文字、空白节点和 IRI 的函数映射。通过用 M(N) 替换 G 中的部分或全部空白节点 N 从图 G 获得的任何图都是 G 的一个实例

图的适当实例是其中空白节点已被名称替换的实例,或者图中的两个空白节点已映射到实例中的同一节点。

如果 RDF 图没有属于其自身的适当子图的实例,则它是精益图。

这是图表G1

ex:a ex:p _:x .
_:y ex:p _:x .

这里是G2

ex:a ex:p _:x .
_:x ex:p _:x .

主张1 G1精益

证明:

定义映射M

  • _:y -> ex:a

然后M(G1)是:

ex:a ex:p _:x .

根据 的定义,这是 的一个实例,显然是 的一个真子集,因此也是一个真子图。G1MG1

主张2:G2

证明:

我们必须证明,任何实例映射都会G2产生一个不是 的正确子图的图G2。让M任何这样的映射。M必须映射_:x到某物(除了)_:x。然后下面的三元组将在M(G2)

ex:a ex:p M(_:x)

这个三元组不在 中G2,因此这个实例不是 的正确子图G2。由于没有映射可以创建一个实例,G2该实例也是 的正确子图G2G2因此是精益的。

请注意,如果精益的定义是:

An RDF graph is lean if it has no **proper** instance which is a proper subgraph of itself.

M这将消除我对映射_:x到另一个任意空白节点意味着什么的任何疑问。这些定义使一切仍然可以正常工作,但是对我来说,更严格的精益定义似乎更好。

于 2020-12-16T10:11:22.820 回答