query-894d9ba0a5d1e064a89aab396e792785

rq turtle/ttl

Modèle des anciennes communesOn a un moyen de dire qu’une entité comme une commune a été dissoute : « date de dissolution ». Pourquoi alors s’embêter avec un qualificateur sur la nature de l’élément ? On ne met pas une date de mort d’une personne en qualificatif de la nature de l’élément, par exemple, c’est une idiosyncratie étrange. Je milite également pour l’utilisation de l’élément « ancienne commune de france » et je suggère le modèle suivant : on utilise 3 classes de communes : une classe « ancienne commune », une classe « commune de france » (passée et présente), une classe « commune de france » (actuelle). La 1 et la 3 seraient alors des sous-classes de la 2. Avantage, pour travailler avec les communes actuelles on s’embête pas à essayer de filtrer les communes qui ont une date de fin, on se contente de chercher les instances de la classe 3 (commune actuelle). Etre une instance de « ancienne commune » sous entend qu’il y a une date de dissolution. ]reply[18:27, 5 September 2018 (UTC) pagetalk / TomT0m author du modèle qu’on utilise (c’est quoi, une commune ?) et à propos de la création d’éléments de communes anciennes( voir aussi ces discussions qui m’ammènent ici : ]reply[20:49, 17 August 2020 (UTC) pagetalk / TomT0m author Note que même dans tes exemples, les solutions ne sont pas totalement évidentes et démontrent qu’il y a une pluralité des problématiques qui peuvent démontrer qu’il faut une pluralité de solutions et qu’il y a pas nécessairement de recette universelle. C’est une toute autre problématique, la dichotomie « entité actuelle / entité disparue » est super importante et dans pleins de requêtes, on aimerait avoir les entités actuelles et on a que faire de l’historique. Prend par exemple toutes les requêtes à la OSM ou Google maps, ils ne montrent l’histo que si on le veut vraiment. : Ce sont de vraies questions ou c’est supposé être des exemples qui démontrent que c’est une mauvaise solution qu’on serait obligé d’appliquer dans tous les cas ?Snipre@ ]reply[20:25, 17 August 2020 (UTC)) talk (Snipre: Et moi je voudrais la liste des communes sous la IVème république. On crée une entité "commune sous la IV république" ? Ou encore la liste des communes sous l'occupation allemande ? Je fais comment. TomT0m@), logs • contribs • talk (SnipreBonjour Je partage votre intérêt pour les données historiques. Le modèle actuel fonctionne à peu près, mais toutes les données anciennes ne sont pas encore répertoriées. Au vu du nombre de communes figurant déjà dans Wikidata, on ne doit quand même pas être très loin de la réalité. Ce sera moins le cas si l'on remonte plus loin dans l'histoire. A toutes fins utiles, vous pouvez trouver la liste des communes au début de la IVe République au lien suivant :

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/>
SELECT ?insee ?commune
WHERE {
  BIND ( "1946-10-27"^^xsd:date as ?dateRecherche )        # date recherchée
  ?commune p:P374 ?P374node .                 # existence code INSEE
    ?P374node ps:P374 ?insee .                  # valeur code INSEE
    OPTIONAL {?P374node pq:P580 ?dateDébutCode .  }  # date début code INSEE
    OPTIONAL {?P374node pq:P582 ?dateFinCode .  }  # date fin code INSEE
    FILTER (!BOUND(?dateDébutCode) || ?dateDébutCode <= ?dateRecherche)
    FILTER (!BOUND(?dateFinCode) || ?dateFinCode > ?dateRecherche)
  ?commune wdt:P31 wd:Q484170.
    OPTIONAL { ?commune wdt:P571 ?dateCréation. }                  # date création
    OPTIONAL { ?commune wdt:P576 ?dateDissolution. }                    # date dissolution
    FILTER ( !BOUND(?dateCréation) || ?dateCréation <= ?dateRecherche ) # communes futures
    FILTER ( !BOUND(?dateDissolution) || ?dateDissolution > ?dateRecherche )      # communes passées   
  }
ORDER BY (?insee)

Query found at

graph TD classDef projected fill:lightgreen; classDef literal fill:orange; classDef iri fill:yellow; v8("?P374node") v7("?commune"):::projected v4("?dateCréation") v2("?dateDissolution") v6("?dateDébutCode") v5("?dateFinCode") v7("?dateRecherche") v1("?insee"):::projected c6(["wd:Q484170"]):::iri f0[["(not bound(?dateDissolution) || ?dateDissolution > ?dateRecherche)"]] f0 --> v2 f0 --> v7 f1[["(not bound(?dateCréation) || ?dateCréation <= ?dateRecherche)"]] f1 --> v4 f1 --> v7 f2[["(not bound(?dateFinCode) || ?dateFinCode > ?dateRecherche)"]] f2 --> v5 f2 --> v7 f3[["(not bound(?dateDébutCode) || ?dateDébutCode <= ?dateRecherche)"]] f3 --> v6 f3 --> v7 bind4[/"'1946-10-27^^xsd:date'"/] bind4 --as--o v7 v7 --"p:P374"--> v8 v8 --"p:statement/P374"--> v1 subgraph optional0["(optional)"] style optional0 fill:#bbf,stroke-dasharray: 5 5; v8 -."p:qualifier/P580".-> v6 end subgraph optional1["(optional)"] style optional1 fill:#bbf,stroke-dasharray: 5 5; v8 -."p:qualifier/P582".-> v5 end v7 --"p:direct/P31"--> c6 subgraph optional2["(optional)"] style optional2 fill:#bbf,stroke-dasharray: 5 5; v7 -."p:direct/P571".-> v4 end subgraph optional3["(optional)"] style optional3 fill:#bbf,stroke-dasharray: 5 5; v7 -."p:direct/P576".-> v2 end