Andy, 1 and 2 implemented. 3 was another issue with the testTriple() and has been fixed.
Tests were added. On Sat, Sep 20, 2014 at 6:50 PM, Andy Seaborne <[email protected]> wrote: > Hi Claude, > > 1/ Suggestion > if there is no addVar then the query defaults to SELECT *. > > 2/ Suggestion > Strip any trailing ":" from the prefix name so > .addPrefix(":", "http://example/") > works. > > 3/ I tried: > > SelectBuilder sb = new SelectBuilder() ; > sb.addVar("*") > .addPrefix("", "http://example/") > .addWhere(":S", "?p", "?o") ; > Query query = sb.build() ; > System.out.println(query) ; > > and got: > ----------------- > Exception in thread "main" java.lang.IllegalArgumentException: Predicate > (?p) must be a URI , variable, or a wildcard. > Is a prefix missing? Prefix must be defined before use. > > org.apache.jena.arq.querybuilder.handlers.WhereHandler.testTriple( > WhereHandler.java:124) > org.apache.jena.arq.querybuilder.handlers.WhereHandler.addWhere( > WhereHandler.java:129) > org.apache.jena.arq.querybuilder.SelectBuilder. > addWhere(SelectBuilder.java:194) > org.apache.jena.arq.querybuilder.SelectBuilder. > addWhere(SelectBuilder.java:206) > dev.QBuild.main(QBuild.java:34) > ----------------- > while > ("?s", "?p", "?o") works. > Andy > > > On 19/09/14 22:51, Claude Warren wrote: > >> I have added license and javadoc comments as well as a readme.md In >> addition the above mentioned bug is now fixed and addVar( "*" ) works as >> expected. >> >> On Fri, Sep 19, 2014 at 1:24 PM, Claude Warren <[email protected]> wrote: >> >> I started looking at it this AM. I think the proper solution is to >>> accept >>> "*" as a var in the selecthandler. I will look at it over the weekend >>> and >>> will add documentation (javadoc at least) >>> >>> >>> >>> On Fri, Sep 19, 2014 at 10:14 AM, Andy Seaborne <[email protected]> wrote: >>> >>> On 19/09/14 05:18, Bruno P. Kinoshita wrote: >>>> >>>> Hello Claude, >>>>> >>>>> I didn't understand what QueryBuilder was supposed to do at first, or >>>>> how to use it. Luckily there are tests in the project, kudos for >>>>> writing >>>>> those, very helpful. I liked the idea, and for users familiar with Java >>>>> Jooq, PHP and Ruby ActiveRecord that's definitely an intuitive API. >>>>> >>>>> In order to test it, I first created some dummy data. >>>>> >>>>> PREFIX foaf: <http://xmlns.com/foaf/0.1/> >>>>> PREFIX : <http://example.org/> >>>>> >>>>> INSERT DATA >>>>> { >>>>> :bruno foaf:name "Bruno" . >>>>> :jorge foaf:name "Jorge" . >>>>> :bruno :brotherOf :jorge >>>>> } >>>>> >>>>> Then I retrieved the data with a simple SELECT. >>>>> >>>>> PREFIX foaf: <http://xmlns.com/foaf/0.1/> >>>>> PREFIX : <http://example.org/> >>>>> >>>>> SELECT * >>>>> { >>>>> ?a ?b ?c >>>>> } >>>>> >>>>> --------------------------------- >>>>> | a | b | c | >>>>> ================================= >>>>> | :bruno | foaf:name | "Bruno" | >>>>> | :bruno | :brotherOf | :jorge | >>>>> | :jorge | foaf:name | "Jorge" | >>>>> --------------------------------- >>>>> >>>>> I tried to recreate the same query with QueryBuilder, but alas it >>>>> didn't >>>>> work. I have probably made something really stupid [1]. My output is >>>>> always: >>>>> >>>>> PREFIX : <http://example.org/> >>>>> PREFIX foaf: <http://xmlns.com/foaf/0.1/> >>>>> >>>>> WHERE >>>>> { ?a ?b ?c . } >>>>> >>>>> I just wanted to validate that I could recreate the same query with >>>>> QueryBuilder. But I couldn't figure how that works. Looking at >>>>> WhereClauseTest, I thought that addVar("*") would result in "SELECT >>>>> *". The >>>>> prefixes is not keeping the order it was added, thus that's probably >>>>> not an >>>>> issue. >>>>> >>>>> The SelectBuilder throws ParseException, which extends Exception. I >>>>> think **if** the Query Builder is supposed to be used by programmers >>>>> for >>>>> writing their Web applications or similar, then perhaps it could >>>>> extend a >>>>> RuntimeException? >>>>> >>>>> Just my 0.002 cents >>>>> >>>>> Thanks >>>>> Bruno >>>>> >>>>> [1] https://gist.github.com/kinow/b50a5d3b875f2155b7bb >>>>> >>>>> >>>> Ditto. >>>> >>>> (I have just pushed a fix to Wherehandler.testTriple.) >>>> >>>> Andy >>>> >>>> >>>> >>>> >>> >>> -- >>> I like: Like Like - The likeliest place on the web >>> <http://like-like.xenei.com> >>> LinkedIn: http://www.linkedin.com/in/claudewarren >>> >>> >> >> >> > -- I like: Like Like - The likeliest place on the web <http://like-like.xenei.com> LinkedIn: http://www.linkedin.com/in/claudewarren
