stevenh@60: PREFIX rdf: stevenh@60: PREFIX rdfs: stevenh@60: PREFIX owl: stevenh@60: PREFIX xsd: stevenh@60: PREFIX abc: stevenh@60: PREFIX seq: stevenh@60: PREFIX sia: stevenh@60: stevenh@60: INSERT { ?datapoint1 sia:orderedIndex ?orderedIndex; stevenh@60: sia:memberOfOrderedSet ?dataset} stevenh@60: stevenh@60: WHERE stevenh@60: { stevenh@60: { stevenh@60: SELECT ?datapoint1 (COUNT (?datapoint2) AS ?numSmallerDatapoints) ?dataset stevenh@60: WHERE stevenh@60: { stevenh@69: ?datapoint1 sia:vector ?vector1 . stevenh@69: ?vector1 a sia:Vector . stevenh@69: ?vector1 sia:dimVal ?dimVal1x . stevenh@60: ?datapoint1 sia:memberOfDataset ?dataset . stevenh@60: ?dimVal1x sia:dimension ?smallestDimensionMin . stevenh@60: ?dimVal1x sia:value ?value1x . stevenh@60: stevenh@69: ?datapoint2 sia:vector ?vector2 . stevenh@69: ?vector2 a sia:Vector . stevenh@69: ?vector2 sia:dimVal ?dimVal2x . stevenh@60: ?dimVal2x sia:dimension ?smallestDimensionMin . stevenh@60: ?dimVal2x sia:value ?value2x . stevenh@60: stevenh@60: FILTER ( datatype(?value1x) = xsd:double && datatype(?value2x) = xsd:double ) stevenh@60: FILTER (?value1x > ?value2x) . stevenh@60: { stevenh@60: SELECT ?datapoint1 ?datapoint2 (MIN(?dimension) AS ?smallestDimensionMin) stevenh@60: WHERE stevenh@60: { stevenh@69: ?datapoint1 sia:vector ?vector1 . stevenh@69: ?vector1 a sia:Vector . stevenh@60: ?datapoint1 a sia:Datapoint . stevenh@60: ?datapoint1 sia:memberOfDataset ?dataset . stevenh@69: ?vector1 sia:dimVal ?dimVal1 . stevenh@60: ?dimVal1 sia:dimension ?dimension . stevenh@60: ?dimVal1 sia:value ?value1 . stevenh@60: stevenh@69: ?datapoint2 sia:vector ?vector2 . stevenh@69: ?vector2 a sia:Vector . stevenh@60: ?datapoint2 a sia:Datapoint . stevenh@60: ?datapoint2 sia:memberOfDataset ?dataset . stevenh@69: ?vector2 sia:dimVal ?dimVal2 . stevenh@60: ?dimVal2 sia:dimension ?dimension . stevenh@60: ?dimVal2 sia:value ?value2 . stevenh@60: stevenh@60: FILTER ( datatype(?value1) = xsd:double && datatype(?value2) = xsd:double ) stevenh@60: FILTER (?value1 != ?value2) . stevenh@60: } stevenh@60: GROUP BY ?datapoint1 ?datapoint2 stevenh@60: } stevenh@60: } stevenh@60: GROUP BY ?datapoint1 ?dataset stevenh@60: } stevenh@60: BIND (?numSmallerDatapoints + 1 AS ?orderedIndex) stevenh@60: }