jena在2个数据集上进行推理,并由此添加新实体

jena在2个数据集上进行推理,并由此添加新实体,jena,rule,reasoning,Jena,Rule,Reasoning,我在jena查询解决方案中有一个结果绑定(比如说sol1:user=u1,location=loc1,LocationType=type1),我想使用数据集使用一组jena规则扩展我的结果绑定。事实上,有sol1和 loc1位置:ispartof loc2 loc2 rdf:类型loc2Type 在我的数据集中,我想将此新解决方案添加到我的结果集中: sol2:user1=u1,location=loc2,locationType=loc2Type 为此,我需要将我的解决方案集添加到我的数据

我在jena查询解决方案中有一个结果绑定(比如说
sol1:user=u1,location=loc1,LocationType=type1
),我想使用数据集使用一组jena规则扩展我的结果绑定。事实上,有sol1和

loc1位置:ispartof loc2
loc2 rdf:类型loc2Type
在我的数据集中,我想将此新解决方案添加到我的结果集中:

sol2:user1=u1,location=loc2,locationType=loc2Type

为此,我需要将我的解决方案集添加到我的数据集中,编写如下规则

@前缀pre:。
[规则1:(?sol-pre:用户?a)(?sol-pre:位置?b)(?sol-pre:lcationType?c)(?b-位置:ispartof?d)(?d-rdf:类型)->(sol2-pre:用户?a)(sol2-pre:位置?d)(sol2-pre:位置类型)]
根据上述规则进行推理。然后,为了从数据集中提取所有解决方案,我需要使用

@前缀pre:。
选择*WHERE{sol-pre:user?a.?sol-pre:location?b.?sol-pre:lcationType?c.}

现在我的问题是

1) 有没有办法通过在2个数据集上编写resoning规则来防止将我的解决方案添加到我的大数据集

2) 如何在规则结果中单独命名每个新解决方案


谢谢。

你问什么还不完全清楚。数据集是SPARQL查询的图形集合(三元组的集合)。查询解决方案是一组变量绑定。它们不包含相同类型的内容,因此不能将一个添加到另一个。您的SPARQL查询的格式不好,因此不完全清楚它的含义。你能澄清一下你已经拥有了什么,以及你想做什么吗?嗨,Joshua,实际上我将每个querysolution转换为一组三元组,方法是命名该解决方案并将其用作三元组的主题
sol1 user u1
sol1 location loc1
sol1 locationtype type1
然后我将它们添加到我的大数据集中,并编写一条规则对它们进行推理。