[Virtuoso-users] SPARQL query size limits (GET, POST, POST DIRECT)

2015-04-04 Thread Jörn Hees
Hi,

for my PhD (learning graph patterns for human associations) i'm currently 
experimenting with some sub-graphs that i need to match via SPARQL against a 
Virtuoso endpoint. The sub-graph sizes range from 30 to 400K triples and are 
automatically transformed into SPARQL queries (basically via N3).

I'm interested in the practical limits for queries via:
- GET
- POST
- POST DIRECT
in terms of bytes, chars and triples.

I noticed that there seems to be a 1 line limit for the SQL query that is 
the outcome of the SPARQL query. I'm not sure how SPARQL queries are translated 
into SQL lines though... is this triple wise (so max 1 triples) or term 
wise (so max 1/3 triples) or something else?

Experiments tell me that the GET method seems to have a ~1 byte limit 
(after urlencoding).

Sadly, I couldn't really test POST DIRECT, as on our local 7.1.0 endpoint even 
queries with ~150 triples (~18000 chars) seem to crash the endpoint :(
If i remove long literals (which also happen to contain a lot of unicode 
chars), the query doesn't return within 2 hours.
If i switch to POST query, i only get a Virtuoso 42000 Error SR483: Stack 
Overflow error, but the server keeps running at least...
If for POST queries i keep the urlencoded query size  1 bytes, it seems to 
work.

Running the POST DIRECT query against http://dbpedia.org/sparql results in an 
HTTP Error 409: Invalid path.
POST gives me Virtuoso 37000 Error SP031: SPARQL: Internal error: The length 
of generated SQL text has exceeded 1 lines of code
If I run the  1 byte POST it seems to work again...

Can anyone confirm my findings / give me a recommendation for how big a sane 
query can get?

Cheers,
Jörn


--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
___
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


[Virtuoso-users] Incorrect results with property paths using plus sign

2015-04-04 Thread Nicola Vitucci
Hi all,

I think that SPARQL queries using property paths which include the plus
sign yield incorrect results. This is what I get with the following
queries (number of results between brackets):

SELECT DISTINCT ?scl WHERE {wd:Q3336843 rdfs:subClassOf* ?scl} (25 rows)
SELECT DISTINCT ?scl WHERE {wd:Q3336843 rdfs:subClassOf+ ?scl} (4 rows)

SELECT DISTINCT ?scl WHERE {wd:Q3336843 rdfs:subClassOf{1,} ?scl} (24 rows)
SELECT DISTINCT ?scl WHERE {wd:Q3336843 rdfs:subClassOf{2,} ?scl} (20 rows)
SELECT DISTINCT ?scl WHERE {wd:Q3336843 rdfs:subClassOf{3,} ?scl} (17 rows)
...

This is the output of EXPLAIN on the first and second queries (the
latter 3 have apparently the same plan as the first one):


{

Precode:
  0: __all_eq := Call __all_eq ( #/Q3336843 )
  5: BReturn 0
Transitive dt dir 1, input: (__all_eq)
  input shadow: (ZÁ^D)
  output: (_::trans_obj_1_1)
{
RDF_QUAD   1.8 rows(s_1_4_t0.S, s_1_4_t0.O)
 inlined  P =  ##subClassOf  ,  S = k_ZÁ^D

After code:
  0: _::trans_subj_1_0 :=  := artm s_1_4_t0.S
  4: _::trans_obj_1_1 :=  := artm s_1_4_t0.O
  8: BReturn 0
Subquery Select(_::trans_subj_1_0, _::trans_obj_1_1)
}
Distinct (_::trans_obj_1_1)

After code:
  0: scl :=  := artm _::trans_obj_1_1
  4: BReturn 0
Subquery Select(scl)

After code:
  0: scl := Call __ro2sq (scl)
  5: BReturn 0
Select (scl)
}



{
RDF_QUAD 8 rows(s_1_2_t0.O)
 inlined  P =  ##subClassOf  ,  S =  #/Q3336843
Distinct (s_1_2_t0.O)

After code:
  0: scl :=  := artm s_1_2_t0.O
  4: BReturn 0
Subquery Select(scl)

After code:
  0: scl := Call __ro2sq (scl)
  5: BReturn 0
Select (scl)
}


Have you already encountered this issue? I'm using build
f609f14aa6bdb8ef29d4da038fdb7934c6ca65d7.

Thanks,

Nicola

--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
___
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users


[Virtuoso-users] virtuoso isql batch mode?

2015-04-04 Thread Morty
Is there some way to put virtuoso isql into a true batch mode?  Some
other database system command-line interfaces provide a batch mode
option that just displays results, not version banners, table headers,
or time information.  This is very handy for building scripts around.

I can sort-of emulate this in isql by setting:

set VERBOSE OFF;
set BANNER OFF;
set MESSAGE OFF;

But I still get the Connected to and Driver lines.  And I'm also
concerned that later versions could add new sources of information.
So it would be nice to have a command-line option that will set the
options necessary to script cleanly, both now and in the future.

Hopefully such a thing already exists, and I just didn't find it.  If
not, feature request: please implement such a mechanism.

Note: this is currently under virtuoso open source version 7.2.0,
under Linux.  The commercial version is not an option at this time.

- Morty

--
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
___
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users