带AVG子句的Sparql查询

带AVG子句的Sparql查询,sparql,rdf,ontology,Sparql,Rdf,Ontology,我需要对唱片行业中的一个小型本体编写一个sparql 1.1查询。请求是查找连接到每个专辑的艺术家的平均值。下面,本体以N-triple格式编写: PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX ex: <http://esempio.org/#> PREFIX : <

我需要对唱片行业中的一个小型本体编写一个sparql 1.1查询。请求是查找连接到每个专辑的艺术家的平均值。下面,本体以N-triple格式编写:

PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX ex: <http://esempio.org/#>
PREFIX : <http://prova.org/#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
:artist1 rdf:type :Artist .
:artist2 rdf:type :Artist .
:artist3 rdf:type :Artist .
:artist4 rdf:type :Artist .
:artist5 rdf:type :Artist .
:album1 rdf:type :Album .
:album2 rdf:type :Album .
:album1 :include :artist1 .
:album1 :include :artist2 .
:album1 :include :artist3 .
:album2 :include :artist1 .
:album2 :include :artist2 .
:album2 :include :artist3 .
:album2 :include :artist4 .
:album2 :include :artist5 .

…有人知道如何修复(或重写…)它吗?

什么叫“它似乎不正确”?你有错误吗?如果是,错误是什么?您可以将问题添加到澄清中。如果此处发布的SPARQL查询与执行的查询相同,那就太酷了。。。因为这显然是非法语法,所以也不能在投影变量之间使用逗号。同样在这里显示的数据中,它被称为
:Artist
,在查询
:Artista
中,对于试图运行查询的人,请使用这个:
前缀rdf:prefix:Select(AVG(?NumeroA)as?media)其中{Select?album(count(*)as?NumeroA)其中{album rdf:type:album;:include?Artista。?Artista rdf:type:Artist.}group by?album}
-顺便说一句,它使用Apache Jena返回
4.0
,这使得album1分别拥有3名和
:album2
5名艺术家是的,我知道这个错误。我必须写:?相册rdf:type:album;:包括?艺人。我的问题是:我的查询语法是否正确?我想要所有专辑的平均值。我期望数字4作为结果我发布的查询返回
4.0
-我不明白你现在还问了什么
Select AVG(?NumeroA) as ?media
WHERE {
Select ?album , count(*) as ?NumeroA
Where {
?album rdf:type :Album,
  :include ?artista.
?artista rdf:type :Artista.
}
group by ?album
}