query-cf31037d0e8e163d66825a727f432c60

rq turtle/ttl

Au 1er janvier 1976, il y a 100 départements. SELECT ?inseeDépartement ?département ?nom WHERE { BIND ( "1976-01-01"^^xsd:dateTime as ?dateRecherche ) ?département p:P2586 ?P2586node . # existence d'un code Insee ?P2586node ps:P2586 ?inseeDépartement . # valeur du code Insee OPTIONAL { ?P2586node pq:P580 ?dateDébutCode . } # date de début du code Insee OPTIONAL { ?P2586node pq:P582 ?dateFinCode . } # date de fin du code Insee FILTER ( !BOUND(?dateDébutCode) || ?dateDébutCode <= ?dateRecherche ) # ancien code Insee FILTER ( !BOUND(?dateFinCode) || ?dateFinCode > ?dateRecherche ) # futur code Insee {?département wdt:P31 wd:Q6465.} UNION {?département wdt:P31 wd:Q202216.} # nature de département OPTIONAL { ?département wdt:P571 ?dateCréation . } # date de création OPTIONAL { ?département wdt:P576 ?dateDissolution . } # date de dissolution FILTER ( !BOUND(?dateCréation) || ?dateCréation <= ?dateRecherche ) # départements futurs FILTER ( !BOUND(?dateDissolution) || ?dateDissolution > ?dateRecherche ) # départements passés ?département p:P1448 ?P1448node . # existence d'un nom ?P1448node ps:P1448 ?nom . # valeur du nom FILTER( lang(?nom)="fr" ). # nom en français MINUS { ?P1448node pq:P2241 ?dépréciationNom . } # nom erroné OPTIONAL { ?P1448node pq:P580 ?dateDébutNom . } # date de début du nom OPTIONAL { ?P1448node pq:P582 ?dateFinNom . } # date de fin du nom FILTER ( !BOUND(?dateDébutNom) || ?dateDébutNom <= ?dateRecherche ) # ancien nom FILTER ( !BOUND(?dateFinNom) || ?dateFinNom > ?dateRecherche ) # futur nom } ORDER BY ?inseeDépartement

Use at

PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX wdt: <http://www.wikidata.org/prop/direct/>
PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX ps: <http://www.wikidata.org/prop/statement/>
PREFIX pq: <http://www.wikidata.org/prop/qualifier/>
PREFIX p: <http://www.wikidata.org/prop/>
# Au 1er janvier 1976, il y a 100 départements.
SELECT ?inseeDépartement ?département ?nom WHERE {
  BIND ( "1976-01-01"^^xsd:date as ?dateRecherche ) 
    ?département p:P2586 ?P2586node . # existence d'un code Insee
    ?P2586node ps:P2586 ?inseeDépartement . # valeur du code Insee
    OPTIONAL { ?P2586node pq:P580 ?dateDébutCode . } # date de début du code Insee
    OPTIONAL { ?P2586node pq:P582 ?dateFinCode . } # date de fin du code Insee
    FILTER ( !BOUND(?dateDébutCode) || ?dateDébutCode <= ?dateRecherche ) # ancien code Insee
    FILTER ( !BOUND(?dateFinCode) || ?dateFinCode > ?dateRecherche ) # futur code Insee
  {?département wdt:P31 wd:Q6465.} UNION {?département wdt:P31 wd:Q202216.} # nature de département
    OPTIONAL { ?département wdt:P571 ?dateCréation . } # date de création
    OPTIONAL { ?département wdt:P576 ?dateDissolution . } # date de dissolution
    FILTER ( !BOUND(?dateCréation) || ?dateCréation <= ?dateRecherche ) # départements futurs
    FILTER ( !BOUND(?dateDissolution) || ?dateDissolution > ?dateRecherche ) # départements passés
  ?département p:P1448 ?P1448node . # existence d'un nom
    ?P1448node ps:P1448 ?nom . # valeur du nom
    FILTER( lang(?nom)="fr" ). # nom en français
    MINUS { ?P1448node pq:P2241 ?dépréciationNom . } # nom erroné
    OPTIONAL { ?P1448node pq:P580 ?dateDébutNom . } # date de début du nom
    OPTIONAL { ?P1448node pq:P582 ?dateFinNom . } # date de fin du nom
    FILTER ( !BOUND(?dateDébutNom) || ?dateDébutNom <= ?dateRecherche ) # ancien nom
    FILTER ( !BOUND(?dateFinNom) || ?dateFinNom > ?dateRecherche ) # futur nom
}
ORDER BY ?inseeDépartement

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v12("?P1448node") v11("?P2586node") v7("?dateCréation") v6("?dateDissolution") v9("?dateDébutCode") v4("?dateDébutNom") v8("?dateFinCode") v2("?dateFinNom") v10("?dateRecherche") v10("?département"):::projected v13("?dépréciationNom") v1("?inseeDépartement"):::projected v5("?nom"):::projected c8(["wd:Q202216"]):::iri c7(["wd:Q6465"]):::iri f0[["(not bound(?dateFinNom) || ?dateFinNom > ?dateRecherche)"]] f0 --> v2 f0 --> v10 f1[["(not bound(?dateDébutNom) || ?dateDébutNom <= ?dateRecherche)"]] f1 --> v4 f1 --> v10 f2[["?nom = 'fr'"]] f2 --> v5 f3[["(not bound(?dateDissolution) || ?dateDissolution > ?dateRecherche)"]] f3 --> v6 f3 --> v10 f4[["(not bound(?dateCréation) || ?dateCréation <= ?dateRecherche)"]] f4 --> v7 f4 --> v10 f5[["(not bound(?dateFinCode) || ?dateFinCode > ?dateRecherche)"]] f5 --> v8 f5 --> v10 f6[["(not bound(?dateDébutCode) || ?dateDébutCode <= ?dateRecherche)"]] f6 --> v9 f6 --> v10 bind7[/"'1976-01-01^^xsd:date'"/] bind7 --as--o v10 v10 --"p:P2586"--> v11 v11 --"p:statement/P2586"--> v1 subgraph optional0["(optional)"] style optional0 fill:#bbf,stroke-dasharray: 5 5; v11 -."p:qualifier/P580".-> v9 end subgraph optional1["(optional)"] style optional1 fill:#bbf,stroke-dasharray: 5 5; v11 -."p:qualifier/P582".-> v8 end subgraph union0[" Union "] subgraph union0l[" "] style union0l fill:#abf,stroke-dasharray: 3 3; v10 --"p:direct/P31"--> c8 end subgraph union0r[" "] style union0r fill:#abf,stroke-dasharray: 3 3; v10 --"p:direct/P31"--> c7 end union0r <== or ==> union0l end subgraph optional2["(optional)"] style optional2 fill:#bbf,stroke-dasharray: 5 5; v10 -."p:direct/P571".-> v7 end subgraph optional3["(optional)"] style optional3 fill:#bbf,stroke-dasharray: 5 5; v10 -."p:direct/P576".-> v6 end v10 --"p:P1448"--> v12 v12 --"p:statement/P1448"--> v5 subgraph minus8["MINUS"] style minus8 stroke-width:6px,fill:pink,stroke:red; v12 --"p:qualifier/P2241"--> v13 end subgraph optional4["(optional)"] style optional4 fill:#bbf,stroke-dasharray: 5 5; v12 -."p:qualifier/P580".-> v4 end subgraph optional5["(optional)"] style optional5 fill:#bbf,stroke-dasharray: 5 5; v12 -."p:qualifier/P582".-> v2 end