Thanks, Andy!

S.

On 4/11/17, 2:20 AM, "Andy Seaborne" <[email protected]> wrote:

    
    
    On 11/04/17 01:29, Dimov, Stefan wrote:
    > Another question in that order:
    >
    > Now:
    >
    > SELECT count(*)
    > FROM <http://ao.com/namedGraph/aaa>
    > {
    >   { ?s ?p ?o }
    > }
    >
    > returns the number of the triples in aaa, correctly, but:
    >
    > SELECT count(*)
    > FROM NAMED <http://ao.com/namedGraph/aaa>
    > {
    >   { ?s ?p ?o }
    > }
    >
    
    If you are querying the dataset, you don't need FROM / FROM NAMED: use 
    GRAPH to access a named graph:
    
    SELECT count(*)
    {
       GRAPH <http://ao.com/namedGraph/aaa>
       { ?s ?p ?o }
    }
    
         Andy
    
    > returns zero.
    >
    > The explanation (in the docs) of the difference between FROM and FROM 
NAMED is a bit confusing and it’s not enough (for me) to understand, why the 
first is working and the second is not …
    >
    > S.
    >
    > On 4/10/17, 5:09 PM, "Dimov, Stefan" <[email protected]> wrote:
    >
    >     Got it - it’s gotta be a real URI, with http and everything:
    >
    >            http://ao.com/aaa
    >
    >      The simple names, like:
    >
    >            aaa
    >
    >     don’t work …
    >
    >     S.
    >
    >
    >     On 4/10/17, 4:22 PM, "Dimov, Stefan" <[email protected]> wrote:
    >
    >         I (almost) got it.
    >
    >         Apparently, the data was loaded correctly. Now I can query the 
names of all the graphs:
    >
    >         SELECT DISTINCT $g
    >         {
    >            GRAPH ?g { ?s ?p ?o }
    >         }
    >
    >         returns:
    >
    >         {
    >           "head": {
    >             "vars": [ "g" ]
    >           } ,
    >           "results": {
    >             "bindings": [
    >               {
    >                 "g": { "type": "uri" , "value": "aaa" }
    >               } ,
    >               {
    >                 "g": { "type": "uri" , "value": "bbb" }
    >               } ,
    >               {
    >                 "g": { "type": "uri" , "value": "ccc" }
    >               } ,
    >               {
    >                 "g": { "type": "uri" , "value": "ddd" }
    >               } ,
    >               …
    >
    >         or the data:
    >
    >         SELECT count(*)
    >         {
    >            GRAPH ?g { ?s ?p ?o }
    >         }
    >
    >         returns:
    >
    >         {
    >           "head": {
    >             "vars": [ ".1" ]
    >           } ,
    >           "results": {
    >             "bindings": [
    >               {
    >                 ".1": { "type": "literal" , "datatype": 
"http://www.w3.org/2001/XMLSchema#integer"; , "value": "395721" }
    >               }
    >             ]
    >           }
    >         }
    >
    >         but I still can’t figure out how to query specific named graph. 
This:
    >
    >         SELECT count(*)
    >         {
    >            GRAPH <aaa> { ?s ?p ?o }
    >         }
    >
    >         should work. But actually it returns zero results:
    >
    >         {
    >           "head": {
    >             "vars": [ ".1" ]
    >           } ,
    >           "results": {
    >             "bindings": [
    >               {
    >                 ".1": { "type": "literal" , "datatype": 
"http://www.w3.org/2001/XMLSchema#integer"; , "value": "0" }
    >               }
    >             ]
    >           }
    >         }
    >
    >         Any idea?
    >
    >         S.
    >
    >
    >         On 4/10/17, 2:06 PM, "Dimov, Stefan" <[email protected]> wrote:
    >
    >             Hi,
    >
    >             I’m using in-mem base and loading multiple named graphs in 
one data set, iterating thru :
    >
    >             private static boolean loadGraphT(Dataset ds) {
    >                 …
    >                 String filename = …
    >                 String graphName = …
    >                …
    >                 Model model = ds.getNamedModel(graphName);
    >                 ds.begin(ReadWrite.WRITE);
    >                 FileManager.get().readModel(model, fileName);
    >                 ds.commit();
    >                 ds.end();
    >                 return true;
    >             }
    >
    >
    >
    >             At start, after everything is read and data set is committed, 
I’m printing out the graph names and their sizes, to check, if everything was 
loaded:
    >
    >             2017-04-10 13:50:50 INFO  Ontology:50 - Named graph aaa - 
7855 triples
    >             2017-04-10 13:50:50 INFO  Ontology:50 - Named graph bbb - 26 
triples
    >             2017-04-10 13:50:50 INFO  Ontology:50 - Named graph ccc - 4 
triples
    >             2017-04-10 13:50:50 INFO  Ontology:50 - Named graph ddd - 
20000 triples
    >             …
    >
    >             After that I’m trying to query some data from a named graph:
    >
    >             SELECT count ($s)
    >             FROM NAMED <aaa>
    >             {
    >                 { ?s ?p ?o }
    >             }
    >
    >             or trying to query it without specifying graph:
    >
    >             SELECT count ($s)
    >             {
    >                 { ?s ?p ?o }
    >             }
    >
    >             The result is empty:
    >
    >             {
    >               "head": {
    >                 "vars": [ ".1" ]
    >               } ,
    >               "results": {
    >                 "bindings": [
    >                   {
    >                     ".1": { "type": "literal" , "datatype": 
"http://www.w3.org/2001/XMLSchema#integer"; , "value": "0" }
    >                   }
    >                 ]
    >               }
    >             }
    >
    >             What am I doing wrong?
    >
    >             S.
    >
    >
    >
    >
    >
    >
    

Reply via email to