如何知道 RDF 图是否精益?

How to know if an RDF graph is lean?

我刚刚发现了 lean graph 的定义,我并不总是知道如何定义它,如果有人可以向我解释一下这个图是否精简。

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

I think this is lean !

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

G2 isn't lean !

G3
_:X foaf:knows ex:bob

I don't know XD

G4
_:X foaf:knows _:X

And I don't know XD

提前致谢。

https://www.w3.org/TR/rdf11-mt/#dfn-lean

中的示例

For example, the graph

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

is not lean, but

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

is lean. Ground graphs are lean.

在问题示例中主语和宾语被翻转,否则 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 merge G5 不是精益的。

G2 是精简的,因为三元组“_:X foaf:knows _:X”添加了一些信息,即有一些资源知道自己。第一个三元组没有这么说。

我将使用来自 w3 spec.

定义

A name is any IRI or literal.

A (proper) subgraph of an RDF graph is a (proper) subset of the triples in the graph.

Suppose that M is a functional mapping from a set of blank nodes to some set of literals, blank nodes and IRIs. Any graph obtained from a graph G by replacing some or all of the blank nodes N in G by M(N) is an instance of G.

A proper instance of a graph is an instance in which a blank node has been replaced by a name, or two blank nodes in the graph have been mapped into the same node in the instance.

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

这是图表 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 .

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

声明 2:G2 不瘦

证明:

我们必须证明 G2 的任何实例映射都会产生一个不是 G2 的真子图。让 M 成为任何这样的映射。 M 必须将 _:x 映射到 东西(_:x 除外)。然后下面的三元组将在 M(G2):

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

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

Remark 如果 lean 的定义是:

似乎会更清晰
An RDF graph is lean if it has no **proper** instance which is a proper subgraph of itself.

这将消除我对 M_:x 映射到另一个任意空白节点时的含义的任何疑问。这些定义使一切仍然正常,但 lean 的更强定义对我来说似乎更好。