On 20/09/14 21:27, Claude Warren wrote:
Andy,

1 and 2 implemented.

Off by one error :-)

SelectBuilder sb = new SelectBuilder() ;
sb.addPrefix("abcd:", "http://example/";) ;
Query query = sb.build() ;
System.out.println(query) ;

==> PREFIX  abc:  <http://example/>

and

.addPrefix(":", "http://example/";) ;
==>
"String index out of range"


In
private String canonicalPfx(String x) {
        if (x.endsWith(":"))
                return x.substring(0, x.length() - 1);
        return x;
}

-1 (it was -2)

        Andy

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









Reply via email to