When literals get OIDs from being loaded from N3, they will be added to the literalsToOID hash with any escaped characters, \n``\t``"``\b``\r``\, de-referenced.
Consider this triple, stored in a text file:
<http://foo> <http://bar> "baz\nbaz" .
loaded like this:
var triple;
$.get("sample.n3", function(txt){ triple = txt });
then added to a store like this:
store.load('text/turtle', triple, function(){})
There is no way whatsoever to delete this data with SPAR*L:
Whereas if the same triple is loaded via SPAR*L, it's fine:
store.execute('INSERT DATA {' + triple + '}', function(){})
store.execute('DELETE DATA {' + triple + '}', function(){})
My work around is to manually transform incoming n3 to SPAR*L. I am not supporting the python-like """ string format, but it is good enough, I guess, as I control how they are constructed, but this seems like a pretty tough thing to handle if you don't control both sides.
When literals get OIDs from being loaded from N3, they will be added to the literalsToOID hash with any escaped characters,
\n``\t``"``\b``\r``\
, de-referenced.Consider this triple, stored in a text file:
loaded like this:
then added to a store like this:
There is no way whatsoever to delete this data with SPAR*L:
Whereas if the same triple is loaded via SPAR*L, it's fine:
My work around is to manually transform incoming n3 to SPAR*L. I am not supporting the python-like
"""
string format, but it is good enough, I guess, as I control how they are constructed, but this seems like a pretty tough thing to handle if you don't control both sides.