The JSON-LD serialization of a dataset is produced by mixing API and Linked Data design patterns.
Currently a ?format=schema parameter is being used to produce an almost desired effect, which breaks the ability to directly link to the document.
$ curl -sH "Accept: application/ld+json" https://www.communecter.org/api/organization/get/id/55cf123fe41d7544778b1451/ | jq .
{
"meta": {
"limit": 1
},
"entities": {
"55cf123fe41d7544778b1451": {
"@type": "Organization",
"name": "Géo Organique",
"typeCommunecter": "Group",
"image": "https://www.communecter.org/upload/communecter/organizations/55cf123fe41d7544778b1451/Photo0552.jpg",
"url": {
"website": "http://wiki.cheznous.coop/geoorganique",
"communecter": "https://www.communecter.org/#organization.detail.id.55cf123fe41d7544778b1451",
"api": "https://www.communecter.org/api/organization/get/id/55cf123fe41d7544778b1451"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "12, chemin du Busquet",
"postalCode": "63340",
"addressLocality": "VICHEL",
"codeInsee": "63456",
"addressCountry": "FR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 45.428634,
"longitude": 3.242987
},
"geoPosition": {
"@type": "Point",
"coordinates": [
3.242987,
45.428634
]
},
"shortDescription": "<p class=\"wysiwyg-text-align-justify\">Géo Organique est un Groupe dont l'animateur vise à dessiner un réseau autour de la géographie organique. <br></p><p class=\"wysiwyg-text-align-justify\">Celle-ci est très attachée aux bases, partant de l'idée que les choses doivent rester simple et claires au départ, pour parvenir à faire complexe. <br></p><p class=\"wysiwyg-text-align-justify\">La racine de ce projet est à cette adresse : <a rel=\"nofollow\" target=\"_blank\" href=\"http://wiki.cheznous.coop/geoorganique\">http://wiki.cheznous.coop/geoorganique</a> <br></p><p class=\"wysiwyg-text-align-justify\">Le souhait est aussi de faire quelque chose de participatif et contributif : les adhérents au groupe construisent des témoignages de leurs usages et projets en cartographie.<br></p><br>",
"description": "Thème de la Géographie organique sur le Pays d'Issoire (<a rel=\"nofollow\" target=\"_blank\" href=\"http://wiki.cheznous.coop/_media/carto_geopoetique_issoire.pdf\">document pdf</a>)<br>",
"email": "geo@spatiogis.fr",
"tags": [
"Education populaire",
"Biodiversité"
],
"links": {
"members": [
{
"type": "Person",
"name": "Televb",
"url": {
"communecter": "https://www.communecter.org/#person.detail.id.55c85b17e41d75864f8b144f",
"api": "https://www.communecter.org/api/person/get/id/55c85b17e41d75864f8b144f"
}
},
{
"type": "Person",
"name": "Mathieu Coste",
"url": {
"communecter": "https://www.communecter.org/#person.detail.id.55901b8fe41d75292e59ce8b",
"api": "https://www.communecter.org/api/person/get/id/55901b8fe41d75292e59ce8b"
}
}
]
}
}
}
}
Instead, the route could make use of content negotiation headers to distinguish which serialization is requested. For JSON-LD it is application/ld+json.
$ curl -I https://www.communecter.org/data/get/type/organizations/id/55cf123fe41d7544778b1451/format/schema
HTTP/1.0 404 Not Found
Date: Fri, 17 Mar 2017 11:27:32 GMT
Server: Apache/2.4.7 (Ubuntu)
X-Powered-By: PHP/5.5.9-1ubuntu4.14
Connection: close
Content-Type: text/html
The JSON-LD serialization of a dataset is produced by mixing API and Linked Data design patterns.
Currently a
?format=schemaparameter is being used to produce an almost desired effect, which breaks the ability to directly link to the document.Instead, the route could make use of content negotiation headers to distinguish which serialization is requested. For JSON-LD it is
application/ld+json.Additionally the stable IRIs provided by the returned document of the
?format=schemaroute cannot be dereferenced and produce 404s:This depends on #5 .
Also read https://ruben.verborgh.org/blog/2013/11/29/the-lie-of-the-api/