Hi Lourens, This issue has not been resolved in the latest version, I have asked development to schedule to look into this. In terms of work arounds I am not sure how easily this can be done given the issue is only with case sensitive matches. Virtuoso does have its own bif:contains function for Free Text search, as detailed at:
http://docs.openlinksw.com/virtuoso/rdfsparqlrulefulltext.html#rdfsparqlrulefulltext Which may be of use if you have not seen it already ? 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 15 Dec 2009, at 10:25, Lourens van der Meij wrote: > > The problem with regex "i" not working through JDBC is still giving me > problems. In the long run I hope > we will be able to stop using JDBC, but now we really need the functionality. > Could it be that the problem has been solved in a recent version? > I do notice that the problem does not occur when accessing Virtuoso through > VSP. > > If the problem has not been solved could you point me to a work-around? I am > not fluent in > the internals of Virtuoso, but I suspect that it should be possible to define > a stored procedure > that does the sparql call and that I could call that procedure through jdbc? > I seem to remember that it should even be possible to call a user defined > stored procedure from within sparql. > Then, would it be possible to define such a procedure that does the > regex(?l,String,"i") without the bug? > > > Thanks, > > Lourens > > Hugh Williams wrote: >> 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 >> >