- From: <leyla.garcia@ebusiness-unibw.org>
- Date: Mon, 30 Nov 2009 14:44:28 +0100 (CET)
- To: public-sparql-dev@w3.org
Hello there,
I have an object property which can appear more than once. It defines min
and max values for prices which should not overlap and I need to check it.
<xxx:Toy rdf:ID="car_1">
<xxx:hasPrice>
<xxx:Price rdf:ID="price_1">
<xxx:hasMinPrice>300.0</xxx:hasMinPrice>
<xxx:hasMaxPrice>450.0</xxx:hasMaxPrice>
</xxx:Price>
</xxx:hasPrice>
<xxx:hasPrice>
<xxx:Price rdf:ID="price_2">
<xxx:hasMinPrice>100.0</xxx:hasMinPrice>
<xxx:hasMaxPrice>200.0</xxx:hasMaxPrice>
</xxx:Price>
</xxx:hasPrice>
</xxx:Toy>
I think I can do it with SPARQL and loops. For each price I need to look
at the others and see if values are overlapping so I coudl get the set of
all overlapping elements. Something like:
FOR EACH (SELECT * WHERE {
?sub xxx:hasPrice ?obj .
?obj xxx:hasMinPrice ?min . ?obj xxx:hasMaxPrice ?max .
})
{
SELECT * WHERE {
?sub1 xxx:hasPrice ?obj1 .
?obj1 xxx:hasMinPrice ?min1 . ?obj1 xxx:hasMaxPrice ?max1 .
FILTER ((?sub = ?sub1?) && (obj <> ?obj1) &&
(?min1 >= ?min) && (?max1 <= ?max))
}
Is something like that possible? How can I accomplish this check? do I
have to do it programatically, perhaps in Java, with regular loops?
Thanks in advanced,
LG
Received on Monday, 30 November 2009 15:45:37 UTC