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

Add publisher field (release schema) #325

Closed
kindly opened this issue May 11, 2016 · 5 comments
Closed

Add publisher field (release schema) #325

kindly opened this issue May 11, 2016 · 5 comments
Labels
Focus - Packages Relating to release packages and record packages quick Schema: Fields Relating to adding or deprecating fields in the JSON Schema
Milestone

Comments

@kindly
Copy link
Contributor

kindly commented May 11, 2016

Optionally a record/release should be able to have embedded within it the following properties.

  • packageURI
  • publishedDate
  • publisher
  • license
  • publicationPolicy

This is important for API usage where all the releases/records do not belong to the same package or even belong to the same publisher. This is important as the API user should have easy access to this information (especially things like the licence).

These items most likely should be under a new property called possibly "packageMetadata"
An example release with this property would look like:

{   
    "language": "en",
    "ocid": "ocds-213czf-000-00001",
    "id": "ocds-213czf-000-00001-05-contract",
    "date": "2010-05-10T10:30:00Z",
    "tag": [
        "contract"
    ],
    "initiationType": "tender",
    ...
    "packageMetadata": {
         "uri":"http://a.com/ocds-213czf-001-01-planning.json",
         "publishedDate":"2009-03-15T14:45:00Z",
         "publisher": {
             "scheme": "GB-COH",
             "uid": "09506232",
             "name": "Open Data Services Co-operative Limited",
             "uri": "http://standard.open-contracting.org/examples/"
          },
         "license":"http://opendatacommons.org/licenses/pddl/1.0/",
         "publicationPolicy":"https://github.com/open-contracting/sample-data/"
}

These properties should be excluded from the merging process when creating the versionedRelease/compiledRelease, as it is possible for a record to have many source packages. Nonetheless, the record itself could have a "packageMetadata" property also.

This could be considered as an extension (but a standadized one) and not part of the core standard as it is optional.

@kindly kindly added this to the Version 1.1 milestone May 11, 2016
@timgdavies timgdavies added the Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions label Aug 18, 2016
@timgdavies
Copy link
Contributor

This can be worked out outside of 1.1, more in relation to API standardisation.

@timgdavies timgdavies modified the milestones: Post 1.1 tasks, Version 1.1 Feb 8, 2017
@jpmckinney
Copy link
Member

jpmckinney commented Nov 7, 2017

Noting a need for this was expressed in the context of a government having multiple authors of releases, and needing to trace back which entity authored a release within a package.

@jpmckinney jpmckinney modified the milestones: Post 1.1 tasks, 1.2 Dec 27, 2017
@jpmckinney
Copy link
Member

Copying relevant parts of my comment at open-contracting-archive/api-specification#15 (comment)

  • uri: I don't think we should be putting the uri of the package in the release, as a release can be included in any number of packages, and releases are expected to be unique and immutable.
  • publishedDate: Same reason as for uri – plus release has its own date already.
  • publicationPolicy: It seems an overreach for data to declare the URL of the policy for its own publication, especially as this URL can change over time – and publishers shouldn't have to publish a new release to update it. This policy should be discoverable without looking at data.
  • license: Same reason as for publicationPolicy. The pattern of declaring the license on the pages that provide access to data has been fine for data formats that have no way of declaring a license, which is the vast majority of open data (see page 19 of this report).

So, we're just talking about publisher, which I think makes sense to have at the release-level, in core OCDS. (Publisher names and URLs change over time, but so do those of parties.)

Not discussed here are extensions and version, which are needed to interpret the data. Putting these in their current form would be very repetitive. We might explore alternatives like #426.

@jpmckinney jpmckinney added Schema Relating to other changes in the JSON Schema (renamed fields, schema properties, etc.) Focus - Publishing and removed Focus - Extensions Relating to new or proposed extensions, or the governance and maintenance of extensions Focus - Publishing labels Dec 10, 2018
@jpmckinney jpmckinney changed the title Embed package level metadata into a record/release Add publisher to the release schema Dec 10, 2018
@jpmckinney
Copy link
Member

Noting that, with respect to semantics, the release-level publisher should be the original publisher, and should be immutable like the other fields in the release.

jpmckinney added a commit to open-contracting-extensions/ocds_pagination_extension that referenced this issue Apr 15, 2020
@jpmckinney jpmckinney changed the title Add publisher to the release schema Add publisher field (release schema) Jul 17, 2020
@jpmckinney jpmckinney added Schema: Fields Relating to adding or deprecating fields in the JSON Schema and removed Schema Relating to other changes in the JSON Schema (renamed fields, schema properties, etc.) labels Jul 17, 2020
@jpmckinney
Copy link
Member

Here is an extension implementing the field: https://github.com/CompraNet/ocds_releasePublisher_extension

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Focus - Packages Relating to release packages and record packages quick Schema: Fields Relating to adding or deprecating fields in the JSON Schema
Projects
Status: Done
Development

No branches or pull requests

3 participants