Extending the operators for SPARQL is a new value space VSPACE_QUANTITY.

See (comparison):

https://github.com/OpenSensingCity/jena-ucum/blob/jena-3.6.0-ucum/jena-arq/src/main/java/org/apache/jena/sparql/expr/NodeValue.java#L566

and (multiply)

https://github.com/OpenSensingCity/jena-ucum/blob/jena-3.6.0-ucum/jena-arq/src/main/java/org/apache/jena/sparql/expr/nodevalue/NodeValueOps.java#L283

with a new NodeValueQuantity for javax.measure.Quantity

I'm seeing this a "one dimensional units" - a quantity and a unit.

Even then, there are two part - the necessary extensions for operators and the units themselves to allow for other unit systems (?).

There are new dependencies in jena-arq and jena-core.

http://unitsofmeasurement.github.io/
JSR 363 - Units of Measurement API
BSD-license

and an old version of something is on central:

http://central.maven.org/maven2/javax/measure/unit-api/1.0

if that's the right thing.

---

Maxime - what are the dependencies for this contribution and for which pieces are they needed?

    Andy

On 27/03/18 15:49, ajs6f wrote:
Bruno raises an interesting question-- would this contribution have any effect 
(or should it) on jena-spatial? Would it be either necessary or if not, 
appropriate to integrate there? (I'm particularly interested in this because it 
might help decide between core and an extension.)


ajs6f

On Mar 26, 2018, at 5:40 PM, Bruno P. Kinoshita <ki...@apache.org> wrote:

Hi Maxime,
Don't know whether it would be best as part of jena core or in an extension, 
but sounds very interesting! Will let others comment on this.
At work, one item in my backlog is to replace jscience by jsr363 - Units of 
Measurement
|
|
|
|   |    |

   |

  |
|
|   |
Units of Measurement

Units of Measurement provides a set of APIs and services for handling units and 
quantities.
  |   |

  |

  |


We use it for weather forecast and GIS, with things like wind speed, rain 
amount, etc.
I think another GIS library that we use did the switch as well (some OGC lib I 
think).
Perhaps it would be nice to consider taking a look at their api for 
compatibility with other systems.
CheersBruno

Sent from Yahoo Mail on Android

  On Tue, 27 Mar 2018 at 2:07, Maxime Lefrançois<maxime.lefranc...@emse.fr> 
wrote:   Dear all,

I am Associate Professor at MINES Saint-Étienne, France, working on
Semantic Web and Linked Data. I'd like to let you know about our
project *Custom
Datatypes for Quantity Values*[1], that leverages the Unified Code of Units
of Measures, a code system intended to include all units of measures being
contemporarily used in international science, engineering, and business.
Using our UCUM Datatypes, one can encode and query quantity values in a
lightweight manner:

PREFIX cdt: <http://w3id.org/lindt/custom_datatypes#>
PREFIX ex: <http://example.org/>

SELECT ?value1 ?value2 ?result
WHERE{
   VALUES ( ?value1 ?value2 ) {
     ( "1.0 m/s"^^cdt:speed "2 s"^^cdt:time )
   }
   BIND( ?value1 * ?value2 AS ?result )
}

Results in

----------------------------------------------------------------------
| value1              | value2              | result              |
======================================================================
| "1.0 m/s"^^cdt:speed | "2 s"^^cdt:time      | "2.0 m"^^cdt:length  |

See our demonstration online [2].
It uses *a fork of Jena where we implemented UCUM datatypes* [3] (in
jena-core and jena-arq, with several unit tests) our implementation uses
the recent JSR 385, Units of Measurement API 2.0, and the UCUM extension
[4].

This is not the first project I develop into/using Jena.
- I forked it to Supporting Arbitrary Custom Datatypes in RDF and SPARQL
fetching some Javascript definition at the URI of the datatype [5]
- I develop SPARQL-Generate, an extension of SPARQL implemented on ARQ to
generate RDF from web documents in XML, JSON, CSV, HTML, CBOR, and plain
text with regular expressions  [6]


If you agree we me that supporting UCUM datatypes would be a nice addition
to Apache Jena and a nice contribution to the Semantic Web community, I
would be willing to help to integrate our contribution to other modules
(with jena-tdb, ... ), and help maintaining it in the future.

Best regards,
Maxime Lefrançois,
Associate Professor, MINES Saint-Étienne

[1] - http://w3id.org/lindt/custom_datatypes#
[2] - http://w3id.org/lindt/playground.html?example=05-Multiply
[3] - http://w3id.org/lindt/custom_datatypes#implementation
[4] -
https://github.com/unitsofmeasurement/uom-systems/tree/master/ucum-java8
[5] - https://ci.mines-stetienne.fr/lindt/spec.html
[6] - https://ci.mines-stetienne.fr/sparql-generate/

Reply via email to