Hello Andy,

the second query is the first query with "select ?c where {" and "}" around it.
I don't understand why it should return something else.

Our SPARQL endpoints are public anyway so you can see yourself. The numbers
may change a bit due to user activity:

http://www.imagesnippets.com/sparql/dbpedia

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select (count(*) as ?c) where { graph ?g {
SERVICE <http://www.imagesnippets.com/sparql/datasets> { ?d rdfs:subClassOf 
<http://www.imagesnippets.com/imgtag/datasets/Michaels_Dataset/aidkjfsdf>. }
?s ?p ?d.
}
}

Result: 1

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select (count(distinct ?g) as ?c) where { graph ?g {
SERVICE <http://www.imagesnippets.com/sparql/datasets> { ?d rdfs:subClassOf 
<http://www.imagesnippets.com/imgtag/datasets/Michaels_Dataset/aidkjfsdf>. }
?s ?p ?d.
}
}

Result: 1

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?c where {
select (count(*) as ?c) where { graph ?g {
SERVICE <http://www.imagesnippets.com/sparql/datasets> { ?d rdfs:subClassOf 
<http://www.imagesnippets.com/imgtag/datasets/Michaels_Dataset/aidkjfsdf>. }
?s ?p ?d.
}
}
}

Result: 12347 (=The number of all triples in all named graphs)

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?c where {
select (count(distinct ?g) as ?c) where { graph ?g {
SERVICE <http://www.imagesnippets.com/sparql/datasets> { ?d rdfs:subClassOf 
<http://www.imagesnippets.com/imgtag/datasets/Michaels_Dataset/aidkjfsdf>. }
?s ?p ?d.
}
}
}

Result: 1160 (=The number of named graphs)

Should I have a close look at the SPARQL standard or is there a bug ?

Regards,

Michael Brunnbauer

On Wed, Jul 17, 2013 at 07:10:14PM +0100, Andy Seaborne wrote:
> On 17/07/13 13:10, Michael Brunnbauer wrote:
> >
> >hi all,
> >
> >this query with Fuseki 0.2.7 on a TDB with named graphs yields 2 for ?c:
> >
> >PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> >select (count(*) as ?c) where { graph ?g {
> >  SERVICE <http://127.0.0.1:3030/datasets/query> {
> >   ?d rdfs:subClassOf <example>
> >  }
> >  ?s ?p ?d
> >} }
> >
> >But as soon as I wrap it as subquery, ?c is 9436 - the number of all 
> >triples
> >from all named graphs:
> >
> >PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
> >select ?c where {
> >
> >select (count(*) as ?c) where { graph ?g {
> >  SERVICE <http://127.0.0.1:3030/datasets/query> {
> >   ?d rdfs:subClassOf <example>
> >  }
> >  ?s ?p ?d
> >} }
> >
> >}
> >
> >(The federated subquery on http://127.0.0.1:3030/datasets/query has one
> >subclass as result)
> >
> >Is this a bug or a misunderstanding ?
> 
> It's not a bug as far as I can see.
> 
> To debug, try "SELECT * ... LIMIT 100"
> 
> COUNT(*) is the number of rows in the answers.  In your first query, 
> there must be either two ?g and the { ?d rdfs:subClassOf <example> } 
> matches once, or one ?g and { ?d rdfs:subClassOf <example> } matches twice.
> 
> In the second query, that is joined with "?s ?p ?d" in the named graph 
> of the local machine which has 4718 triples with the same ?d.
> 
> select (count(distinct ?g) as ?c)
> 
> would count the named graphs only (inefficiently!)
> 
>       Andy
> 
> >
> >Regards,
> >
> >Michael Brunnbauer
> >

-- 
++  Michael Brunnbauer
++  netEstate GmbH
++  Geisenhausener Straße 11a
++  81379 München
++  Tel +49 89 32 19 77 80
++  Fax +49 89 32 19 77 89 
++  E-Mail [email protected]
++  http://www.netestate.de/
++
++  Sitz: München, HRB Nr.142452 (Handelsregister B München)
++  USt-IdNr. DE221033342
++  Geschäftsführer: Michael Brunnbauer, Franz Brunnbauer
++  Prokurist: Dipl. Kfm. (Univ.) Markus Hendel

Attachment: pgp7e5DdQfbyn.pgp
Description: PGP signature

Reply via email to