Because there are 2 forms of SPARQL queries:
- ASK and SELECT return ResultSet (table of variable bindings)
- CONSTRUCT and DESCRIBE return Model (RDF graph = triples)

On Thu, Aug 24, 2017 at 10:58 PM, javed khan <javedbtk...@gmail.com> wrote:

> Hello Martynas, it finally showed the result.
>
> But I did not understand the code. Why we assign the result to a Model? Why
> not resultset.
>
> Model results =  qexec.execConstruct() ;
>
> On Thu, Aug 24, 2017 at 11:44 PM, Martynas Jusevičius <
> marty...@atomgraph.com> wrote:
>
> > This means your query hasn't matched anything.
> >
> > Show us your data.
> >
> > On Thu, Aug 24, 2017 at 10:42 PM, javed khan <javedbtk...@gmail.com>
> > wrote:
> >
> > > In response to my question earlier, I replace this
> > >
> > > ResultSet results = (ResultSet) qexec.execConstruct() ;
> > >
> > > with
> > >
> > > Model results =  qexec.execConstruct() ;
> > > results.write(System.out, "TURTLE");
> > >
> > > But how can I get the require result i.e value of ?z and ?y
> > >
> > > I expect the following result:
> > >
> > > Bob  hasUncle  Lincoln
> > >
> > > But currently, it just display the prefixes.
> > >
> > >
> > >
> > >
> > > On Thu, Aug 24, 2017 at 9:20 PM, javed khan <javedbtk...@gmail.com>
> > wrote:
> > >
> > > > Hello
> > > >
> > > > What is the problem in this query: 'Male' is string literal here.
> (The
> > > > query works inside Protege)
> > > >
> > > > CONSTRUCT   { ?x mo:hasUncle ?y } WHERE { ?x  mo:hasParents ?z .?z
> > > > mo:Gender  'Male' . ?z mo:hasBrother ?y}
> > > >
> > > > Query query = QueryFactory.create(str);
> > > > QueryExecution qexec = QueryExecutionFactory.create(query, model) ;
> > > > ResultSet results = (ResultSet) qexec.execConstruct() ;
> > > >         while (results.hasNext())
> > > > {
> > > > QuerySolution binding = results.nextSolution();
> > > >                 Literal lit =  binding.get("z").asLiteral();
> > > >
> > > >
> > > >
> > >
> >
>

Reply via email to