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

JSON-LD serialization is not Linked Open Data #6

Open
almereyda opened this issue Mar 17, 2017 · 1 comment
Open

JSON-LD serialization is not Linked Open Data #6

almereyda opened this issue Mar 17, 2017 · 1 comment

Comments

@almereyda
Copy link

almereyda commented Mar 17, 2017

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.

Additionally the stable IRIs provided by the returned document of the ?format=schema route cannot be dereferenced and produce 404s:

$ 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

This depends on #5 .
Also read https://ruben.verborgh.org/blog/2013/11/29/the-lie-of-the-api/

@oceatoon
Copy link
Member

oceatoon commented Mar 17, 2017 via email

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