1

Sample data:

@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xs: <http://www.w3.org/2001/XMLSchema#> .
@prefix p0: <http://www.mlacustom.com#> .
@prefix p2: <http://www.mla.com/term/> .
_:bnode7021016689601753065 p0:lastModifiedDateTime "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                           p0:lastModifiedUser "admin"^^xs:string .
<http://www.mla.com/name/4204078359> p0:hasClassingFacet "http://www.mla.com/facet/RA"^^xs:string ;
                                     p0:type "Normal"^^xs:string ;
                                     p0:classification _:bnode3452184423513029143 ,
                                                       _:bnode6827572371999795686 ;
                                     p0:recordType "Name"^^xs:string ;
                                     p0:recordNumber "4204078359"^^xs:string ;
                                     p0:stdDescriptor "classification111111"^^xs:string ;
                                     p0:establishedBy "admin"^^xs:string ;
                                     skos:prefLabel "classification111111"^^xs:string ;
                                     p0:createdBy "admin"^^xs:string ;
                                     a skos:Concept ;
                                     p0:createdDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:establishedDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:hasRAsubFacet "http://www.mla.com/subfacet/classing-subject-authors"^^xs:string ;
                                     p0:lastModifiedDate "2018-09-14T12:55:38"^^<xsd:dateTime> ;
                                     p0:lastModifiedDetails _:bnode7021016689601753065 ;
                                     p0:isProblematic "N,N"^^xs:string ;
                                     p0:lastModifiedBy "admin"^^xs:string ;
                                     p0:status "established"^^xs:string .
_:bnode3452184423513029143 p0:literature p2:1513 ;
                           p0:timePeriod p2:1005 ;
                           p0:language p2:3199 .
_:bnode6827572371999795686 p0:literature p2:11307 ;
                           p0:timePeriod p2:1009 ;
                           p0:language p2:31 .

In in the above data I want to delete the classification blank nodes and it associated data which is p0:literature, p0:timePeriod, p0:language

Below sparql query is deleting the blank node associated triples which is the expected behaviour.

PREFIX skos-mla: <http://www.mlacustom.com#>
PREFIX name: <http://www.mla.com/name/>

WITH <thesaurus-term>
DELETE {
  ?class ?p ?o .
}
INSERT {}
WHERE {
  name:4408003840 skos-mla:classification ?class .
  ?class ?p ?o .
}

I mean this data

_:bnode3452184423513029143 p0:literature p2:1513 ;
                           p0:timePeriod p2:1005 ;
                           p0:language p2:3199 .
_:bnode6827572371999795686 p0:literature p2:11307 ;
                           p0:timePeriod p2:1009 ;
                           p0:language p2:31 .

But I also want to delete the classification triples with the main IRI. these triples:

<http://www.mla.com/name/4204078359> 
                     p0:classification _:bnode3452184423513029143 ,
                                       _:bnode6827572371999795686 ;

I have to delete the triples in a single sparql.

Stanislav Kralin
  • 11,070
  • 4
  • 35
  • 58
Dixit Singla
  • 2,540
  • 3
  • 24
  • 39
  • 1
    Basically, like this: https://stackoverflow.com/q/46526033/7879193 – Stanislav Kralin Sep 19 '18 at 11:39
  • Looking for like this onyl, this will delete all the blank nodes, In my case I have to delete only for `classification`, I tried your query but it's not working as expected – Dixit Singla Sep 19 '18 at 11:58
  • One thing I did not get is, why `optional` is used, I believe this would delete all the other triples as well, Pardon me if I am wrong. – Dixit Singla Sep 19 '18 at 12:00
  • The query from https://stackoverflow.com/q/46526033/7879193 solves different problem. Just adapt the same technique to your case. E.g. instead of '?p' use 'p0:classification' , ommit the OPTIONAL and FILTER , etc. – Damyan Ognyanov Sep 19 '18 at 12:08

1 Answers1

2

For the above sample data, the following update will remove the p0:classification triples along with everything about both bNodes related with it:

PREFIX p0: <http://www.mlacustom.com#>

delete {
    <http://www.mla.com/name/4204078359> p0:classification ?bnode .
    ?bnode ?p ?o .
} where {
    <http://www.mla.com/name/4204078359> p0:classification ?bnode .
    ?bnode ?p ?o .
}
Damyan Ognyanov
  • 791
  • 3
  • 7