likecoin / iscn-specs

International Standard Content Number - decentralized content registry
https://iscn.io
Creative Commons Attribution Share Alike 4.0 International
18 stars 8 forks source link

ISP 2: ISCN core metadata specification #2

Closed Aludirk closed 4 years ago

Aludirk commented 4 years ago
ISP: 2
Title: ISCN core metadata specification
Status: Draft
Created: 2020-03-26
Edited: 2020-04-25

Motivation

ISCN architecture

Based on the ISCN architecture, the ISCN core metadata acts as a kernel of ISCN, and it connects the content itself, the stakeholders and the license with a globally unique identifier. To achieve this objective, first of all, we need to define the format of the ISCN. After that, we need to define the identifier, some core metadata, and how to link to content metadata, stakeholders and license.

Proposal

Schema

ISCN uses JSON as encodings of the data, and the schema is as following:

Property Occurs Expected Type Description
context 1 URL The context should be an URL to the schema definition, to be confirmed when this proposal is in the final stage.
id 1 String This is the identifier of ISCN, and it is in the format:
<registry-code>/<unique-id>[/<version>]

registry-code: The reserved code for a registry.
unique-id: Any string contains alphanumeric and hyphens which is [a-z][A-Z][0-9]-, provided that is unique within the given registry.
version: Once the digital content is registered, the version counts as 1. When there is any update later, the version number will go up one by one. Whenever the version is going up, the registry-code and unique-id must keep the same. Otherwise, it is an invalid ISCN. The version is optional, and if it does not provide, it means the latest version.

For example:
1/abc-xyz-123: Latest version of the ID abc-xyz-123 and from registry 1
2/music-010-1234/3: Version 3 of the ID music-010-1234 and from registry 2.
timestamp 1 DateTime The timestamp of the creation or the modification of the ISCN record. It should be a human-readable DateTime and recommends to use ISO 8601.
version 1 Number Once the digital content is registered, the version counts as 1. When there is any update later, the version number will go up one by one.
parent 0*~1 Linked Data The link to the previous version of the ISCN record which means the registry-code and unique-id in ISCN ID must be same. Otherwise, it counts as an invalid ISCN record.

* Only if the version is 1, otherwise parent must be linked.
rights 1 Linked Data The link to the information of intellectual property rights. (Define in the coming proposal.)
stakeholders 1 Linked Data The link to an array of information of stakeholders. (Define in the coming proposal.)
content 1 Linked Data The link to the content metadata. (Define in the coming proposal.)

Registry

A registry is a service provider for the ISCN registration, and a registry should provide service to register a digital content with metadata that follows the ISCN specification and to query. If any entities want to become a registry for ISCN, they should reserve a code for their registry in here.

Linked Data

Linked data is structured data that can be looked up via some methods, HTTP, RDF and URI but not limited to are all accepted.

Aludirk commented 4 years ago

Change version to context to unify among all schema. Find the diff in here.

Aludirk commented 4 years ago

Rename edition to version to separate the concepts between the version of ISCN and the edition of content. Find the diff in here.

nnkken commented 4 years ago

Since stakeholder is actually an array, and probably will contain more than 1 record in most cases, I suggest to use plural form stakeholders instead.

Also, according to #4 , license should be renamed to right or rights.

Aludirk commented 4 years ago
  1. Renamestakeholder to stakeholders
  2. Rename license to rights

Find the diff in here.