Mercurial > hg > semantic-sia
diff src/sparql/insert_vte_order_bar_one.sparql @ 60:387439c076f9
new
author | stevenh |
---|---|
date | Sat, 11 May 2013 17:56:37 +0100 |
parents | |
children | fd9111c83e57 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/sparql/insert_vte_order_bar_one.sparql Sat May 11 17:56:37 2013 +0100 @@ -0,0 +1,119 @@ +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> +PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> +PREFIX abc: <http://example.org/abc#> +PREFIX seq: <http://example.org/seq#> +PREFIX sia: <http://example.org/sia#> + +INSERT { ?vte1 sia:orderedIndex ?orderedIndex; + sia:memberOfOrderedSet ?dataset} + +WHERE +{ + ?vte1 a sia:VectorTableElement . + ?vte1 sia:memberOfDataset ?dataset . + + { + SELECT ?vte1 (COUNT (DISTINCT(?vte2)) AS ?numSmallerVtes) ?dataset + WHERE + { + { + SELECT ?vte1 ?vte2 ?dataset + WHERE + { + ?vte1 sia:dimVal ?dimVal1x . + ?vte1 sia:memberOfDataset ?dataset . + ?vte1 a sia:VectorTableElement . + ?dimVal1x sia:dimension ?smallestDimensionMin . + ?dimVal1x sia:value ?value1x . + + ?vte2 sia:dimVal ?dimVal2x . + ?vte2 sia:memberOfDataset ?dataset . + ?vte2 a sia:VectorTableElement . + ?dimVal2x sia:dimension ?smallestDimensionMin . + ?dimVal2x sia:value ?value2x . + + FILTER (?value1x > ?value2x) . + + { + { + SELECT ?vte1 ?vte2 (MIN(?dimension) AS ?smallestDimensionMin) ?dataset + WHERE + { + ?vte1 a sia:VectorTableElement . + ?vte1 sia:dimVal ?dimVal1 . + ?vte1 sia:memberOfDataset ?dataset . + ?dimVal1 sia:dimension ?dimension . + ?dimVal1 sia:value ?value1 . + + ?vte2 a sia:VectorTableElement . + ?vte2 sia:dimVal ?dimVal2 . + ?vte2 sia:memberOfDataset ?dataset . + ?dimVal2 sia:dimension ?dimension . + ?dimVal2 sia:value ?value2 . + + FILTER (?value1 != ?value2) . + } + GROUP BY ?dataset ?vte1 ?vte2 + } + } + } + } + + UNION + + { + SELECT ?vte1 ?vte2 ?dataset + WHERE + { + ?vte1 a sia:VectorTableElement . + ?vte1 sia:memberOfDataset ?dataset . + ?vte1 sia:fromDatapoint ?vte1FromDatapoint . + ?vte1FromDatapoint sia:orderedIndex ?value1 . + + ?vte2 a sia:VectorTableElement . + ?vte2 sia:memberOfDataset ?dataset . + ?vte2 sia:fromDatapoint ?vte2FromDatapoint . + ?vte2FromDatapoint sia:orderedIndex ?value2 . + + FILTER (?value1 > ?value2) . + + { + + # These are vtes which are equal in all dimensions + SELECT ?vte1 ?vte2 ?dataset + WHERE + { + ?vte1 a sia:VectorTableElement . + ?vte1 sia:memberOfDataset ?dataset . + ?vte2 a sia:VectorTableElement . + ?vte2 sia:memberOfDataset ?dataset . + + MINUS + { + ?vte1 a sia:VectorTableElement . + ?vte1 sia:memberOfDataset ?dataset . + ?vte1 sia:dimVal ?dimVal1 . + ?dimVal1 sia:dimension ?dimension . + ?dimVal1 sia:value ?value1 . + + ?vte2 a sia:VectorTableElement . + ?vte2 sia:memberOfDataset ?dataset . + ?vte2 sia:dimVal ?dimVal2 . + ?dimVal2 sia:dimension ?dimension . + ?dimVal2 sia:value ?value2 . + + FILTER (?value1 != ?value2) . + FILTER (?vte1 != ?vte2) . + } + } + GROUP BY ?dataset ?vte1 ?vte2 + } + } + } + } + GROUP BY ?dataset ?vte1 + } + BIND (?numSmallerVtes + 1 AS ?orderedIndex) +} \ No newline at end of file