You need Model::createTypedLiteral
https://jena.apache.org/documentation/notes/typed-literals.html#basic-api-operations

On Thu, 26 Oct 2023 at 12.24, Steve Vestal <steve.ves...@galois.com> wrote:

> If I reconstruct using
>
>       Literal dataLiteral = resultGraph.createLiteral(objectDataValue);
>
> it always says the type is string
>
>      1^^xsd:string
>      stringB^^ xsd:string
>      123.456^^xsd:string
>      2023-10-06T12:05:10Z^^xsd:string
>
> On 10/26/2023 4:17 AM, Steve Vestal wrote:
> > What is the best way to reconstruct a typed Literal from a SPARQL
> > SELECT result?
> >
> > I have a SPARQL SELECT query issued against an OntModel in this way:
> >
> >      QueryExecution structureRowsExec =
> > QueryExecutionFactory.create(structureRowsQuery, owlOntModel);
> >
> > Here are some example triples in the query:
> >
> >       ?a2
> > <
> http://www.galois.com/indigo/test/structure_datatypes_test#floatProperty>
> > ?dataVar1.
> >       ?a2
> > <
> http://www.galois.com/indigo/test/structure_datatypes_test#dateTimeProperty>
>
> > ?dataVar2.
> >
> > The OntModel being queried was created using typed literals, e.g.,
> >
> >
> >     DataPropertyAssertion( struct:floatProperty struct:indivA2
> > "123.456"^^xsd:float )
> >     DataPropertyAssertion( struct:dateTimeProperty struct:indivA2
> > "2023-10-06T12:05:10Z"^^xsd:dateTime )
> >
> > When I look at the ?dataVar1 and ?dataVar2 results in a row, I get
> > things like:
> >
> >      1
> >      stringB
> >      123.456
> >      2023-10-06T12:05:10Z
> >
> > What is a good way to reconstruct a typed Literal from the query
> > results? Is there a SPARQL option to show full typed literal strings?
> > Something that can be added to the query?  A utility method that can
> > identify the XSD schema simple data type when given a result value
> > string?
> >
> >
>

Reply via email to