Hi everybody.

I am executing a SPARUL query in a large graph (over 150M triples):

SPARQL DEFINE sql:log-enable 3
WITH <graph>
DELETE { ?s ?p ?o}
INSERT {?s ?p ?newLabel}
WHERE {?s ?p ?o .
       FILTER (isLiteral(?o) && REGEX(STR(?o),"some_string:","i")) .
       BIND(REPLACE(STR(?o), "some_string:", "", "i") as ?newLabel) }

After an hour or two, I get the following error:

*** Error 42000: [Virtuoso Driver][Virtuoso Server]CL...: The array extend
1048576 is less than requested 1310721

Googling the above error, I found a suggestion of splitting the above query
using a limit. However, it seemed that the limit was so small that this is
not an option. Please note that I run on a 32GB, 8x VM.

My questions:
1. Is there some kind of setting in virtuoso.ini that could change this
behaviour?
2. As you can see from the above query, all I am trying to do is a replace
operation on literals. Is there an alternative more efficient way to do it?
e.g. using direct SQL or refactoring the SPARUL query somehow? Perhaps I
missed something...

Kind regards,
Pantelis Natsiavas
------------------------------------------------------------------------------
_______________________________________________
Virtuoso-users mailing list
Virtuoso-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to