Mercurial > hg > semantic-sia
view src/sparql/insert_vte_order_bar_one.sparql @ 69:94e6592eb106
modified to take into account that sia:Datapoints now have sia:vector properties which then have sia:dimVals, rather than sia:Datapoints having their own sia:dimVal properties
author | stevenh |
---|---|
date | Fri, 02 Aug 2013 11:13:10 +0100 |
parents | 387439c076f9 |
children | fd9111c83e57 |
line wrap: on
line source
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) }