Hi Florian,
You mentioning trying two approaches to dumping the data but only provide
details of one below, what is the other method you tried and did this work ?
The "isctype.c" , error appears to be quite common on windows machines
searching on google and implies that a character is being passed to the
function that out side the 255 ANSI character range. Thus does any of the data
you are dumping contain non-ASCII characters outside the 255 range ?
You can check the number of triples in your Virtuoso server by running the
command:
select count(*) from <graph-name> where {?s ?p ?o}
Is it possible to provide some sample data we can use to attempt recreation of
this problem ?
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 13 Sep 2010, at 09:33, Florian Kleedorfer wrote:
> Hi Hugh,
>
> I'm running Virtuoso Version: 06.01.3127, Build: Jul 9 2010 on Windows XP
> Professional, version 2002, Service Pack 3
>
> I tried two approaches for dumping the rdf data:
> 1. dump_one_graph(<graph_iri>,<outfile>,<size)
> approx. 30MB of rdf data were dumped before a window opens saying that an
> assertion failed:
> Program: [virtuoso-home]/bin/virtuoso-t.ext
> File: [virtuoso-home]/bin/isctype.c
> Line: 56
> Expression: (unsigned)(c+1) <= 256
>
> Clicking 'retry', 'ignore' and 'abort' all lead to a server crash. in the
> isql window, this message is shown:
>
> *** Error 08S01: [OpenLink][Virtuoso ODBC Driver]CL065: Lost connection to
> server
> at line 1 of Top-Level:
> dump_one_graph(<graph_iri>,'dump.ttl',100000000)
>
> After that, the server is dead and needs to be restarted. I'm not aware of a
> core dump file.
>
> virtuoso.ini and virtuoso.log files are attached.
>
> I don't know how I query for the number of triples in a graph, so that piece
> of information is missing for now.
>
> Thanks,
> Florian
>
>
> On 11.9.2010 02:01, Hugh Williams wrote:
>> Hi Florian,
>>
>> How many triples are loaded into the Virtuoso database you are attempting to
>> dump the contents of ? Can you please provide a copy of the virtuoso.ini and
>> virtuoso.log files for analysis. When you say the server crashes is a core
>> file created also ?
>>
>> What is the version number of your virtuoso installation , run the command
>> virtuoso-t -? to determine the version or the conductor reports this is the
>> left hand frame ?
>>
>> 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 10 Sep 2010, at 15:40, Florian Kleedorfer wrote:
>>
>>> Hi Hugh,
>>>
>>>
>>> The query runs without a problem now, and I don't know why.
>>> Here's what I have done since my last mail:
>>> * Trying to create an rdf dump as described in
>>> http://docs.openlinksw.com/virtuoso/rdfperformancetuning.html, 16.11.4 and
>>> 16.11.5, caused the server to crash several times (I was hoping to export
>>> the rdf data sponged by virtuoso and import it into a native sesame
>>> repository, and continue with that)
>>> * I ran the query I sent you before from the conductor's sparql panel,
>>> prepending this line (found in 16.11.6):
>>>
>>> define sql:select-option "order, loop"
>>>
>>> and now it works, even if I leave that line out.
>>>
>>>
>>> here's the output of the explain() function.
>>>
>>>
>>> Query result:
>>> REPORT
>>> VARCHAR
>>> {
>>> END Node
>>>
>>> After test:
>>> 0: if (<constant (0)> 1(=)<constant (1)>) then 9 else 4 unkn 9
>>> 4: if (<constant (0)> 1(=)<constant (1)>) then 9 else 8 unkn 9
>>> 8: BReturn 1
>>> 9: BReturn 0
>>>
>>> Precode:
>>> 0: $26 "callret" := Call min_bnode_iri_id ()
>>> 5: $27 "callret" := Call DB.DBA.RDF_OBJ_OF_SQLVAL (<constant (1)>)
>>> 12: BReturn 0
>>> from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 0.26 rows
>>> Key RDF_QUAD_POGS ASC ($30 "t2.S", $29 "t2.O")
>>> inlined<col=551 P =<constant (#i3600002)>>
>>> row specs:<col=549 G =<constant (#i1053096)>>
>>> Local Test
>>> 0: if (<constant (0)> 1(=)<constant (1)>) then 5 else 4 unkn 5
>>> 4: BReturn 1
>>> 5: BReturn 0
>>>
>>> from DB.DBA.RDF_QUAD by RDF_QUAD_POGS 2.5 rows
>>> Key RDF_QUAD_POGS ASC ($35 "t3.G", $34 "t3.S")
>>> <col=551 P =<constant (#i1)>> ,<col=552 O = $30 "t2.S">
>>> 0
>>>
>>> from DB.DBA.RDF_QUAD by RDF_QUAD_POGS Unique
>>> Key RDF_QUAD_POGS ASC ($40 "t1.O", $39 "t1.S")
>>> <col=551 P =<constant (#i1053097)>> ,<col=552 O = $27 "callret">
>>> ,<col=549 G =<constant (#i1053096)>> ,<col=550 S = $35 "t3.G">
>>> row specs:<col=550 S< $26 "callret">
>>> Local Test
>>> 0: $43 "callret" := Call isiri_id ($40 "t1.O")
>>> 5: $44 "temp" := artm<constant (1)> - $43 "callret"
>>> 9: if (<constant (0)> 1(=) $44 "temp") then 14 else 13 unkn 14
>>> 13: BReturn 1
>>> 14: BReturn 0
>>>
>>>
>>> Precode:
>>> 0: $45 "ind" := Call __id2i ($34 "t3.S")
>>> 5: $46 "ctx" := Call __ro2sq ($29 "t2.O")
>>> 10: $47 "type" := Call __id2i ($30 "t2.S")
>>> 15: $48 "g1" := Call __id2i ($39 "t1.S")
>>> 20: BReturn 0
>>> local save: ($61 "set_ctr", $70 "set_no_save")
>>> cluster outer seq start, set no $61 "set_ctr"
>>> save ctx:()
>>> from DB.DBA.RDF_QUAD by RDF_QUAD_SP 3.2 rows
>>> Key RDF_QUAD_SP ASC ($50 "t5.P")
>>> inlined<col=550 S = $34 "t3.S">
>>>
>>> from DB.DBA.RDF_QUAD by RDF_QUAD 1.6 rows
>>> Key RDF_QUAD ASC ($54 "t5.O")
>>> inlined<col=551 P = $50 "t5.P"> ,<col=550 S = $34 "t3.S">
>>> row specs:<col=549 G = $39 "t1.S"> ,<col=549 G = $35 "t3.G">
>>>
>>>
>>> After test:
>>> 0: $57 "callret" := Call __ro2sq ($54 "t5.O")
>>> 5: $58 "callret" := Call DB.DBA.RDF_LANGUAGE_OF_OBJ ($57 "callret")
>>> 12: $59 "callret" := Call DB.DBA.RDF_LANGMATCHES ($58 "callret",<constant
>>> (en)>)
>>> 19: if (<constant (0)> 1(=) $59 "callret") then 24 else 23 unkn 24
>>> 23: BReturn 1
>>> 24: BReturn 0
>>> end of outer seq $61 "set_ctr"
>>> out: ($50 "t5.P", $59 "callret", $58 "callret", $54 "t5.O", $57 "callret")
>>>
>>> After code:
>>> 0: $71 "correctLangProp" := Call __id2i ($50 "t5.P")
>>> 5: $72 "correctLangVal" := Call __ro2sq ($54 "t5.O")
>>> 10: BReturn 0
>>> Select (TOP<constant (10)>) ($48 "g1", $47 "type", $46 "ctx", $45 "ind",
>>> $71 "correctLangProp", $72 "correctLangVal",<$56 "<DB.DBA.RDF_QUAD t5>"
>>> spec 5>,<$52 "<DB.DBA.RDF_QUAD t5>" spec 5>,<$41 "<DB.DBA.RDF_QUAD t1>"
>>> spec 4>,<$37 "<DB.DBA.RDF_QUAD t3>" spec 5>,<$32 "<DB.DBA.RDF_QUAD t2>"
>>> spec 5>)
>>> }
>>> No. of rows in result: 74
>>>
>>> On 10.9.2010 15:35, Hugh Williams wrote:
>>>> Hi Florian,
>>>>
>>>> Can you please provide the compilation and query execution plan for this
>>>> query using the Virtuoso explain() function as detailed at:
>>>>
>>>> http://docs.openlinksw.com/virtuoso/fn_explain.html
>>>>
>>>> Note you will need to run this function from the Virtuoso "isql" command
>>>> line program or the "Interactive SQL" interface of the conductor (not the
>>>> sparql one) remembering to prepend your query with the "sparql ..."
>>>> keyword specifier.
>>>>
>>>> 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 10 Sep 2010, at 13:13, Florian Kleedorfer wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I'm having problems with a SPARQL query I need to run on virtuoso. The
>>>>> sparql engine returns this error message (with a simplified version of my
>>>>> query):
>>>>>
>>>>> 37000 Error SP031: SPARQL compiler: Internal error: The SPARQL optimizer
>>>>> has failed to process the query with reasonable quality. The resulting
>>>>> SQL query is abnormally long. Please paraphrase the SPARQL query.
>>>>>
>>>>> SPARQL query:
>>>>> PREFIX owl:
>>>>> PREFIX sc:
>>>>> PREFIX common:
>>>>> PREFIX config:
>>>>> PREFIX xsd:
>>>>> select *
>>>>> FROM config:
>>>>> where {
>>>>> ?g1 common:useGraph "true"^^xsd:boolean
>>>>> . ?type common:resultForContext ?ctx
>>>>> . GRAPH ?g1 {
>>>>> ?ind a ?type
>>>>> . OPTIONAL {
>>>>> ?ind ?correctLangProp ?correctLangVal
>>>>> . filter(langMatches(lang(?correctLangVal),"en"))
>>>>> }
>>>>> }
>>>>> } limit 10
>>>>>
>>>>>
>>>>> The idea is to have a named graph (config: in this query) that contains
>>>>> the names of graphs which in turn contain the data I want to work on.
>>>>> This works fine unless I use optional graph patterns to select from a
>>>>> graph IRI found in the config: graph (?g1 in this query). I tried
>>>>> different reformulations of the query, but I had no luck.
>>>>>
>>>>> Any ideas, anyone? - Thanks!
>>>>>
>>>>> Best,
>>>>> Florian
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Automate Storage Tiering Simply
>>>>> Optimize IT performance and efficiency through flexible, powerful,
>>>>> automated storage tiering capabilities. View this brief to learn how
>>>>> you can reduce costs and improve performance.
>>>>> http://p.sf.net/sfu/dell-sfdev2dev_______________________________________________
>>>>> Virtuoso-users mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users
>>
>
> <virtuoso.ini><virtuoso.log>------------------------------------------------------------------------------
> Start uncovering the many advantages of virtual appliances
> and start using them to simplify application deployment and
> accelerate your shift to cloud computing
> http://p.sf.net/sfu/novell-sfdev2dev
> _______________________________________________
> Virtuoso-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/virtuoso-users