Dear all,

Does TDB has a latest benchmarking performance test result?  I found a Berlin 
sparql test benchmarking result. But it reports on 2008. 

Thanks,
-xiaoshan


-----Original Message-----
From: Andy Seaborne [mailto:a...@apache.org] 
Sent: 2021年1月28日 6:26
To: users@jena.apache.org
Subject: Re: XPath Duration functions in Jena

Hi Harri,

https://www.w3.org/TR/xpath-functions-3/#func-subtract-dates

The difference of two dates is the duration bwteeen the dates as points on the 
timeline as a xs:dayTimeDuration.

?age is "P14484DT0H0M0.000S"^^xsd:dayTimeDuration

not PnnYnnMnnD

A duration is a defined, fixed length of time.


There two kinds of durations xs:dayTimeDuration and xs:yearMonthDuration 
https://www.w3.org/TR/xpath-functions-3/#duration-subtypes

where arithmetic and ordering can be meaningfully defined at all.

A combination of months and days is not a fixed interval of time because the 
number of days in a month isn't the same for all months.

Only xs:dayTimeDuration defines a duration that is of a well-defined difference 
of two points on the timeline (ignoring negative leap seconds).

Once "xsd:date - xsd:date" is calculated, the duration is a fixed length of 
time and does not tie back to which dates were used in the calculation.

So "P14484D.." is right not "P44Y6m??D"

[[
Confusingly the difference of two Gregorian year-months (gYearMonth) is also an 
xs:dayTimeDuration, and not a xs:yearMonthDuration, not that it is really 
defined on gYearMonth (section 9.1), because gYearMonth maps to a point on the 
timeline and the difference is of two points on the timeline.
]]


With ?age is "P14484DT0H0M0.000S"^^xsd:dayTimeDuration

For the casting to xsd:yearMonthDuration: (had to check this one!)

Casting xsd:dayTimeDuration to xsd:yearMonthDuration is defined.

https://www.w3.org/TR/xpath-functions-31/#casting-from-primitive-to-primitive

https://www.w3.org/TR/xpath-functions-31/#casting-to-durations
"""
If ST is xs:yearMonthDuration and TT is xs:dayTimeDuration, the cast is 
permitted and returns a xs:dayTimeDuration with value 0.0 seconds.
"""
ST is "source type" TT is target type".

I don't know the rationale - (a guess - treat like it is selecting fields from 
PnnYnnMnnDT..)

     Andy


On 27/01/2021 17:16, Harri Kiiskinen wrote:
> Dear all,
> 
> This example run with Fuseki 3.17:
> 
> --------------------------------------------------------------------
> PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
> PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
> 
> SELECT ?y ?d (xsd:dayTimeDuration(?age) as ?a1)
>               (xsd:yearMonthDuration(?age) as ?a2) where {
>    bind ( xsd:date("1984-12-01") as ?y)
>    bind ( xsd:date("1944-05-06") as ?d)
>    bind ((?y-?d) as ?age )
> }
> -------------------------------------------------------------------
> 
> Gives unexpected results:
> 
> ------------------------------------------------------------------
> y,d,a1,a2
> 1984-12-01,1944-05-06,P14484DT0H0M0.000S,P0M
> ------------------------------------------------------------------
> 
> I was expecting the variable "a2" to contain the duration expressed in 
> Years and Months, but instead it is zero.
> 
> 
> What am I doing wrong here?
> 
> Best,
> 
> Harri Kiiskinen

Reply via email to