DATAtourisme

Exploiter données depuis un id

Bonjour,

J’ai remarqué qu’il arrivait assez fréquemment qu’un champ soit « vide » si ce n’est un id.
Depuis un navigateur il est ensuite assez aisé de retrouver l’information escompté mais comment pourrais-je la récupérer depuis mon programme (qui est en nodejs) ?

Pour illustrer voici une donnée récupéré depuis un fichier jsonld :
{
« @id »: « https://data.datatourisme.gouv.fr/32/015f459a-3f06-3966-87d1-7088ff46c9cf »,
« dc:date »: [{
« @value »: « 2019-03-20 »,
« @type »: « xsd:date »
},{
« @value »: « 2019-03-22 »,
« @type »: « xsd:date »
}],
« dc:identifier »: « FMALAR034V51KR6Y »,
« schema:endDate »: {
« @value »: « 2019-05-13 »,
« @type »: « xsd:date »
},
« schema:startDate »: {
« @value »: « 2019-04-29 »,
« @type »: « xsd:date »
},
« @type »: [« schema:Event »,« schema:ExhibitionEvent »,« CulturalEvent »,« EntertainmentAndEvent »,« Exhibition »,« PointOfInterest »,« urn:resource »],
« rdfs:comment »: {
« @value »: « Exposition de peintures et de sculptures à la cave du château de Colombiers. »,
« @language »: « fr »
},
« rdfs:label »: {
« @value »: « EXPOSITION MME DACE GARLEJA »,
« @language »: « fr »
},
« owl:topObjectProperty »: {
« @id »: « data:134da5ab-c2d0-321c-9ab6-8b98fb55cadd »,
« dc:description »: {
« @value »: « Exposition de peintures et de sculptures à la cave du château de Colombiers. »,
« @language »: « fr »
},
« @type »: « Description »,
« owl:topDataProperty »: {
« @value »: « Exposition de peintures et de sculptures à la cave du château de Colombiers. »,
« @language »: « fr »
},
« shortDescription »: {
« @value »: « Exposition de peintures et de sculptures à la cave du château de Colombiers. »,
« @language »: « fr »
}},
« creationDate »: {
« @value »: « 2019-03-20 »,
« @type »: « xsd:date »
},
« hasBeenCreatedBy »: {
« @id »: « data:96a2ccb3-553e-341a-9560-0996b6d0e069 »
},
« hasBeenPublishedBy »: {
« @id »: « data:b19bfb2b-f95e-3cf9-8622-9e220cdbe0e6 »
},
« hasContact »: {
« @id »: « data:0b9c3856-7b08-39f7-8723-d5645ad5da38 »
},
« hasDescription »: {
« @id »: « data:134da5ab-c2d0-321c-9ab6-8b98fb55cadd »
},
« hasTheme »: {
« @id »: « kb:Sculpture »,
« @type »: [« owl:NamedIndividual »,« CulturalTheme »],
« rdfs:label »: {
« @value »: « Sculpture »,
« @language »: « fr »
}},
« isLocatedAt »: {
« @id »: « data:8a74204e-1e90-3f3f-898e-edefafba58bb »,
« schema:address »: {
« @id »: « data:93f208ff-77c6-3729-9e12-2e69266e9c96 »
},
« schema:geo »: {
« @id »: « data:ebdade93-c20c-347a-8170-c7dad331a92d »
},
« schema:openingHoursSpecification »: {
« @id »: « data:4ebaba7d-a419-3f5f-85b4-3339b1be58c7 »,
« schema:validFrom »: {
« @value »: « 2019-04-29T00:00:00 »,
« @type »: « xsd:dateTime »
},
« schema:validThrough »: {
« @value »: « 2019-05-13T23:59:59 »,
« @type »: « xsd:dateTime »
},
« @type »: « schema:OpeningHoursSpecification »
},
« @type »: [« schema:Place »,« Place »],
« altInsee »: « 34081 »
},
« lastUpdate »: {
« @value »: « 2019-03-22 »,
« @type »: « xsd:date »
},
« reducedMobilityAccess »: {
« @value »: « true »,
« @type »: « xsd:boolean »
},
« takesPlaceAt »: {
« @id »: « data:ebec365e-7db5-3776-ac8c-e4842c286adb »,
« @type »: « Period »,
« endDate »: {
« @value »: « 2019-05-13 »,
« @type »: « xsd:date »
},
« startDate »: {
« @value »: « 2019-04-29 »,
« @type »: « xsd:date »
}},
« meta:hasChecksum »: « 1dc42216e99509dfdf208c25545e5c9c »,
« meta:hasFluxIdentifier »: {
« @value »: « 257 »,
« @type »: « xsd:int »
},
« meta:hasOrganizationIdentifier »: {
« @value »: « 32 »,
« @type »: « xsd:int »
}}

Dans toutes ces informations j’aimerais récupérer la localisation gps mais :
« schema:geo »: {
« @id »: « data:ebdade93-c20c-347a-8170-c7dad331a92d »
},
ne me retourne qu’un id, comment pourrais-je récupérer la latitude et la longitude ?

Merci à vous :slight_smile:

1 « J'aime »

Je répond à ma propre interrogation, ça pourrait servir à quelqu’un :slight_smile:

Un moyen de récupérer la donnée au format json-ld est d’appeler le lien :
https://data.datatourisme.gouv.fr/id?format=jsonld

dans mon cas :
https://data.datatourisme.gouv.fr/ebdade93-c20c-347a-8170-c7dad331a92d?format=jsonld

2 « J'aime »

Bonjour,

Toutes les sous ressources (comme schema:geo avec sa latitude et longitude) sont présentes dans le fichier de votre flux Json-LD mais ne sont pas répétées.
Pour récupérer une sous ressource depuis Nodejs vous pouvez utiliser une librairie Json-LD pour charger et manipuler vos données.
https://json-ld.org
Une approche complémentaire serai de charger votre flux dans une base de donnée puis de l’interroger.

Comme vous l’avez découvert il est possible de consulter une ressource avec son identifiant (qui est un URI Uniform Resource Identifier — Wikipédia) en effectuant une requête Http. (ce qui en fait une URL)
Cette approche est adaptée à une consultation occasionnelle de quelques milliers de ressources. Elle est déconseillée pour une utilisation régulière et volumineuse. Par exemple télécharger l’ensemble de la base de donnée prendrait ~3 jours et monopolise des ressources mutualisées.

L’approche proposée par la plateforme est de mettre à votre disposition un flux en cache (de 24h) que vous devez charger dans votre système.

Cordialement.