我将使用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
:
然后M(G1)
是:
ex:a ex:p _:x .
根据 的定义,这是 的一个实例,显然是 的一个真子集,因此也是一个真子图。G1
M
G1
主张2:G2
不瘦
证明:
我们必须证明,任何实例映射都会G2
产生一个不是 的正确子图的图G2
。让M
任何这样的映射。M
必须映射_:x
到某物(除了)_:x
。然后下面的三元组将在M(G2)
:
ex:a ex:p M(_:x)
这个三元组不在 中G2
,因此这个实例不是 的正确子图G2
。由于没有映射可以创建一个实例,G2
该实例也是 的正确子图G2
,G2
因此是精益的。
请注意,如果精益的定义是:
An RDF graph is lean if it has no **proper** instance which is a proper subgraph of itself.
M
这将消除我对映射_:x
到另一个任意空白节点意味着什么的任何疑问。这些定义使一切仍然可以正常工作,但是对我来说,更严格的精益定义似乎更好。