fro*_*tto 1 rdf rdfs cardinality sparql restrictions
我的问题是关于RDF三元组的SPARQL查询语言,假设我们有一个用RDF/XML格式编写的族本体.
现在,我想查询所有父项,例如,至少有两个孩子(hasChild关系基数)与SPARQL.
我的问题是,是否可以用SPARQL语言编写此查询,但我知道可以用DL查询语言编写此查询(描述逻辑)
在更一般的形式中,是否可以在SPARQL语言中应用一些基数限制?
现在,我想查询所有父项,例如,使用SPARQL至少有两个子项(hasChild关系的基数).
您只需在每行中选择父项和子项,然后按父项分组,然后仅获取至少具有两个值的项:
select ?parent where {
?parent :hasChild ?child
}
group by ?parent
having (count(distinct ?child) >= 2)
Run Code Online (Sandbox Code Playgroud)
要小心; 在OWL中,您可以拥有一个必须至少有两个孩子的人,但此查询不会返回.例如,如果你有
TwoChildParent subClassof (hasChild min 2)
Joe a TwoParentChild
Run Code Online (Sandbox Code Playgroud)
但没有
Joe hasChild ?x
Run Code Online (Sandbox Code Playgroud)
三倍,即使Joe至少有两个孩子,这个查询也不会返回Joe.