rdf - SPARQL 的基数限制

标签 rdf sparql restrictions rdfs cardinality

我的问题是关于 RDF 三元组的 SPARQL 查询语言,假设我们有一个用 RDF/XML 格式编写的家族本体。

现在,我想使用 SPARQL 查询所有 parent ,例如至少有两个 child (hasChild 关系上的基数)。

我的问题是,是否可以用 SPARQL 语言编写此查询,但我知道可以用 DL 查询语言(描述逻辑)编写此查询

以更一般的形式,是否可以在 SPARQL 语言中应用一些基数限制?

最佳答案

Now, I want to query all parents, for example, with at least two children (cardinality on hasChild relation) with SPARQL.

你只需在每一行中选择一个父子,然后按父组分组,然后只取那些至少有两个子值的:

select ?parent where {
  ?parent :hasChild ?child
}
group by ?parent
having (count(distinct ?child) >= 2)

不过要小心;在 OWL 中,您可以拥有一个至少有两个 child 的个体,但此查询不会返回。例如,如果你有

TwoChildParent subClassof (hasChild min 2)
Joe a TwoChildParent

但是没有

Joe hasChild ?x

triples,此查询不会返回 Joe,即使 Joe 至少有两个 child 。

关于rdf - SPARQL 的基数限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28240395/

相关文章:

java - Hibernate Criteria Restrictions.eq 不区分大小写

facebook-apps - 应用程序的使用受到限制

sparql - 门生看到了关系,而大师却没有

sparql - 维基数据中重新定义的 RDF 属性

sparql - 查找 SPARQL 查询中应用的直接属性

hibernate - Hibernate 函数 Restrictions.allEq(Map<String, Object>) 如何处理空值?

node.js - 将 RDF/XML 文件转换或转换为 JSON-LD 格式

database - (SWI) Prolog 作为 NoSQL 平台怎么样?

sparql - 在参与者的维基数据查询中应用 group_concat

eclipse - 如何计算Sparql查询中的行数