openactive / dataset-api-discovery

OpenActive Dataset API Discovery Specification
0 stars 0 forks source link

DataCatalog #8

Open nickevansuk opened 5 years ago

nickevansuk commented 5 years ago

A DataCatalogCollection should be defined, that contains a list of data catalogs

{
   "@context": "https://openactive.io/",
   "@type": "DataCatalogCollection",
   "@id": "https://openactive.io/data-catalogs/data-catalog-collection.jsonld",
   "name": "Collection of all data catalogs recognised as compliant by OpenActive",
   "hasPart": [
      "https://opendata.leisurecloud.live/api/datacatalog",
      "https://openactivedatacatalog.legendonlineservices.co.uk/api/DataCatalog",
      "https://openactive.io/data-catalogs/singular.jsonld"
   ],
   "datePublished": "2020-02-20T08:51:54+00:00",
   "publisher": {
      "@type": "Organization",
      "name": "OpenActive",
      "url": "https://www.openactive.io/"
   },
   "license": "https://creativecommons.org/licenses/by/4.0/"
}

Note for OpenActive's use, in the above example, https://openactive.io/data-catalogs/singular.jsonld would be separately defined as a data catalogue of miscellaneous datasets using https://schema.org/DataCatalog as normal.

nickevansuk commented 4 years ago

Further investigation has revealed that a DataCatalog can in fact most likely be a collection of smaller data catalogs, in the same way that Datasets can be a "collection of smaller datasets".

Hence the "Data Catalog Collection" can itself be a DataCatalog, and can look like this:

{
   "@context": "https://schema.org/",
   "@type": "DataCatalog",
   "@id": "https://openactive.io/data-catalogs/data-catalog-collection.jsonld",
   "name": "Collection of all data catalogs recognised as compliant by OpenActive",
   "hasPart": [
      "https://opendata.leisurecloud.live/api/datacatalog",
      "https://openactivedatacatalog.legendonlineservices.co.uk/api/DataCatalog",
      "https://openactive.io/data-catalogs/singular.jsonld"
   ],
   "datePublished": "2020-02-20T08:51:54+00:00",
   "publisher": {
      "@type": "Organization",
      "name": "OpenActive",
      "url": "https://www.openactive.io/"
   },
   "license": "https://creativecommons.org/licenses/by/4.0/"
}
nickevansuk commented 4 years ago

Outstanding question: Should we also consider using isPartOf to link the smaller DataCatalogs to the DataCatalog collection?

nickevansuk commented 4 years ago

We should include the standard DataCatalog in the spec also, to facilitate all of https://openactive.io/data-catalogs/

{
  "@context": "https://schema.org/",
  "@type": "DataCatalog",
  "@id": "https://openactive.io/data-catalogs/singular.jsonld",
  "name": "Singular datasets that are not included in other data catalogs",
  "datePublished": "2020-02-20T08:55:19+00:00",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "publisher": {
    "@type": "Organization",
    "name": "OpenActive",
    "url": "https://www.openactive.io/"
  },
  "dataset": [
    "http://data.makesweat.com/",
    "http://data.better.org.uk/",
    "http://data.bookwhen.com/",
    "http://data.letsride.co.uk/",
    "http://data.britishorienteering.org.uk/",
    "http://data.britishtriathlon.org/",
    "https://data.englandnetball.co.uk/",
    "http://data.gomammoth.co.uk/",
    "http://data.goodgym.org/",
    "https://lawntennisassociation.github.io/",
    "http://data.opensessions.io/",
    "https://ourparks.org.uk/openactive",
    "http://data.pingengland.co.uk/",
    "https://playwaze.com/OpenData/OpenActive",
    "https://data.runtogether.co.uk/",
    "https://sportstarta.github.io/",
    "http://data.tabletennis365.com/",
    "http://data.emduk.org/",
    "https://openactive.upshot.org.uk/",
    "https://opendata.exercise-anywhere.com/",
    "https://www.sportsuite.co.uk/odapikey/datasite/",
    "https://www.participant.co.uk/participant/openactive/",
    "https://goteamup.com/api/openactive/v1/"
  ]
}
thill-odi commented 4 years ago

Added to version 0.2, along with a worked example.