Dado este modelo muy simple:Cómo hacer un recuento en SPARQL
@prefix : <http://example.org/tags#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:tag rdf:type rdf:Property .
:item1
rdf:type owl:Thing ;
:tag "a"^^xsd:string .
:item2
rdf:type owl:Thing ;
:tag "a"^^xsd:string , "b"^^xsd:string .
:item3
rdf:type owl:Thing ;
:tag "a"^^xsd:string , "b"^^xsd:string , "c"^^xsd:string .
Estoy tratando de obtener una lista de los artículos y el recuento de etiquetas que cada uno tiene:
item tagCount
===== ========
item1 1
item2 2
item3 3
Aquí es mi consulta:
SELECT ?item (count(?tag) as ?tagcount)
WHERE {
?item :tag ?tag
}
Sin embargo, se vuelve:
item tagCount
===== ========
6
Por lo que he leído, esto debería funcionar. Estoy usando Jena 2.6.4
'COUNT' no es una parte de la especificación SPARQL 1.0, se añadió en 1,1. Algunas implementaciones lo admiten a pesar de eso. Solo digo. –
¡Voto ascendente para la pregunta claramente expresada y el formato apropiado! – cygri