Thanks Hugh I've been looking through my code again in detail to look at workarounds and here's some more information that might be relevant.
So it turns out we already use DB.DBA.TTLP when writing entire graphs to the store which works fine for blank nodes. The problem case is when we want to add/remove specific triples to a graph. We're using INSERT DATA and DELETE DATA which don't accept blank nodes, I may be wrong about the behavior having changed from previous versions and it may just be the case that we and our users never tested with adding/removing blank nodes via this means and so never saw the bug until now. Regardless of whether the behavior did change or not the question still remains what is the appropriate way to add/remove triples containing blank nodes via the ADO.Net Provider? The workaround I'm testing now for inserting new triples is to detect whether any of those triples contain blank nodes and if so use DB.DBA.TTLP instead of INSERT DATA. This still leaves me with the problem of how to delete triples with blank nodes, right now I'm resorting to throwing an error saying this isn't supported but I'd ideally like a better solution than that. The only way I can think of doing this right now (which is going to be terribly performant and not scalable) is to load the entire graph into memory, do the deletes in memory and then write the whole graph back to the store. Thanks, Rob From: Hugh Williams <hwilli...@openlinksw.com> List-Post: virtuoso-users@lists.sourceforge.net Date: Wednesday, May 23, 2012 9:46 AM To: Cray Employee <rve...@vdesign-studios.com> Cc: <virtuoso-us...@lists.sf.net> Subject: Re: [Virtuoso-users] Inserting Blank Nodes via ADO.Net Provider Hi Rob, We are checking this behaviour to see what might have changed, should have an update for you soon ... Best Regards Hugh Williams Professional Services OpenLink Software, Inc. // http://www.openlinksw.com/ 10 Burlington Mall Road, Suite 265, Burlington MA 01803 Weblog -- http://www.openlinksw.com/blogs/ LinkedIn -- http://www.linkedin.com/company/openlink-software/ Twitter -- http://twitter.com/OpenLink Google+ -- http://plus.google.com/100570109519069333827/ Facebook -- http://www.facebook.com/OpenLinkSoftware Universal Data Access, Integration, and Management Technology Providers On 23 May 2012, at 16:44, Rob Vesse wrote: > Hugh > > Some help with this would be much appreciated > > Rob > > From: Cray Employee <rve...@vdesign-studios.com> > Date: Monday, May 21, 2012 8:25 AM > To: <virtuoso-us...@lists.sf.net> > Subject: [Virtuoso-users] Inserting Blank Nodes via ADO.Net <http://ADO.Net> > Provider > > Hi All > > dotNetRDF uses the ADO.Net <http://ADO.Net> provider to talk to Virtuoso and > has always used a SPASQL INSERT DATA command to insert data into the quad > store. > > Up until a few versions ago this worked fine regardless of the data but a user > recently reported a bug that highlights that from at least 6.1.3 onwards and > certainly in 6.1.5 this method no longer accepts blank nodes. AFAICT this > appears to be due to Virtuoso starting to align more closely to the official > SPARQL 1.1 Update standard rather than the old SPARUL informal standard. > > Obviously I do not expect Virtuoso to revert to the previous behavior because > I would much rather have it align properly with the standard but I'm wondering > what is now the best way to insert data containing blank nodes via the ADO.Net > <http://ADO.Net> provider? > > Can I still use INSERT DATA and just use some special syntax for blank nodes > > E.g. > > <_:bnode> or <nodeID://bnode> > > Or do I need to use an alternative method like call DB.DBA.TTLP() ? > > Rob Vesse > ------------------------------------------------------------------------------ > Live Security Virtual Conference Exclusive live event will cover all the ways > today's security and threat landscape has changed and how IT managers can > respond. Discussions will include endpoint security, mobile security and the > latest in malware threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_____________________ > __________________________ Virtuoso-users mailing list > Virtuoso-users@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listin > fo/virtuoso-users > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. > http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/_____________________ > __________________________ > Virtuoso-users mailing list > Virtuoso-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/virtuoso-users