As indicated here and elsewhere, loading Wikidata into Virtuoso should simply be a matter of creating the turtle file (better is to have multiple turtle files) from the download and bulk loading it in. To get decent performance, a number of parameters have to be changed in virtuoso.ini.
There is a problem loading Wikidata into Virtuoso, however, due to a long-standing bug in Virtuoso having to do with its implementation of geo-coordinates. To get around this requires patching Virtuoso, and is not for the faint of heart.
Here are the instructions on what do to get the open-source version of Virtuoso to load Wikidata. Note that the patching of the geo-coordinate code might cause problems using the resultant KB.
1/ Patch the geo-coordinate literal code, editing virtuoso-opensource/libsrc/Wi/rdfbox.c to comment out two pieces of code that check for non-terrestrial coordinates. Note that this is a bug in Virtuoso and that Wikidata conforms to the specification of this datatype.
/*non-terrestrial cooordinates if (RDF_BOX_GEO_TYPE == type && DV_GEO != box_dtp && DV_LONG_INT != box_dtp)
sqlr_new_error ("42000", "RDFGE", "RDF box with a geometry RDF type and a non-geometry content"); */
/*non-terrestrial cooordinates if (type == RDF_BOX_GEO && box_dtp != DV_GEO)
sqlr_new_error ("22023", "SR559", "The RDF box of type geometry needs a spatial object as a value, not a value of type %s (%d)", dv_type_title (box_dtp), box_dtp); */
2/ Patch the Turtle loader, editing the end of rdf_rl_lang_id in virtuoso-opensource/libsrc/Wi/ttlpv.sql to look as follows. Note that this is another bug in Virtuoso that is triggered by parallel loading of langstrings with different languages.
id:= sequence_next ('RDF_LANGUAGE_TWOBYTE', 1, 1);
--pfps insert into rdf_language (rl_twobyte, rl_id) values (id, ln);
insert soft rdf_language (rl_twobyte, rl_id) values (id, ln);
commit work; -- if load non transactional, this is still a sharpp transaction boundary.
log_enable (old_mode, 1);
--pfps get the actual id, as it may be different
id := (select RL_TWOBYTE from DB.DBA.RDF_LANGUAGE where RL_ID = ln);
rdf_cache_id ('l', ln, id);
return id;