On 13.9.2010 18:19, Hugh Williams wrote:
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 other approach I tried for dumping data used the RDF_QM_TREE_DUMP procedure, with this result:

SQL> RDF_QM_TREE_DUMP('dump',<graph-iri>,NULL,NULL);
Connected to OpenLink Virtuoso
Driver: 06.01.3127 OpenLink Virtuoso ODBC Driver

*** Error 22023: [OpenLink][Virtuoso ODBC Driver][Virtuoso Server]The RDF QM schema object <http://www.openlinksw.com/schemas not exist, should be of type <http://www.openlinksw.com/schemas/virtrdf#QuadMap>
at line 1 of Top-Level:
RDF_QM_TREE_DUMP('dump',<graph-iri>,NULL,NULL)

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 ?
Yes. The data is crawled/sponged from dbpedia, freebase, and other sources. The partial dump (the first ~30 MB) contains a number of UTF-8 encoded data. The last output triples are these

dbpedia:Emanuel_Pogatetz        rdfs:comment <comment>

in different languages, the last one being @ru, and according to the order they are returned when querying the repository, the next one should be @sv (which doesn't seem to have any chars > 255); Literals successfully dumped for this subject/predicate combination include @ru,@jp and @zh.

You can check the number of triples in your Virtuoso server by running the 
command:

        select count(*) from<graph-name>  where {?s ?p ?o}
I've done some more crawling since I had the sparql-problem. Now there are 1190468 triples in the graph.
Is it possible to provide some sample data we can use to attempt recreation of 
this problem ?
The dump problem only involves one graph, created entirely by the virtuoso crawler, starting with this target url:

http://rdf.freebase.com/rdf/en/football

following these RDF properties

http://www.w3.org/1999/02/22-rdf-syntax-ns#type
http://www.w3.org/2002/07/owl#sameAs
http://rdf.freebase.com/ns/sports.sport.teams
http://rdf.freebase.com/ns/sports.sport.leagues
http://rdf.freebase.com/ns/sports.sports_league.teams
http://rdf.freebase.com/ns/sports.sports_league_participation.team
http://rdf.freebase.com/ns/sports.sports_league_participation.league
http://rdf.freebase.com/ns/sports.sports_league_participation
http://rdf.freebase.com/ns/sports.sports_team.arena_stadium
http://rdf.freebase.com/ns/soccer.football_team.current_roster
http://rdf.freebase.com/ns/soccer.football_roster_position
http://rdf.freebase.com/ns/soccer.football_roster_position.player
http://rdf.freebase.com/ns/soccer.football_roster_position.team


Thanks for your help!
Best,
Florian

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



Reply via email to