Literal dataLiteral = resultGraph.createTypedLiteral(objectDataValue);
System.err.println("objectLiteral: " + objectDataValue + " " + dataLiteral.getDatatypeURI());

always says type is http://www.w3.org/2001/XMLSchema#string


On 10/26/2023 5:26 AM, Martynas Jusevičius wrote:
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