Hi Hugh,

In your example, you have this query:
SELECT  ?s WHERE   { ?s  base:name  "test_sensor" };

But the data is:
s o datatype LONG VARCHAR LONG VARCHAR LONG VARCHAR
_______________________________________________________________________________
http://base.org#xxxxx1 test_sensor http://www.w3.org/2001/XMLSchema#string


Would you expect a query for string literals to return xsd typed strings? I've always found that filtering or querying over string literals would not be successful unless everything was very carefully typed.

I note that Jason tried xsd types in his queries in the first instance, so that's probably not actually the issue here.
--
Regards,
Quentin Serrurier.
GuidingHand.Solutions

On 2018-01-25 07:34, Hugh Williams wrote:
Hi Jason,

I have been able to compile and run your program and can see the problem:

De-iMac-232:virtuoso_driver hwilliams$ javac -classpath
".:../lib-3.3.0/commons-lang3-3.4.jar:../lib-3.3.0/jena-arq-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-iri-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-base-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-core-3.3.0-SNAPSHOT.jar:../../../libsrc/JDBCDriverType4/virtjdbc4.jar:../virt_jena3.jar:../lib-3.3.0/jcl-over-slf4j-1.7.21.jar:../lib-3.3.0/log4j-1.2.17.jar:../lib-3.3.0/slf4j-api-1.7.21.jar:../lib-3.3.0/slf4j-log4j12-1.7.21.jar:../lib-3.3.0/xercesImpl-2.11.0.jar:../lib-3.3.0/xml-apis-1.4.01.jar:../lib-3.3.0/jena-shaded-guava-3.3.0-SNAPSHOT.jar:../lib-3.3.0/libthrift-0.9.3.jar:../lib-3.3.0/sparql-generate-jena-1.0.jar:../lib-3.3.0/jena-arq-3.3.0-SNAPSHOT.jar:../lib-3.3.0/httpclient-4.5.2.jar:../lib-3.3.0/httpclient-cache-4.5.2.jar"
Tester.java
De-iMac-232:virtuoso_driver hwilliams$ java -classpath
".:../lib-3.3.0/commons-lang3-3.4.jar:../lib-3.3.0/jena-arq-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-iri-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-base-3.3.0-SNAPSHOT.jar:../lib-3.3.0/jena-core-3.3.0-SNAPSHOT.jar:../../../libsrc/JDBCDriverType4/virtjdbc4.jar:../virt_jena3.jar:../lib-3.3.0/jcl-over-slf4j-1.7.21.jar:../lib-3.3.0/log4j-1.2.17.jar:../lib-3.3.0/slf4j-api-1.7.21.jar:../lib-3.3.0/slf4j-log4j12-1.7.21.jar:../lib-3.3.0/xercesImpl-2.11.0.jar:../lib-3.3.0/xml-apis-1.4.01.jar:../lib-3.3.0/jena-shaded-guava-3.3.0-SNAPSHOT.jar:../lib-3.3.0/libthrift-0.9.3.jar:../lib-3.3.0/sparql-generate-jena-1.0.jar:../lib-3.3.0/jena-arq-3.3.0-SNAPSHOT.jar:../lib-3.3.0/httpclient-4.5.2.jar:../lib-3.3.0/httpclient-cache-4.5.2.jar"
Tester
log4j:WARN No appenders could be found for logger (Jena).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig
for more info.
failed!
De-iMac-232:virtuoso_driver hwilliams$

In fact turning Virtuoso tracing on (with the “trace_on();” function)
I see the query being run against Virtuoso by the Jena layer is:

        SPARQL define input:default-graph-uri <testGraph>  PREFIX  xsd:
<http://www.w3.org/2001/XMLSchema#> PREFIX  base: <http://base.org#>
SELECT  ?s WHERE   { ?s  base:name  "test_sensor" };

which when I run against “isql”  also returns no results:

SQL> SPARQL define input:default-graph-uri <testGraph>  PREFIX  xsd:
<http://www.w3.org/2001/XMLSchema#> PREFIX  base: <http://base.org#>
SELECT  ?s WHERE   { ?s  base:name  "test_sensor" };
s
LONG VARCHAR
_______________________________________________________________________________


0 Rows. -- 2 msec.
SQL>

Nor does even:

SQL> SPARQL define input:default-graph-uri <testGraph>  PREFIX  xsd:
<http://www.w3.org/2001/XMLSchema#> PREFIX  base: <http://base.org#>
SELECT  ?s WHERE   { ?s  ?p  "test_sensor" };
s
LONG VARCHAR
_______________________________________________________________________________


0 Rows. -- 2 msec.
SQL>

But the following does:

SQL> SPARQL define input:default-graph-uri <testGraph>  PREFIX  xsd:
<http://www.w3.org/2001/XMLSchema#> PREFIX  base: <http://base.org#>
SELECT  ?s WHERE   { ?s  ?p  ?o };
s
LONG VARCHAR
_______________________________________________________________________________

http://base.org#xxxxx1
http://base.org#xxxxx2

2 Rows. -- 5 msec.
SQL>

Which is strange as my  test case does work with the same type of
query and both literal values are string types:

SQL> SPARQL define input:default-graph-uri <testGraph>  PREFIX  xsd:
<http://www.w3.org/2001/XMLSchema#> PREFIX  base: <http://base.org#>
SELECT  ?s ?o ?datatype WHERE   { ?s  ?p  ?o . BIND (DATATYPE(?o) as
?datatype)};
s
           o
                      datatype
LONG VARCHAR
           LONG VARCHAR
                      LONG VARCHAR
_______________________________________________________________________________

http://base.org#xxxxx1
           test_sensor
                      http://www.w3.org/2001/XMLSchema#string
http://base.org#xxxxx2
           test_sensor
                      http://www.w3.org/2001/XMLSchema#string

2 Rows. -- 11 msec.
SQL>

SQL> SPARQL PREFIX base: <base> SELECT ?s ?o ?datatype FROM <koh>
WHERE {?s ?p ?o . BIND (DATATYPE(?o) as ?datatype)};
s
           o
                      datatype
LONG VARCHAR
           LONG VARCHAR
                      LONG VARCHAR
_______________________________________________________________________________

1
           sensor1
                      http://www.w3.org/2001/XMLSchema#string

1 Rows. -- 6 msec.
SQL>

Will have to look into this further ...

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 24 Jan 2018, at 21:42, Jason Koh <jb...@eng.ucsd.edu> wrote:

Dear Hugh and the community,

I have created a regenerator repository: https://github.com/jbkoh/virtjena_regenerator

If available, please review the problem. I think it's the problem of Virt Jena, your feedback would be much useful for me to write the right code.

Thanks!


With regards,
Jason Koh
cseweb.ucsd.edu/~jbkoh

On Tue, Jan 23, 2018 at 12:50 PM, Jason Koh <jb...@eng.ucsd.edu> wrote:
Forgot to clarify the configuration:

Ubuntu 16.04 (64bit)
Virtuoso 7.2.4.2
Virtuoso Jean: virt_jena3
Virtuodo JDBC: virtjdbc4
Java: openjdk version "1.8.0_151"

Thank you.


With regards,
Jason Koh
cseweb.ucsd.edu/~jbkoh

On Tue, Jan 23, 2018 at 12:46 PM, Jason Koh <jb...@eng.ucsd.edu> wrote:
Here's the Java code snippet not working:
```java
String nameStr = "test_sensor1";
String BASE = "http://base.org#";;
String uuid = "xxxxx";
Node name = NodeFactory.createLiteralByValue(nameStr, XSDstring);
Node point = NodeFactory.createURI(BASE + uuid);
Node hasName = NodeFactory.createURI(BASE + "name");
graph.add(new Triple(point, hasName, name));
String qStr =
    "PREFIX base: <http://base.org#>\n" +
    "SELECT ?s WHERE {\n" +
    "?s base:name \"test_sensor1\" . \n" +
    "}";
Query sparql = QueryFactory.create(qStr);
VirtuosoQueryExecution vqd = VirtuosoQueryExecutionFactory.create(sparql, graph);
ResultSet results = vqd.execSelect();
while (results.hasNext()) {
  QuerySolution result = results.nextSolution();
  System.out.println(result.get("s").toString());
}
System.out.println("Done");
  }
```

The value ``results`` is empty and this code does not print anything. I can make a regenerator. Let me know if that helps.


With regards,
Jason Koh
cseweb.ucsd.edu/~jbkoh

On Tue, Jan 23, 2018 at 12:16 PM, Jason Koh <jb...@eng.ucsd.edu> wrote:
Hi Hugh,

I inserted the tripled through Virtuoso Jena and I can see triples like
``ex:xxxx    base:name    test_sensor0``
when I query just with ?s ?p ?o. However, I don't get any result with ``?s base:name "test_sensor0"``.

As you showed, it works with command line insertions. Let me verify the source of the problem once again and come back.

Thank you!


With regards,
Jason Koh
cseweb.ucsd.edu/~jbkoh

On Tue, Jan 23, 2018 at 3:17 AM, Hugh Williams <hwilli...@openlinksw.com> wrote:
Hi Jason,

What exactly is not working for you ? As the following works for me:

SQL> SPARQL PREFIX base: <base> INSERT DATA { GRAPH <koh> { <1> base:name "sensor1" . } };

Done. -- 1 msec.
SQL> SPARQL SELECT * FROM <koh> WHERE {?s ?p ?o};
s p o LONG VARCHAR LONG VARCHAR LONG VARCHAR
_______________________________________________________________________________

1 basename sensor1

1 Rows. -- 2 msec.
SQL> SPARQL PREFIX base: <base> SELECT ?s {?s base:name "sensor1"};
s
LONG VARCHAR
_______________________________________________________________________________

1

1 Rows. -- 1 msec.
SQL> SPARQL PREFIX base: <base> SELECT ?g ?s {GRAPH ?g {?s base:name "sensor1"}}; g s LONG VARCHAR LONG VARCHAR
_______________________________________________________________________________

koh 1

1 Rows. -- 1 msec.
SQL>


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 23 Jan 2018, at 09:58, Jason Koh <jb...@eng.ucsd.edu> wrote:
>
> Hi Kingsley,
>
> Thanks for the prompt response. I just tried it and it works well. I haven't 
compared the performance yet but wish the string match is faster.
>
> However, I am having trouble querying with the String Literal with SPARQL. 
The following query does not work for Virtuoso.
> ```sparql
> select ?s {
>   ?s base:name "sensor1". # also tried "sensor1"^^xsd:string but the same 
result.
> }
> ```
> This query returns empty result.
>
> If I query with no pattern (?s ?p ?o), I can see the following triple:
> :xxxx base:name "sensor1",
>
> Can't sort out the problem. Do you have any ideas on this?
>
> Thank you!
>
>
>
>
>
> With regards,
> Jason Koh
> cseweb.ucsd.edu/~jbkoh
>
> On Mon, Jan 22, 2018 at 2:52 PM, Kingsley Idehen <kide...@openlinksw.com> 
wrote:
> On 1/22/18 5:11 PM, Jason Koh wrote:
>> Hi there,
>>
>> I am trying to use Virtuoso for metadata of city-scale sensor database. 
(metroinsight.io).
>>
>> I wonder if there is a way to optimize certain SPARQL query pattern. I often 
query this:
>> ```sparql
>> select ?s where {
>>   ?s base:name ex:mySensor1 .
>> }
>> ```
>>
>> I could optimize it by caching those with Redis or else, but I wonder if I can force 
indexing "name" properties in Virtuoso.
>>
>> Thank you!
>>
>>
>> With regards,
>> Jason Koh
>> cseweb.ucsd.edu/~jbkoh
>
> Have you looked at text indexing in Virtuoso with regards to SPARQL?
> [1] http://docs.openlinksw.com/virtuoso/rdfsparqlrulefulltext/ .
> --
> Regards,
>
> Kingsley Idehen
> Founder & CEO
> OpenLink Software   (Home Page:
> http://www.openlinksw.com
> )
>
> Weblogs (Blogs):
> Legacy Blog:
> http://www.openlinksw.com/blog/~kidehen/
>
> Blogspot Blog:
> http://kidehen.blogspot.com
>
> Medium Blog:
> https://medium.com/@kidehen
>
>
> Profile Pages:
> Pinterest:
> https://www.pinterest.com/kidehen/
>
> Quora:
> https://www.quora.com/profile/Kingsley-Uyi-Idehen
>
> Twitter:
> https://twitter.com/kidehen
>
> Google+:
> https://plus.google.com/+KingsleyIdehen/about
>
> LinkedIn:
> http://www.linkedin.com/in/kidehen
>
>
> Web Identities (WebID):
> Personal:
> http://kingsley.idehen.net/public_home/kidehen/profile.ttl#i
>
>         :
> http://id.myopenlink.net/DAV/home/KingsleyUyiIdehen/Public/kingsley.ttl#this
>
>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Virtuoso-users mailing list
> Virtuoso-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! 
http://sdm.link/slashdot_______________________________________________
> Virtuoso-users mailing list
> Virtuoso-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users







------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to