我有一个业务活动层次结构,我想根据特定活动过滤公司,所以我的意思是捕获在特定活动中工作的所有公司或其任何后代。
活动通过 my:hasActivity 谓词分配,层次结构用 my:isPartOf 谓词表示(即传递性)
因此,为了过滤结果集,我在查询中添加了这个模式:
?company my:asActivity/my:isPartOf* @base
我希望它相当于一个归纳模式,如:
{ ?company my:hasActivity @base }
UNION { ?company my:hasActivity ?s1 . ?s1 my:isPartOf @base }
...
UNION { ?company my:hasActivity ?s_n . ?s_n my:isPartOf ?s_(n-1) . [...] . ?s1 my:isPartOf @base }
但我得到的结果与此不一致。
我的假设是错误的还是 DotNetRdf 中的这个 propertyPath 模式有问题?
事实上,sparql 引擎似乎失去了 my:hasActivity 三元组对象和 my:isPartOf 主题之间的约束......
预先感谢您的建议,马克斯。