如何通过用值实例化存在于三元组中的变量来更新RDF图?

问题描述 投票:0回答:0

我有一个如下所示的知识库:

我有以下规则:

s rdf.type X, X rdfs.subClassOf Y -> s rdf.type Y

其中 Y 型三元组是结果,X 型三元组,X subClassOf Y 是前提。

我的目标:

我有 E 型结果。我必须将结果与上面给出的规则进行模式匹配,并找到前因。在此示例中,如果我模式匹配结果 a 类型 E),则前提应如下所示: 类型 ?X, ?X subClassOf E.

在这种情况下,我尝试制作一个如下所示的前因图:

然后我检查是否可以将前因与 KB 的任何元素进行模式匹配(通过迭代地遍历前因)。在此示例中,可以对第一个三元组 ex.a rdf.type ?X 进行模式匹配,因为类型 ?X 与 KB a 类型 C 的元素进行模式匹配。因此,?X = C。然后我实例化所有?X 对于前因 C 中的所有三元组,其中三元组应以这种方式更新:类型 C,C subClassOf E。因此,我更新后的前因图应如下所示:

到目前为止我的代码:

我通过以下方式实现了 python 代码来创建先行图:

我的问题:

如何按照上面显示的方式更新我的前因图?

python rdf rdfs rdflib turtle-rdf
© www.soinside.com 2019 - 2024. All rights reserved.