You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by "Greg Albiston (JIRA)" <ji...@apache.org> on 2017/10/18 16:00:02 UTC
[jira] [Created] (JENA-1402) Subtracting two xsd:Duration gives
incorrect results in SPARQL query
Greg Albiston created JENA-1402:
-----------------------------------
Summary: Subtracting two xsd:Duration gives incorrect results in SPARQL query
Key: JENA-1402
URL: https://issues.apache.org/jira/browse/JENA-1402
Project: Apache Jena
Issue Type: Bug
Components: ARQ
Affects Versions: Jena 3.4.0
Reporter: Greg Albiston
There is an issue when subtracting two xsd:durations that include:
* decimal seconds
* non-zero minutes
* second operand has a greater number of seconds than the first operand, i.e. the minutes are reduced.
The result is a large number of minutes and incorrect seconds.
For example:
Integer, Larger: "PT2M3S" - "PT1M10S" = "PT0M53S" CORRECT
Decimal, Smaller: "PT2M3.123S" - "PT1M1.123S" = "PT1M2.000S" CORRECT
Decimal, Larger, Seconds: "PT0M3.123S" - "PT1M10.123S" = "-PT1M7.000S" CORRECT
Decimal, Larger, Minutes: "PT2M3.123S" - "PT1M10.123S" = "PT883M0.020S" INCORRECT
Decimal, Larger, Hours: "PT1H4M3.123S" - "PT0M10.123S" = "PT1H3883M0.020S" INCORRECT
Example SPARQL:
SELECT ?res ?op1 ?op2
WHERE{
VALUES (?op1 ?op2) {
("PT2M3S"^^<http://www.w3.org/2001/XMLSchema#duration> "PT1M10S"^^<http://www.w3.org/2001/XMLSchema#duration>)
("PT2M3.123S"^^<http://www.w3.org/2001/XMLSchema#duration> "PT1M1.123S"^^<http://www.w3.org/2001/XMLSchema#duration>)
("PT0M3.123S"^^<http://www.w3.org/2001/XMLSchema#duration> "PT1M10.123S"^^<http://www.w3.org/2001/XMLSchema#duration>)
("PT2M3.123S"^^<http://www.w3.org/2001/XMLSchema#duration> "PT1M10.123S"^^<http://www.w3.org/2001/XMLSchema#duration>)
("PT1H4M3.123S"^^<http://www.w3.org/2001/XMLSchema#duration> "PT0M10.123S"^^<http://www.w3.org/2001/XMLSchema#duration>)
}
BIND(?op1 - ?op2 AS ?res)
}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)