The IMO correct way to do duration processing, that unfortunately has only got 
through the XML bit of the standards process is to use either

http://www.w3.org/TR/xpath-functions/#dt-yearMonthDuration 
<http://www.w3.org/TR/xpath-functions/#dt-yearMonthDuration>

or

http://www.w3.org/TR/xpath-functions/#dt-dayTimeDuration 
<http://www.w3.org/TR/xpath-functions/#dt-dayTimeDuration>

but not both in the same expression. This avoids the ambiguities.

XPath also defines arithmetic between dates and durations in a useful fashion

Jeremy




> On Nov 19, 2014, at 10:57 AM, Arthur Keen <[email protected]> wrote:
> 
> Thanks Dave, interesting that RDF 1.1 calls out duration but SPARQL 1.1 does 
> not.  This could be related to SPARQL 1.1 being released before RDF 1.1
> 
> On Nov 19, 2014, at 3:20 AM, Dave Reynolds <[email protected]> wrote:
> 
>> On 19/11/14 05:41, Arthur Keen wrote:
>>> When comparing 28 days to 1 month and 365 days to 1 year in Fuseki 1.1.1
>>> 
>>> SELECT ("P28D"^^<http://www.w3.org/2001/XMLSchema#duration> 
>>> ="P1M"^^<http://www.w3.org/2001/XMLSchema#duration> as ?same) {}
>>> --------
>>> | same |
>>> ========
>>> | true |
>>> --------
>>> SELECT ("P365D"^^<http://www.w3.org/2001/XMLSchema#duration> 
>>> ="P1Y"^^<http://www.w3.org/2001/XMLSchema#duration> as ?same) {}
>>> --------
>>> | same |
>>> ========
>>> | true |
>>> --------
>>> Shouldn't this be indeterminate in both cases?
>> 
>> xsd:duration was not a supported datatype in RDF 1.0 and isn't included in 
>> the SPARQL 1.1 specification [1] so I wouldn't rely on behaviour here.
>> 
>> SPARQL 1.1 does allow = to be extended to other datatypes but as far as I 
>> can see it doesn't specify how indeterminate values should be handled.
>> 
>> I see that RDF 1.1 does list xsd:duration as a supported datatype (!) which 
>> seems like a terrible idea, no idea why they did that.
>> 
>> I can't speak for whether there is any intention for ARQ to support 
>> xsd:duration fully.
>> 
>> Dave
>> 
>> [1] http://www.w3.org/TR/sparql11-query/#OperatorMapping
> 

Reply via email to