Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Service suivants pays #141

Open
ChristopheYon opened this issue Oct 11, 2024 · 1 comment
Open

Service suivants pays #141

ChristopheYon opened this issue Oct 11, 2024 · 1 comment
Assignees

Comments

@ChristopheYon
Copy link

Services territoires suivants

Pays

Requête

Méthode Requête Description
GET /pays/{code}/suivants Récupérer les informations concernant les pays qui succèdent au pays {code}

Paramètres

Paramètres Description Type
date Filtre pour préciser le pays {code} de départ. Par défaut, c’est la date courante qui est utilisée. Date

Exemples de requête

/geo/pays/99121/suivants?date=1950-01-01

Champs de la réponse

Champ Description
URI URI du pays
Type « Pays »
Code Code Insee du pays
Intitule Nom du pays
IntituleEntier Nom du pays en forme longue
Iso3166alpha2 Code ISO 3166-1 alpha-2 du pays
Iso3166alpha3 Code ISO 3166-1 alpha-3 du pays
Iso3166num Code ISO 3166-1 numérique du pays
DateCreation Date de création du pays
DateSuppression Date de suppression du pays s’il a été supprimé

Exemple de réponse en XML

<Pays>
	<Pays code="99119" uri="http://id.insee.fr/geo/pays/0b0d2b49-54a2-4d6c-be48-8900c905eaaa">
		<Intitule>Croatie</Intitule>
		<IntituleEntier>République de Croatie</IntituleEntier>
		<Iso3166alpha2>HR</Iso3166alpha2>
		<Iso3166alpha3>HRV</Iso3166alpha3>
		<Iso3166num>191</Iso3166num>
		<DateCreation>1991-06-25</DateCreation>
	</Pays>
	<Pays code="99121" uri="http://id.insee.fr/geo/pays/fcc6730a-8cb3-45dd-a476-384b489a50b5">
		<Intitule>Yougoslavie</Intitule>
		<IntituleEntier>République fédérative socialiste de Yougoslavie</IntituleEntier>
		<DateCreation>1991-06-25</DateCreation>
		<DateSuppression>1991-09-08</DateSuppression>
	</Pays>
	<Pays code="99145" uri="http://id.insee.fr/geo/pays/b1a977b0-a56f-47e9-9991-3dfa9e93197e">
		<Intitule>Slovénie</Intitule>
		<IntituleEntier>République de Slovénie</IntituleEntier>
		<Iso3166alpha2>SI</Iso3166alpha2>
		<Iso3166alpha3>SVN</Iso3166alpha3>
		<Iso3166num>705</Iso3166num>
		<DateCreation>1991-06-25</DateCreation>
	</Pays>
</Pays>

Exemple de réponse en JSON

[
	{
		"type": "Pays",
		"code": "99119",
		"uri": "http://id.insee.fr/geo/pays/0b0d2b49-54a2-4d6c-be48-8900c905eaaa",
		"intitule": "Croatie",
		"IntituleEntier": "République de Croatie",
		"Iso3166alpha2": "HR",
		"Iso3166alpha": "HRV",
		"Iso3166num": "191",
		"dateCreation": "1991-06-25"
	},
	{
		"type": "Pays",
		"code": "99121",
		"uri": "http://id.insee.fr/geo/pays/fcc6730a-8cb3-45dd-a476-384b489a50b5",
		"intitule": "Yougoslavie",
		"IntituleEntier": "République fédérative socialiste de Yougoslavie",
		"dateCreation": "1991-06-25",
		"dateSuppression": "1991-09-08"
	},
	{
		"type": "Pays",
		"code": "99145",
		"uri": "http://id.insee.fr/geo/pays/b1a977b0-a56f-47e9-9991-3dfa9e93197e",
		"intitule": "Slovénie",
		"IntituleEntier": "République de Slovénie",
		"Iso3166alpha2": "SI",
		"Iso3166alpha": "SVN",
		"Iso3166num": "705",
		"dateCreation": "1991-06-25"
	}
]

Exemple de requête SPARQL

Avec le paramètre date :

PREFIX :<http://rdf.insee.fr/def/geo#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?uri ?type ?code ?nom ?nomLong ?iso3166alpha2 ?iso3166alpha3 ?iso3166num ?dateCreation ?dateSuppression
WHERE {
	{
		# Sélection de la ressource d'origine (et de son événement destructeur)
		SELECT DISTINCT ?origine ?evenement (?dateSuppressionOrigine AS ?dateCreation)
		WHERE {
			?origine a :Pays ;
				:codeINSEE '99121' .
			?evenement :suppression ?origine;
				:date ?dateSuppressionOrigine.
			OPTIONAL {?origine (^:creation/:date) ?dateCreationOrigine.}
			FILTER(!BOUND(?dateCreationOrigine) || ?dateCreationOrigine <= '1950-01-01'^^xsd:date)
			FILTER(!BOUND(?dateSuppressionOrigine) || ?dateSuppressionOrigine > '1950-01-01'^^xsd:date)
		}
	}
	?evenement :creation ?ressource .
	?ressource a ?typeRDF ;
		a :Pays ;
		:codeINSEE ?code ;
		:codeArticle ?typeArticle;
		:nom ?nom.
		OPTIONAL {?ressource :nomLong ?nomLong .}
		OPTIONAL {?ressource :codeIso3166alpha2 ?iso3166alpha2 .}
		OPTIONAL {?ressource :codeIso3166alpha3 ?iso3166alpha3 .}
		OPTIONAL {?ressource :codeIso3166num ?iso3166num .}
		BIND(STR(?typeRDF) AS ?type).
		BIND(STR(?ressource) AS ?uri).
		OPTIONAL { ?ressource (^:suppression/:date) ?dateSuppression.}
}
ORDER BY ?code
@ChristopheYon
Copy link
Author

Le service est globalement OK (bonne structure de requête et les valeurs renvoyées sont OK) mais il y a quelques problèmes de forme :

  • le type doit être "Pays" et pas "http://rdf.insee.fr/def/geo#Pays" (à l'instar de ce qu'on fait pour les autres types)
  • le champ contenant le nom du pays doit s'appeler "intitule" et pas "nom" (pour être cohérent avec les autres services, même si ça ne l'est pas vraiment avec le RDF...)
  • le champ contenant le nom développé doit s'appeler "intituleComplet" et pas "nomLong" (NB: dans la spécification, j'avais mis "intituleEntier" mais comme on a déjà un "intituleComplet" pour les intercommunalités, on va limiter le nombre de champs différents, sauf si ça pose problème)

Tous ces points se retrouvent également dans les autres services renvoyant des pays, donc je recopie dans les cartes correspondantes (mais je ne doute pas qu'en les réglant une fois, ça réglera pour toutes)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants