Hi Lourens,

We have been able to recreate this issue in-house with the sample program you provided and are looking into it. I shall report back when an update is available ...

Best Regards
Hugh Williams
Professional Services
OpenLink Software
Web: http://www.openlinksw.com
Support: http://support.openlinksw.com
Forums: http://boards.openlinksw.com/support
Twitter: http://twitter.com/OpenLink

On 7 Nov 2009, at 19:11, Lourens van der Meij wrote:

Hi,
I am having the following problem:
Using the latest 5.0.12 version I do:
sparql insert into graph <gr> { <http://id>
<http://www.w3.org/2004/02/skos/core#prefLabel> 'test eng1'@nl .}
sparql PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
SELECT ?value from <gr>
WHERE {<http://id> skos:prefLabel ?value. FILTER
regex(str(?value),"test","i")}

through the jdbc4 driver from java and I get no results when expecting them.

The query without the "i" argument does give the correct result.

I get the correct result with the "i" option when testing through isql
and the 8890/sparql connection.

I add the java code illustrating this problem:

On my installation the first query gives 1 result.
The second query gives 0 results.

Could you tell me what is wrong?

Thanks,

Lourens

==============TestRegex.java========================
   import java.sql.*;
   import virtuoso.jdbc4.*;

   public class TestRegex {
       public static void main(String argv[]) {
           try {
               String urlDB =
"jdbc:virtuoso://localhost:1111/charset=UTF-8";
               Class.forName("virtuoso.jdbc4.Driver");
               Connection conn =
DriverManager.getConnection(urlDB,"dba","dba");

               Statement st = conn.createStatement();
               st.execute("sparql clear graph <gr>");
               st.execute("sparql insert into graph <gr> { <http://id>
<http://www.w3.org/2004/02/skos/core#prefLabel> 'test eng1'@nl .}");
               System.out.println("##### exec query regex without
i###############");
               String query1 = "sparql PREFIX skos:
<http://www.w3.org/2004/02/skos/core#> \nSELECT ?value from <gr> \nWHERE {<http://id> skos:prefLabel ?value. FILTER regex(str(?value),\"test \")}";
               System.out.println("Running query:\n"+query1);
               execQuery(st,query1);
               System.out.println("##### exec query regex with
i###################");
               String query2 = "sparql PREFIX skos:
<http://www.w3.org/2004/02/skos/core#> \nSELECT ?value from <gr> \nWHERE
{<http://id> skos:prefLabel ?value. FILTER
regex(str(?value),\"test\",\"i\")}";
               System.out.println("Running query:\n"+query2);
               execQuery(st,query2);
               conn.close();
           } catch (Exception e) {
               System.out.println(e);

System.out.println ("===========================================================");
               e.printStackTrace();
           }
       }


     public static void execQuery(Statement st, String query) throws
SQLException
     {
         ResultSet rs;
         ResultSetMetaData rsmd;

         rs = st.executeQuery(query);
         rsmd = rs.getMetaData();
if (rsmd == null) System.out.println("getMetaData() == NULL");
         int results = 0;
         while(rs.next()) {
             Object o;

System.out.println(" ============= < ROW > ============ ");
             for (int i = 1; i <= rsmd.getColumnCount(); i++) {
                 results++;
                 String s = rs.getString(i);
                 o = rs.getObject(i);
                 if (rs.wasNull())
                     System.out.println(i+" ==> NULL");
                 else
                 {
                     if (o instanceof VirtuosoExtendedString)
                     {
                         VirtuosoExtendedString vs =
(VirtuosoExtendedString)o;
                         System.out.print("VirtuosoExtendedString:
[iri="+vs.iriType+"]");
                     }
                     else if (o instanceof VirtuosoRdfBox)
                     {
                         VirtuosoRdfBox rb = (VirtuosoRdfBox)o;
                         System.out.print("VirtuosoRdfBox:[rdf="+rb+";
type="+rb.getType()+";lang="+rb.getLang()+"]");
                     }
                     else
                     {
                         System.out.print("      |");
                         System.out.print(""+o.getClass()+"|");
                     }
                     System.out.println(" ==> ["+ o + "]");
                 }
             }
         }
         System.out.println("got "+results + " results");
     }
}

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


Reply via email to