Hi Hugh

Any further ideas/progress on this front?

I also posted this on answers 
(http://answers.semanticweb.com/questions/16631/how-to-delete-triples-containing-blank-nodes-from-virtuoso)
 but haven't got anything illuminating there either.  The best suggestion I've 
seen is to use a DELETE WHERE with ISBLANK in a FILTER in the WHERE clause but 
this doesn't work in the general case as I highlighted in my question because 
doing that can inadvertently delete other triples.

The best suggestion I've seen is to look into whether Virtuoso supports a 
skolem syntax for blank nodes that can be used to refer to a specific blank 
node e.g. <_:bnode> or <nodeID://bnode> - I did already experiment with this 
and just got compiler errors.   Is a syntax like this supported and documented 
somewhere or does Virtuoso not support this?

Cheers,

Rob

From: Cray Employee 
<[email protected]<mailto:[email protected]>>
List-Post: [email protected]
Date: Wednesday, May 23, 2012 10:29 AM
To: Hugh Williams <[email protected]<mailto:[email protected]>>
Cc: <[email protected]<mailto:[email protected]>>
Subject: Re: [Virtuoso-users] Inserting Blank Nodes via ADO.Net Provider

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 <[email protected]<mailto:[email protected]>>
List-Post: [email protected]
Date: Wednesday, May 23, 2012 9:46 AM
To: Cray Employee 
<[email protected]<mailto:[email protected]>>
Cc: <[email protected]<mailto:[email protected]>>
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 
<[email protected]<mailto:[email protected]>>
List-Post: [email protected]
Date: Monday, May 21, 2012 8:25 AM
To: <[email protected]<mailto:[email protected]>>
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 
[email protected]<mailto:[email protected]>https://lists.sourceforge.net/lists/listinfo/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
[email protected]<mailto:[email protected]>
https://lists.sourceforge.net/lists/listinfo/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 
[email protected]<mailto:[email protected]>
 https://lists.sourceforge.net/lists/listinfo/virtuoso-users

Reply via email to