Hi William,

I've adapted some of the example routines for doing an nquads dump
and load, the recipe is here:

   https://bitbucket.org/ww/virtuoso/src/tip/sql/nq_dump.sql

One thing that I encountered is there seems to be no good way to
tell if a variable is a blank node from within a stored procedure,
I had to resort to printing it into a temporary buffer using
http_nt_object and checking if it starts with a 'b'. This is
important because nquads, unlike ntriples, wants blank nodes to
start with '_:'.

I think you can use the function:

    is_bnode_iri_id (val)

which will return 1 if it is a bnode, else 0




So it's slightly kludgy but it works. However I believe I may
have found a bug in rdfbox.c, the function http_nt_write_obj().
This only seems to surface with terms that have xsd:gYear as
datatype, but it seems like both the case statement and the
switch below it obtain, causing the datatype to be printed out
twice.

So we get output like this:

<http://bnb.bibliographica.org/entry/GB5001806> <http://purl.org/dc/terms/issued > "1950-01-01T00:00:00Z"^^<http://www.w3.org/2001/XMLSchema#gYear>^^<http://www.w3.org/2001/XMLSchema#gYear >
 <http://bnb.bibliographica.org/entry/GB5001806> .

(all on one line, obviously).

If I have identified the bug correctly, hopefully there is still
time for a fix to make it into the next opensource release?

Thank you for reporting this. I will make sure it is fixed in the upcoming release.


Patrick
----
OpenLink Software

Reply via email to