Ich habe die nachstehende SPARQL-Abfrage und möchte die Summe von? MyInt für alle eindeutigen? Z-Werte erhalten. Ist es möglich, eine solche Abfrage in SPARQL 1.1 auszudrücken?Kombinieren beliebige Eigenschaftspfad, distinct, und zählen
SELECT ?z SUM(xsd:int(?myInt))
where{
?x property1+ ?y
?x property2 ?k
?k property3 ?z
?x property4 ?myInt
} group by distinct(?z)
ich dies in Jena ARQ laufen und erhalten den folgenden Fehler:
Exception in thread "main" com.hp.hpl.jena.query.QueryParseException: Encountered " "sum" "SUM "" at line 1, column 11.
Auch hier ist ein Beispiel Daten:
<http://a.com/6> <http://aq.com/p> <http://e.com/c5>.
<http://a.com/6> <http://aq.com/q> <http://a.com/5>.
<http://e.com/c5> <http://aq.com/a> <http://eoq.com/u1>.
<http://a.com/6> <http://aq.com/num> "10"^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://a.com/5> <http://aq.com/p> <http://e.com/c4>.
<http://a.com/5> <http://aq.com/q> <http://a.com/4>.
<http://e.com/c4> <http://aq.com/a> <http://eoq.com/u1>.
<http://a.com/5> <http://aq.com/num> "10"^^<http://www.w3.org/2001/XMLSchema#integer>.
'GROUP BY DISTINCT (? Z)' macht keinen Sinn. Sie müssen die Variablen angeben, auf denen das Ergebnis gruppiert wird. – AKSW
Und die Klasse "SUM" so umbrechen müssen, dass ein Variablenname bekannt ist, z. '(SUM (...) AS? Summe)'. Übrigens wäre es beim nächsten Mal gut, eine SPARQL-Abfrage mit korrekter Syntax (unter anderem fehlende Präfixe und Punkte) zu haben, so dass Leute sie testen können, z. hier: http://sparql.org/query-validator.html – AKSW
Und was ist die Idee des ersten Dreifachmusters? Ich meine, '' y' 'wird nirgends verwendet, also wäre es ausreichend '' x property1? Y' zu verwenden. – AKSW