Internet DRAFT - draft-dorfner-core-simplemetadata
draft-dorfner-core-simplemetadata
INTERNET-DRAFT Ralf Dorfner
Intended Status: Proposed Standard
Expires: September 25, 2019 March 24, 2019
SimpleMetadata: An interoperable format for sharing metadata
draft-dorfner-core-simplemetadata-01
Abstract
This document describes a standardized container format for storing
serializable metadata. It does not describe any additional new
format, but provides a shell for the exchange of arbitrary,
structured data. It shall provide the possibility to store and share
any kind of metadata, including encryption support. The idea is to
create an open, universal and interoperable standard for storing and
distributing every kind of metadata independent from media type or
file format.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at https://www.rfc-
editor.org/info/rfc8335.
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/1id-abstracts.html
Ralf Dorfner Expires September 25, 2019 [Page 1]
INTERNET DRAFT SimpleMetadata March 24, 2019
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Ralf Dorfner Expires September 25, 2019 [Page 2]
INTERNET DRAFT SimpleMetadata March 24, 2019
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Header Definition . . . . . . . . . . . . . . . . . . . . . 4
2.2 Identifier . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Version . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Serialization . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Crypto . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.6 Schema URI length . . . . . . . . . . . . . . . . . . . . . 5
2.6 Content Length . . . . . . . . . . . . . . . . . . . . . . . 5
3 Schema information . . . . . . . . . . . . . . . . . . . . . . 5
4 Metadata Content . . . . . . . . . . . . . . . . . . . . . . . . 5
5 Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
6 Security Considerations . . . . . . . . . . . . . . . . . . . . 6
7 IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 6
8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
8.1 Informative References . . . . . . . . . . . . . . . . . . 6
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6
1 Introduction
Nowadays a variety of media file are shared and published all over
the world. Information about the origin, purpose or copyright of
these files getting more and more important. There are already
different standards which enhance files with metadata, like ID3
<http://id3.org/>, Exif <https://www.exif.org/> or Dublin Core
[RFC5013]. SimpleMetadata shall create the foundation to unite these
standards and provide an universal and open container format. The
idea is not to describe any additional new format, but provides a
shell for the exchange of arbitrary, structured data. Any metadata
payload shall be created, stored and shared with an open standard,
like JavaScript Object Notation (JSON) [RFC7159] in combination with
schema validation <https://tools.ietf.org/id/draft-handrews-json-
schema-00.txt>. Every data structure of metadata can be defined and
distributed within schema definitions. Furthermore, SimpleMetadata
can be extended by additional formatters or crypto standards.
1.1 Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119].
Ralf Dorfner Expires September 25, 2019 [Page 3]
INTERNET DRAFT SimpleMetadata March 24, 2019
2. Structure
The SimpleMetadata format consists of the three parts, Header, Schema
URI and Metadata payload.
+-------------------------------------------------------------------+
| Header (12 bytes) (fixed length) |
+-------------------------------------------------------------------+
| Schema URI (variable length, optional) |
+-------------------------------------------------------------------+
| Serialized Metadata (variable length) |
+-------------------------------------------------------------------+
2.1 Header Definition
+----------------------------------------------------------------+
| Identifier "SMD" 3 Bytes / string |
+----------------------------------------------------------------+
| Version 1 Byte / number |
+----------------------------------------------------------------+
| Serialization 1 Byte / number |
+----------------------------------------------------------------+
| Crypto 1 Byte / number |
+----------------------------------------------------------------+
| Schema URI Length 2 Bytes / number |
+----------------------------------------------------------------+
| Content Length 4 Bytes / number |
+----------------------------------------------------------------+
2.2 Identifier
The first three bytes of the header are always "SMD" to check if
SimpleMetadata is present.
2.3 Version
Defines the used version of the SimpleMetadata format.
1 = Current version
2.4 Serialization
Defines the used formatter for the metadata. A formatter serializes
or deserializes the metadata with the corresponding procedure. The
standard formatter uses Binary JSON (BSON) <http://bsonspec.org/>
with the JavaScript Object Notation (JSON) [RFC7159].
0 = BSON
2.5 Crypto
Ralf Dorfner Expires September 25, 2019 [Page 4]
INTERNET DRAFT SimpleMetadata March 24, 2019
Defines the used crypto standard for en/decrypting metadata.
0 = None encryption
1 = Advanced Encryption Standard (AES)
2.6 Schema URI length
Defines the string length of a schema or type. If no schema is
defined the schema length is 0. The schema information is described
in chapter 3.
2.6 Content Length
Defines the length of the serialized metadata, based on the selected
formatter (Chapter 2.3). If the content is encrypted, the length is
calculated over the encrypted string.
3 Schema information
The schema information can be used to validate the metadata against a
schema or type. A schema information is an optional string with
variable length encoded with UTF-8. It is recommended to use an URI ,
e.g. "http://exampleschemas.org/Person". Moreover a local file path
or even a type definition (AssemblyQualifiedName) can be used. For
interoperability, metadata should be based on public schema.
The length of the schema is stored in the header (See chapter 2.6).
4 Metadata Content
Basically every serializable content can be stored as metadata. It is
highly recommended to use for interoperability and compatibility the
JavaScript Object Notation (JSON) [RFC7159] for metadata and the
according schema definition.
5 Notes
Adding SimpleMetadata to a file will damage it under circumstances,
unless there is a suitable parser to handle the format!
Ralf Dorfner Expires September 25, 2019 [Page 5]
INTERNET DRAFT SimpleMetadata March 24, 2019
6 Security Considerations
Sensitive metadata can be encrypted within a supported crypto
standard (Chapter 2.4).
7 IANA Considerations
All data must be stored in UTF-8 [RFC2044].
8 References
8.1 Informative References
[RFC7159] Bray , Tim
The JavaScript Object Notation (JSON) Data
Interchange Format, March 2014,
<https://www.rfc-editor.org/info/rfc7159>.
[RFC5013] Kunze J., Baker T.
The Dublin Core Metadata Element Set,
August 2007
<https://www.rfc-editor.org/info/rfc5013>
[RFC2044] Francois, Yergeau
UTF-8, a transformation format of Unicode
and ISO 10646, October 1996
<https://www.rfc-editor.org/info/rfc2044>.
[Internet-Draft] Wright, A.
JSON Schema: A Media Type for Describing
JSON Documents, November 19, 2017
<https://tools.ietf.org/id/
draft-handrews-json-schema-00.txt>
Authors' Addresses
Ralf Dorfner
Muensterplatz 8
88250 Weingarten
Germany
EMail: smd@simplemetadata.org
Ralf Dorfner Expires September 25, 2019 [Page 6]