On 25/07/2021 14:08, Laura Morales wrote:
What I mean is... (with an example):
As far as I understand, these are valid triples that I can load into 
Fuseki/Jena at the same time in the same graph

     :alice   :age "25"^^xsd:string;
     :bob     :age "20"^^xsd:integer;

If then I execute this query:

     SELECT *
     WHERE
     {
         ?s :age ?age .
         FILTER (?age < 30)
     }

should Jena raise an error (because there is a :age property with a value that 
is not integer), or should it simply ignore :alice entirely because the type of 
the property (string) doesn't match the type that I'm querying for?

"25"^^xsd:string < 30

is a type error.

Type errors in a FILTER makes the filter false. (It does not become an overall query error.)

    Andy





Sent: Monday, July 19, 2021 at 12:40 PM
From: "Andy Seaborne" <[email protected]>
To: [email protected]
Subject: Re: Does Jena use duck typing?

It store triples/quads.
Think of it as a table of triples and table of quads

Comparison is defined by XQuery/XPath Functions and Operators.

But maybe I don't understand what's behind the question.

On 19/07/2021 07:02, Laura Morales wrote:
How is Jena able to index and search/compare properties with different data 
types?
For example if I have this graph

      :alice :foobar "2021-07-16"^^xsd:date;
      :alice :foobar "foobar"^^xsd:string;
      :alice :foobar "42"^^xsd:integer;

You can't compare "2021-07-16"^^xsd:date with an xsd:string or an
xsd:integer.

They have different value spaces.

      Andy

Reply via email to