Re: Text about SPARQL-star built-in functions ready

> On 2021-03-04, at 11:40:13, Andy Seaborne <andy@apache.org> wrote:
> 
> On 04/03/2021 07:32, James Anderson wrote:
>> olaf,
> ...
> 
>> [that the count of requests to our service which specify application/n-quads as the content and/or accept media type outnumber by a factor of ten to one those which specify a triples variant notwithstanding, and despite that for well longer than recent memory, i have implemented nothing which concerned rdf statements for which the respective operands were typed as “triples", rather than “quads”, for the sake of discussion, this note will defer to the notion of “triples in graphs”.]
>> the concern is that the description of the operator should describe its application and results in adequate detail, that it not be necessary to comprehend its behaviour “by transitivity”.
> 
> Could you take a look at PR 114 and provide missing tests?

the concern is whether the information in pr118 is sufficient, not whether pr114 is complete
there may be some readers to whom the answers to questions of the sort posed are self-evident and further explanation is superfluous, but i am not one of them.

> 
>> for example, given a target dataset with some given number of graphs and an excerpt such as
> 
> 
>> select (count(distinct ?t1) as ?t1Count)
>>           (count(distinct ?t2) as ?t2Count)
>>           (count(distinct ?t3) as ?t3Count)
>>           (count(distinct ?t4) as ?t4Count)
>> where {
>>   graph ?g {
>>     bind ( triple(_:id , dcam:memberOf, ?g) as ?t1)
> 
> Expressions can't have bnodes in them.
> Did you mean BNODE("someFixedString")? BNODE()?

yes, please.

> 
>>     bind ( triple(:id , dcam:memberOf, ?g) as ?t2)
>>     bind ( triple(_:id , dcam:memberOf, <>) as ?t3)
>>     bind ( triple(:id , dcam:memberOf, <>) as ?t4)
>>   }
>> }
>> this reader would expect to be able to rely on the immediate text to unambiguously answer questions on the order of
>> - is it permitted to apply that function in this manner?
> 
> ?g is unbound in ?t2.

please, precede it with pattern which unifies and binds it - "{?g ?g ?g}” for all it matters.

> 
>> - what values of the count variables result?
> 
> ?t2Count = 0   BIND expression is unbound
> ?t4Count = 1   Constant expression; RDF (star) term-equality.
> 
> triple(BNODE("id") , dcam:memberOf, <>) => N for N graphs.
> Unique BNODE per row => unique triple.

a discussion of which sort belongs in the description of the function.

> 
>    Andy
> 
>> - were the select clause to be replaced with a construct clause which combined a graph with a triples template and targeted an initially empty dataset, how many triples would there be in the respective graphs if the construct clause specified a constant graph and how many if it specified the ?g variable?
> 
> I am unclear what the example is here.

a variant of the question could concern the results of

construct {
 graph ?g { ?t dc:hasPart ?n}
}
where {
 graph ?g {
   ?g ?g ?g .
   bind ( bnode('n') as ?n )
   bind ( triple(?n , dcam:memberOf, ?g) as ?t)
 }
}


> 
> On 2021-03-04, at 11:24:38, Pierre-Antoine Champin <pierre-antoine.champin@ercim.eu> wrote:
> 
>> ...
>> 
>> this reader would expect to be able to rely on the immediate text to unambiguously answer questions on the order of
>> - is it permitted to apply that function in this manner?
>> - what values of the count variables result?
>> - were the select clause to be replaced with a construct clause which combined a graph with a triples template and targeted an initially empty dataset, how many triples would there be in the respective graphs if the construct clause specified a constant graph and how many if it specified the ?g variable?
> 
> those are fair questions, but I don't see how their answer depends on the definition of the TRIPLE() function...
> 
> How is this different from asking the same questions about (for example):
> 
> select (count(distinct ?t1) as ?t1Count)
>          (count(distinct ?t2) as ?t2Count)
> where {
>  graph ?g {
>    bind ( strdt("foo", ?g) as ?t1)
>    bind ( strdt("foo", <>) as ?t1)
> 
>  }
> }
> 
> ?

because this question, immediately above, relates terms the nature of which does not change when they are comprised by statements which appear in graphs while the earlier questions concerns terms which may.

best regards, from berlin

Received on Friday, 5 March 2021 01:26:26 UTC