SPARQLAggregate["var"agg]
連想のリストに適用されると,値が agg を集約したものである変数 "var"を含む解を返すクエリ演算子である.
SPARQLAggregate[{"var1"agg1,"var2"agg2,…}]
複数の集約を含む解を返す.
SPARQLAggregate[aggs,groupby]
groupby の値でグループ化された解を集約する.
SPARQLAggregate[aggs,groupby,having]
having を評価するとTrueになるグループだけを含む.
SPARQLAggregate[aggs,groupby,having,orderby]
orderby の値でグループを順序付ける.
SPARQLAggregate
SPARQLAggregate["var"agg]
連想のリストに適用されると,値が agg を集約したものである変数 "var"を含む解を返すクエリ演算子である.
SPARQLAggregate[{"var1"agg1,"var2"agg2,…}]
複数の集約を含む解を返す.
SPARQLAggregate[aggs,groupby]
groupby の値でグループ化された解を集約する.
SPARQLAggregate[aggs,groupby,having]
having を評価するとTrueになるグループだけを含む.
SPARQLAggregate[aggs,groupby,having,orderby]
orderby の値でグループを順序付ける.
詳細とオプション
- 演算子SPARQLSelect[…]/*…/*SPARQLAggregate[…]/*…のRightCompositionをSPARQLExecuteで使ってto query a SPARQLエンドポイントのクエリができる. Compositionもサポートされている.
- SPARQLAggregate[…]はSPARQLSelectクエリの結果に適用できる.
- SPARQLAggregate["var"agg]では,agg は大抵の場合はSPARQLEvaluation["f"][u1,u2,…]の形である."f"はSPARQL集約関数名であり,各 uiは解集合内の関連付けられた値が集約関数に与えられるSPARQLVariableである.
- 名前付きのSPARQL集約には以下がある.
-
"COUNT" グループ内の要素数を数える "SUM" グループの値を合計する "MIN" グループ内の最小値を返す "MAX" グループ内の最大値を返す "AVG" グループ内の平均値を返す "GROUP_CONCAT" グループのString値を結合する "SAMPLE" グループから任意の値を返す - SPARQLEvaluation["GROUP_CONCAT"][var, "Separator" -> "sep"]でセパレータ"sep"を使って文字列を結合することができる.デフォルトのセパレータは" "(スペース)である.
例題
すべて開く すべて閉じる例 (1)
Needs["GraphStore`"]fruitData = GraphStore`RDFStore[{GraphStore`RDFTriple[URL["http://example.org/banana"],
URL["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"], URL["http://example.org/Fruit"]],
GraphStore`RDFTriple[URL["http://example.org/banana"], URL["http://schema.o ... ttp://example.org/strawberry"],
URL["http://www.w3.org/1999/02/22-rdf-syntax-ns#type"], URL["http://example.org/Fruit"]],
GraphStore`RDFTriple[URL["http://example.org/strawberry"], URL["http://schema.org/color"],
"red"]}, Association[]];rdf[s_] := URL["http://www.w3.org/1999/02/22-rdf-syntax-ns#" <> s];
schema[s_] := URL["http://schema.org/" <> s];
ex[s_] := URL["http://example.org/" <> s];fruitData//SPARQLQuery[SPARQLSelect[
RDFTriple[SPARQLVariable["fruit"], rdf["type"], ex["Fruit"]]
] /* SPARQLAggregate["count" -> SPARQLEvaluation["count"][]]]fruitData//SPARQLQuery[SPARQLSelect[{
RDFTriple[SPARQLVariable["fruit"], rdf["type"], ex["Fruit"]],
RDFTriple[SPARQLVariable["fruit"], schema["color"], SPARQLVariable["color"]]
}] /* SPARQLAggregate[
{"color", "count" -> SPARQLEvaluation["count"][]},
SPARQLVariable["color"]
]]スコープ (4)
Needs["GraphStore`"]{<|"x" -> 1|>, <|"x" -> 2|>}//SPARQLAggregate[
"total" -> SPARQLEvaluation["sum"][SPARQLVariable["x"]]
]data = {
<|"x" -> 1, "y" -> "a"|>,
<|"x" -> 5, "y" -> "a"|>,
<|"x" -> 100, "y" -> "b"|>,
<|"x" -> 50, "y" -> "c"|>,
<|"x" -> 80, "y" -> "c"|>
};data//SPARQLAggregate[
{"y", "total" -> SPARQLEvaluation["sum"][SPARQLVariable["x"]]},
SPARQLVariable["y"]
]data//SPARQLAggregate[
"avg" -> SPARQLEvaluation["avg"][SPARQLVariable["x"]],
SPARQLVariable["y"],
SPARQLEvaluation["avg"][SPARQLVariable["x"]] > 20
]data//SPARQLAggregate[
"avg" -> SPARQLEvaluation["avg"][SPARQLVariable["x"]],
SPARQLVariable["y"],
SPARQLEvaluation["avg"][SPARQLVariable["x"]] > 20,
SPARQLEvaluation["sample"][SPARQLVariable["y"]] -> "Descending"
]Needs["GraphStore`"]musicGraph = ImportString["
prefix : <http://example.org/>
:LaCumparsita :composer :GerardoMatosRodriguez.
:LaMorocha :composer :EnriqueSaborido.
:Felicia :composer :EnriqueSaborido.
", "Turtle"]ex[s_] := URL["http://example.org/" <> s];musicGraph//SPARQLQuery[
SPARQLSelect[RDFTriple[SPARQLVariable["work"], ex["composer"], SPARQLVariable["composer"]]] /* SPARQLAggregate[
{"count" -> SPARQLEvaluation["COUNT"][], "composer"},
SPARQLVariable["composer"],
True,
SPARQLVariable["count"] -> "Descending"
]
]musicGraph//SPARQLQuery["
prefix ex: <http://example.org/>
select (count(*) as ?count) ?composer where {
?work ex:composer ?composer .
} group by ?composer order by desc(?count)
"]Needs["GraphStore`"]特性 p1 について実体ごとに複数の値を含むグラフを指定する:
ex[s_] := URL["http://example.org/" <> s];graph = RDFStore[{
RDFTriple[ex["e1"], ex["p1"], 11],
RDFTriple[ex["e1"], ex["p1"], 111],
RDFTriple[ex["e1"], ex["p2"], "a"],
RDFTriple[ex["e2"], ex["p1"], 21],
RDFTriple[ex["e2"], ex["p2"], "b"]
}];各実体について,特性 p1 の最大値を取ってデータを取得する:
graph//SPARQLQuery[
SPARQLSelect[{
SPARQLSelect[RDFTriple[SPARQLVariable["e"], ex["p1"], SPARQLVariable["p1"]]] /* SPARQLAggregate[{"e", "p1max" -> SPARQLEvaluation["max"][SPARQLVariable["p1"]]}, SPARQLVariable["e"]],
RDFTriple[SPARQLVariable["e"], ex["p2"], SPARQLVariable["p2"]]
} -> {"p1max", "p2"}]
]Needs["GraphStore`"]{<|"x" -> "a"|>, <|"x" -> "b"|>, <|"x" -> "c"|>, <|"x" -> "d"|>}//SPARQLAggregate["s" -> SPARQLEvaluation["GROUP_CONCAT"][SPARQLVariable["x"], "Separator" -> "~"]]一般化と拡張 (1)
Needs["GraphStore`"]{<|"x" -> 1|>, <|"x" -> 20|>, <|"x" -> 300|>}//SPARQLAggregate["agg" -> SPARQLEvaluation[f][SPARQLVariable["x"]]]{
<|"x" -> 1, "y" -> 20|>,
<|"x" -> 1, "y" -> 40|>,
<|"x" -> 2, "y" -> 80|>
}//SPARQLAggregate["agg" -> SPARQLEvaluation[f][SPARQLVariable["x"], SPARQLVariable["y"]]]アプリケーション (1)
Needs["GraphStore`"]data = {<|"x" -> 1, "w" -> 1|>, <|"x" -> 2, "w" -> 10|>, <|"x" -> 3, "w" -> 100|>};data//SPARQLAggregate[{
"mean" -> SPARQLEvaluation["AVG"][SPARQLVariable["x"]],
"weightedMean" -> SPARQLEvaluation[Transpose /* Apply[WeightedData] /* Mean][SPARQLVariable["x"], SPARQLVariable["w"]]
}]関連するガイド
テキスト
Wolfram Research (2019), SPARQLAggregate, Wolfram言語関数, https://reference.wolfram.com/language/GraphStore/ref/SPARQLAggregate.html.
CMS
Wolfram Language. 2019. "SPARQLAggregate." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/GraphStore/ref/SPARQLAggregate.html.
APA
Wolfram Language. (2019). SPARQLAggregate. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/GraphStore/ref/SPARQLAggregate.html
BibTeX
@misc{reference.wolfram_2026_sparqlaggregate, author="Wolfram Research", title="{SPARQLAggregate}", year="2019", howpublished="\url{https://reference.wolfram.com/language/GraphStore/ref/SPARQLAggregate.html}", note=[Accessed: 15-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_sparqlaggregate, organization={Wolfram Research}, title={SPARQLAggregate}, year={2019}, url={https://reference.wolfram.com/language/GraphStore/ref/SPARQLAggregate.html}, note=[Accessed: 15-August-2026]}