Dear All,

Thanks for your support.  Yes, I can now able to work with Aggregate
Functions.

-
Regards



On Mon, May 12, 2014 at 9:59 PM, Hugh Williams <[email protected]>wrote:

> Andy,
>
> On 12 May 2014, at 13:19, Andy Seaborne <[email protected]> wrote:
>
> > On 12/05/14 12:54, Hugh Williams wrote:
> >> Hi Rob,
> >>
> >> What is not SPARQL 1.1 about the query being run ie
> >>
> >> select distinct ?T1  ?T2 count(*) from <http://dbpedia.org>
> >> where
> >> {
> >> ?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T1.
> >> ?s2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T2.
> >> ?s1 <http://dbpedia.org/property/spouse> ?s2.
> >> ?s2 <http://dbpedia.org/property/birthPlace> ?obj.
> >> FILTER(REGEX(?T1, "http://dbpedia.org/ontology/";)).
> >> FILTER(REGEX(?T2, "http://dbpedia.org/ontology/";)).
> >> }
> >> group by ?T1 ?T2
> >>
> >> The only potential problem I see is the "count(*)" which maybe have to
> be changed to be "(count(*) as ?count)"  as in the specs if this is not
> deemed to be SPARQL 1.1 ie
> >
> > It is not legal SPARQL 1.1.
> >
> >> select distinct ?T1  ?T2 (count(*) as ?count) from <http://dbpedia.org>
> >> where
> >> {
> >> ?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T1.
> >> ?s2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T2.
> >> ?s1 <http://dbpedia.org/property/spouse> ?s2.
> >> ?s2 <http://dbpedia.org/property/birthPlace> ?obj.
> >> FILTER(REGEX(?T1, "http://dbpedia.org/ontology/";)).
> >> FILTER(REGEX(?T2, "http://dbpedia.org/ontology/";)).
> >> }
> >> group by ?T1 ?T2
> >>
> >> Which seems to work against other endpoints ...
> >>
> >> Would be nice if the Jena SPARQL validator at
> http://www.sparql.org/validator.html worked to check ?
> >>
> >
> > What "would be nice"?
> >
> > It correctly shows it to be an error unless you enable extensions.
>
> [Hugh] The validator was giving a "service unavailable" error, earlier but
> is working now ...
>
> >
> >> I note in the code Jena snippet below the call
> "QueryFactory.create(query, Syntax.syntaxSPARQL_11);" , which seems to be
> forcing the invocation of the Jena Parser, but if the
> "Syntax.syntaxSPARQL_11" param is removed then it should bypass the Jena
> parser and pass Query on to Virtuoso as is , as detailed at:
> >>
> >>
> http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtJenaProvider#Bypass%20Jena/ARQ%20parser
> >
> > is 'query' the same in both code snippets?
>
> [Hugh] Should be the same ...
>
> Regards
> Hugh
>
> >
> >       Andy
> >
> >>
> >> Best Regards
> >> Hugh Williams
> >> Professional Services
> >> OpenLink Software, Inc.      //              http://www.openlinksw.com/
> >> Weblog   -- http://www.openlinksw.com/blogs/
> >> LinkedIn -- http://www.linkedin.com/company/openlink-software/
> >> Twitter  -- http://twitter.com/OpenLink
> >> Google+  -- http://plus.google.com/100570109519069333827/
> >> Facebook -- http://www.facebook.com/OpenLinkSoftware
> >> Universal Data Access, Integration, and Management Technology Providers
> >>
> >> On 12 May 2014, at 09:17, Rob Vesse <[email protected]> wrote:
> >>
> >>> Yes, though the Virtuoso specific syntax shown there is not legal
> SPARQL
> >>>
> >>> See Aggregates (http://www.w3.org/TR/sparql11-query/#aggregates) in
> the
> >>> SPARQL 1.1 specification which Jena fully supports
> >>>
> >>> Rob
> >>>
> >>> On 12/05/2014 05:49, "Md Mizanur Rahoman" <[email protected]> wrote:
> >>>
> >>>> Dear Experts,
> >>>>
> >>>> My question is:
> >>>>
> >>>> Is there any Jena implementation that can execute Aggregate function
> like
> >>>> count, sum etc? Iterative counting of all elements could an option,
> >>>> however, I want to know about direct implement of below method.
> >>>>
> >>>> such as, the below method
> >>>>
> >>>> ------------------------------
> >>>>
> ------------------------------------------------------------------------
> >>>> public void queryExecutor(VirtGraph dataset) {
> >>>>
> >>>>       String query =
> >>>>       "select distinct ?T1  ?T2 count(*) "+
> >>>>       "from <http://dbpedia.org> "+
> >>>>       "where "+
> >>>>       "{ "+
> >>>>       "?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T1. "+
> >>>>       "?s2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T2. "+
> >>>>       "?s1 <http://dbpedia.org/property/spouse> ?s2. "+
> >>>>       "?s2 <http://dbpedia.org/property/birthPlace> ?obj. "+
> >>>>       "FILTER(REGEX(?T1, \"http://dbpedia.org/ontology/\";)). "+
> >>>>       "FILTER(REGEX(?T2, \"http://dbpedia.org/ontology/\";)). "+
> >>>>       "}"+
> >>>>       "group by ?T1 ?T2 ";
> >>>>
> >>>>
> >>>>       System.out.println(query);
> >>>>
> >>>>       Query sparql1 = QueryFactory.create(query,
> >>>> Syntax.syntaxSPARQL_11);
> >>>>       try {
> >>>>       VirtuosoQueryExecution vqe1 =
> >>>> VirtuosoQueryExecutionFactory.create(sparql1, dataset);
> >>>>       ResultSet results1 = vqe1.execSelect();
> >>>>
> >>>>       }
> >>>>       catch (Exception e) {
> >>>>           System.out.println("Error in query execution: " +
> >>>> e.toString());
> >>>>           e.printStackTrace();
> >>>>       }
> >>>>
> >>>>   }
> >>>>
> --------------------------------------------------------------------------
> >>>> ---------------------------------
> >>>>
> >>>>
> >>>> -
> >>>> Regards
> >>>> Mizan
> >>>> NII, Japan
> >>>>
> >>>>
> >>>>
> >>>> ---------- Forwarded message ----------
> >>>> From: Md Mizanur Rahoman <[email protected]>
> >>>> Date: Wed, May 7, 2014 at 7:35 PM
> >>>> Subject: Group By Query in Jena Java
> >>>> To: [email protected]
> >>>>
> >>>>
> >>>> Dear Expert,
> >>>>
> >>>> I want to execute a group by query in Jena. I am using Jena V2.6.4.
> But it
> >>>> is  giving exception
> >>>>
> --------------------------------------------------------------------------
> >>>> ---------------------------
> >>>>
> >>>> Exception in thread "main" com.hp.hpl.jena.query.QueryParseException:
> >>>> Encountered " "count" "count "" at line 1, column 26.
> >>>>
> >>>>
> --------------------------------------------------------------------------
> >>>> ----------------------------
> >>>> And here is my method,
> >>>>
> >>>>
> --------------------------------------------------------------------------
> >>>> ----------------------------
> >>>> public void queryExecutor(VirtGraph dataset) {
> >>>>
> >>>>       String query =
> >>>>       "select distinct ?T1  ?T2 count(*) "+
> >>>>       "from <http://dbpedia.org> "+
> >>>>       "where "+
> >>>>       "{ "+
> >>>>       "?s1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T1. "+
> >>>>       "?s2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?T2. "+
> >>>>       "?s1 <http://dbpedia.org/property/spouse> ?s2. "+
> >>>>       "?s2 <http://dbpedia.org/property/birthPlace> ?obj. "+
> >>>>       "FILTER(REGEX(?T1, \"http://dbpedia.org/ontology/\";)). "+
> >>>>       "FILTER(REGEX(?T2, \"http://dbpedia.org/ontology/\";)). "+
> >>>>       "}"+
> >>>>       "group by ?T1 ?T2 ";
> >>>>
> >>>>
> >>>>       System.out.println(query);
> >>>>
> >>>>       Query sparql1 = QueryFactory.create(query,
> >>>> Syntax.syntaxSPARQL_11);
> >>>>       try {
> >>>>       VirtuosoQueryExecution vqe1 =
> >>>> VirtuosoQueryExecutionFactory.create(sparql1, dataset);
> >>>>       ResultSet results1 = vqe1.execSelect();
> >>>>
> >>>>       }
> >>>>       catch (Exception e) {
> >>>>           System.out.println("Error in query execution: " +
> >>>> e.toString());
> >>>>           e.printStackTrace();
> >>>>       }
> >>>>
> >>>>   }
> >>>>
> --------------------------------------------------------------------------
> >>>> ---------------------------------
> >>>>
> >>>> My question is:
> >>>>
> >>>> * Is there any Jena version that can execute Aggregate function like
> >>>> count,
> >>>> sum etc?
> >>>>
> >>>> -
> >>>> Regards
> >>>> Mizanur
> >>>> NII, Japan
> >>>
> >>>
> >>>
> >>>
> >>
> >
>
>


-- 

*Md Mizanur Rahoman*
PhD Candidate
The Graduate University for Advanced Studies
National Institute of Informatics
2-1-2 Hitotsubashi, Chiyoda-ku,
Tokyo 101-8430, Japan.
Cell # +81-80-4802-5848
Email: [email protected]
Web: https://sites.google.com/site/mdmizanurrahoman/
Linked In: http://www.linkedin.com/pub/md-mizanur-rahoman/20/7b8/45a

Reply via email to