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

Hi James, all,

As agreed during our telco last Friday, I have merged PR #118 that defines the 
new built-in functions and created a separate issue to add a clarification 
section related to these built-in functions. A new PR with this section is 
ready now: 

https://github.com/w3c/rdf-star/pull/129

Preview:

https://pr-preview.s3.amazonaws.com/w3c/rdf-star/pull/129.html#examples-and-discussion

If you have comments or concerns about this section, please raise them in the 
PR on github.

Thanks,
Olaf


On fredag 5 mars 2021 kl. 02:26:12 CET James Anderson wrote:
> > 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 Monday, 8 March 2021 13:54:29 UTC