在SPARQL中的构造函数中使用COUNT

在SPARQL中的构造函数中使用COUNT,sparql,rdf,owl,triplestore,topbraid-composer,Sparql,Rdf,Owl,Triplestore,Topbraid Composer,我正在尝试编写一个旋转规则,该规则将计算传入引用的数量,并将该数量设置为属性值。例如,计算特定机器上发生的问题数量。因此,我需要计算类型为rdfs:occurrendon(域:问题,范围:机器)的传入引用的数量 提前谢谢你 仅允许,即您必须在WHERE子句中使用子SELECT查询: CONSTRUCT { ?machine rdfs:numberOfIssues ?n . } WHERE { { SELECT ?machine (COUNT(?r) AS ?n)

我正在尝试编写一个旋转规则,该规则将计算传入引用的数量,并将该数量设置为属性值。例如,计算特定机器上发生的问题数量。因此,我需要计算类型为
rdfs:occurrendon
(域:问题,范围:机器)的传入引用的数量

提前谢谢你

仅允许,即您必须在
WHERE
子句中使用子
SELECT
查询:

CONSTRUCT 
  { 
    ?machine rdfs:numberOfIssues ?n .
  }
WHERE
  { { SELECT  ?machine (COUNT(?r) AS ?n)
      WHERE
        { ?machine  a  owl:Machine .
          ?issue    a  owl:Issue ;
                    ?r        ?machine
        }
      GROUP BY ?machine
    }
  } 
注意,对于您的域本体,您应该永远不要使用用户内置的名称空间/前缀(例如
owl:
rdfs:
rdf:
xsd:
,等等)

仅允许,即您必须在
WHERE
子句中使用子
SELECT
查询:

CONSTRUCT 
  { 
    ?machine rdfs:numberOfIssues ?n .
  }
WHERE
  { { SELECT  ?machine (COUNT(?r) AS ?n)
      WHERE
        { ?machine  a  owl:Machine .
          ?issue    a  owl:Issue ;
                    ?r        ?machine
        }
      GROUP BY ?machine
    }
  } 

注意,对于您的域本体,您应该永远不要使用用户内置的名称空间/前缀(例如
owl:
rdfs:
rdf:
xsd:
,等等)

我不明白你为什么在你自己的实体中使用rdfs和owl前缀。事实上,我不明白,我认为这会更容易阅读。我建议将你示例中的
rdfs:
owl:
前缀改为
ex:
,我不明白你为什么在你自己的实体中使用rdfs和owl前缀。事实上,我不明白,我建议将示例中的
rdfs:
owl:
前缀更改为
ex:
谢谢您的帮助和建议!谢谢你的帮助和建议!