- From: Andy Seaborne <andy@seaborne.org>
- Date: Mon, 24 Jan 2022 17:23:40 +0000
- To: Daniel Hernandez <daniel@degu.cl>
- Cc: public-rdf-ruby@w3.org
On 23/01/2022 20:32, Daniel Hernandez wrote: > > Andy Seaborne writes: > >> Jena parses and evaluates Daniel's original example - it is using a >> (triple) as an expression. SPARQL-star TRIPLE. >> >> The two expression are not identical - one has quoted triple term <<>> >> pattern, the other has an expression that evaluates to a quoted triple >> -the TRIPLE(expr, expr, expr) function in SPARQL-star. >> >> So there are three cases: >> >> 1 : triple pattern - 3-tuple of RDF-terms/variables. >> 2 : quoted triple pattern, an RDF term + may have variables >> 3 : TRIPLE/3 function - arguments are expressions. >> >> triple != quoted triple. strict typing :-) > > I agree with Andy on that these three cases (depending in the type > system) are not of the same type. Andy proposed using two words > (triple) and (qtriple). Maybe, it is better to use three words, namely > (triple) for case 1, (qtriple) for case 2, and (ftriple) for case 3. > This way context is not needed to interpret which of the three meanings > described by Andy correspond to the expression. (ftriple) is inconsistent naming whhic is a nuisenace - function names are written as their SPARQL function name. (subject) (object) (predicate) (istriple), (+) ... Turns out there are further uses of (triple) in Jena. It is also a extension to SPARQL patter operators outside of BGPs with OpTriple/OpQuad. Position resolves which is meant. Also: a basic graph pattern can be triples without the leading "triple" symbol "(?s ?p ?o)" and it is in many of the tests. But the qtriple/TRIPLE distinction is an ambiguity that can't be resolved by context in expressions: BIND or FILTER etc BIND(<<?s ?p ?o>> AS ?t) # Term pattern BIND(TRIPLE(?s,?p,?o) AS ?t) # Function these are are different and the distinction is needed to round-triple expressions faithly. # Function BIND(TRIPLE(IRI("http://example/s"),?p,?o)) AS ?t) BIND(<<IRI("http://example/s") ?p ?o>> is illegal syntax. So Jena now has qtriple for <<>> -- it accept both forms, and writes (qtriple). Andy > Daniel
Received on Monday, 24 January 2022 17:23:55 UTC