lotus-sparql-examples

A set of SPARQL examples that are used in LOTUS

View the Project on GitHub lotusnprod/lotus-sparql-examples

wd_maintenance_nps_retracted_deprecate

rq turtle/ttl

Maintenance. Deprecate compound-taxon statements with single retracted reference.

Use at


PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX p: <http://www.wikidata.org/prop/>
PREFIX pr: <http://www.wikidata.org/prop/reference/>
PREFIX prov: <http://www.w3.org/ns/prov#>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
#title: Deprecate compound-taxon statements with single retracted reference
SELECT DISTINCT 
  (CONCAT(
    STRAFTER(STR(?compound), "http://www.wikidata.org/entity/"),
    " | P703 | ",
    STRAFTER(STR(?taxon), "http://www.wikidata.org/entity/"),
    " | R- | P2241 | Q77253277"
  ) AS ?quickstatement)
WHERE {
    ?compound p:P703 ?statement.
    ?statement ps:P703 ?taxon;
               prov:wasDerivedFrom [
                 pr:P248 ?reference
               ].
    ?compound wdt:P235 ?compound_inchikey.
    ?taxon wdt:P225 ?taxon_name.
    ?reference wdt:P31 wd:Q45182324.
    
    # Only statements with exactly one reference
    FILTER NOT EXISTS {
      ?statement prov:wasDerivedFrom ?refNode1, ?refNode2.
      FILTER(?refNode1 != ?refNode2)
    }
}

graph TD
classDef projected fill:lightgreen;
classDef literal fill:orange;
classDef iri fill:yellow;
  v4("?compound"):::projected 
  v7("?compound_inchikey")
  v9("?quickstatement")
  v1("?refNode1")
  v2("?refNode2")
  v6("?reference")
  v3("?statement")
  v5("?taxon"):::projected 
  v8("?taxon_name")
  a1((" "))
  c8(["wd:Q45182324"]):::iri 
  f0[["not  "]]
  subgraph f0e0["Exists Clause"]
    e0f0[["?refNode1 != ?refNode2"]]
    e0f0 --> e0v1
    e0f0 --> e0v2
    e0v3 --"prov:wasDerivedFrom"-->  e0v1
    e0v3 --"prov:wasDerivedFrom"-->  e0v2
    e0v1("?refNode1"):::projected 
    e0v2("?refNode2"):::projected 
    e0v3("?statement"):::projected 
  end
  f0--EXISTS--> f0e0
  f0 --> v1
  f0 --> v2
  f0 --> v3
  f0 --> c1
  f1[["?refNode1 != ?refNode2"]]
  f1 --> v1
  f1 --> v2
  v3 --"prov:wasDerivedFrom"-->  v1
  v3 --"prov:wasDerivedFrom"-->  v2
  v4 --"p:P703"-->  v3
  v3 --"p:statement/P703"-->  v5
  a1 --"p:reference/P248"-->  v6
  v3 --"prov:wasDerivedFrom"-->  a1
  v4 --"p:direct/P235"-->  v7
  v5 --"p:direct/P225"-->  v8
  v6 --"p:direct/P31"-->  c8
  bind2[/"concat(substring-after(str(?compound),'http://www.wikidata.org/entity/'),' | P703 | ',substring-after(str(?taxon),'http://www.wikidata.org/entity/'),' | R- | P2241 | Q77253277')"/]
  v4 --o bind2
  v5 --o bind2
  bind2 --as--o v9