سؤال
يجب الاستعلام التالي:
SELECT ?tag WHERE {
?r ns9:taggedWithTag ?tagresource.
?tagresource ns9:name ?tag
}
LIMIT 5000
والنتائج هي:
abc
abc
abc
abc
abc
abc
abc
abd
ads
anb
أريد الحصول على بعض الاشياء مثل:
tag | count
-----------------
abc 7
abd 1
ads 1
anb 1
لقد حاولت ذلك مع count(*)
و count(?tag)
, ولكن مما كنت تحصل على رسالة الخطأ "Variable or "*" expected."
يمكن أن تقولوا لي كيف ؟
المحلول
إذا كنت تستخدم جافا و جينا أساسا ، يمكنك استخدام أساسا هو امتداد ل المجاميع.الاستعلام الخاص بك سوف ننظر بشيء من مثل:
SELECT ?tag (count(distinct ?tag) as ?count)
WHERE {
?r ns9:taggedWithTag ?tagresource.
?tagresource ns9:name ?tag
}
LIMIT 5000
على الأصلي وسباركل مواصفات من عام 2008 لم تدرج الركام ، ولكن النسخة الحالية ، 1.1 ، من عام 2013 لا.
نصائح أخرى
وعلى سبيل المثال، هذا واحد يمكن تلخيص هذا؟ قيمة لكل؟ الفئة،
SELECT ?category (SUM(?value) as ?valueSum)
WHERE
{
?s ?category ?value .
}
GROUP BY ?category
وهذا واحد يمكن الاعتماد على عدد من الاستخدامات لالمسند؟ ص،
SELECT ?p (COUNT(?p) as ?pCount)
WHERE
{
?s ?p ?o .
}
GROUP BY ?p
وهي من وحي هذه الأمثلة من المواد من بوب دوشارم (2011)، "التعلم SPARQL". أورايلي وسائل الإعلام، سيباستوبول، CA، الولايات المتحدة الأمريكية؛ يمكنك الاطلاع على http://www.learningsparql.com/