INTERNET-DRAFT Ralf Dorfner
Intended Status: Proposed Standard
Expires: October 18, 2018 April 16, 2018
SimpleMetadata: An interoperable format for sharing metadata
draft-dorfner-core-simplemetadata-00
Abstract
This document describes a container format for storing serializable
metadata. 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
The list of Internet-Draft Shadow Directories can be accessed at
Ralf Dorfner Expires October 18, 2018 [Page 1]
INTERNET DRAFT SimpleMetadata April 16, 2018
http://www.ietf.org/shadow.html
Copyright and License Notice
Copyright (c) 2018 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 October 18, 2018 [Page 2]
INTERNET DRAFT SimpleMetadata April 16, 2018
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Header Definition . . . . . . . . . . . . . . . . . . . . . 4
2.2 Identifier . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Serialization . . . . . . . . . . . . . . . . . . . . . . . 4
2.4 Crypto . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.5 Major Version . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 Minor Version . . . . . . . . . . . . . . . . . . . . . . . 5
2.6 Schema URI length . . . . . . . . . . . . . . . . . . . . . 5
2.5 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
, Exif or Dublin Core
[RFC5013]. SimpleMetadata shall create the foundation to unite these
standards and provide an universal and open container format. The
metadata payload shall be created, stored and shared with an open
standard, like JavaScript Object Notation (JSON) [RFC7159] in
combination with schema validation . 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 October 18, 2018 [Page 3]
INTERNET DRAFT SimpleMetadata April 16, 2018
2. Structure
The SimpleMetadata format consists of the three parts, Header, Schema
URI and Metadata payload.
+-------------------------------------------------------------------+
| Header (14 bytes) (fixed length) |
+-------------------------------------------------------------------+
| Schema URI (variable length, optional) |
+-------------------------------------------------------------------+
| Serialized Metadata (variable length) |
+-------------------------------------------------------------------+
2.1 Header Definition
The header must be stored at the beginning of a file.
+----------------------------------------------------------------+
| Identifier "SMD@" 4 Bytes / string |
+----------------------------------------------------------------+
| Serialization 1 Byte / number |
+----------------------------------------------------------------+
| Crypto 1 Byte / number |
+----------------------------------------------------------------+
| Major version 1 Byte / number |
+----------------------------------------------------------------+
| Minor version 1 Byte / number |
+----------------------------------------------------------------+
| Schema URI Length 2 Bytes / number |
+----------------------------------------------------------------+
| Content Length 4 Bytes / number |
+----------------------------------------------------------------+
2.2 Identifier
The first four bytes of the header are always "SMD@" to check if
SimpleMetadata is present.
2.3 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)
with the JavaScript Object Notation (JSON) [RFC7159].
0 = BSON
2.4 Crypto
Defines the used crypto standard for en/decrypting metadata.
Ralf Dorfner Expires October 18, 2018 [Page 4]
INTERNET DRAFT SimpleMetadata April 16, 2018
0 = None encryption
1 = Advanced Encryption Standard (AES)
2.5 Major Version
Defines the used major version of the SimpleMetadata format.
1 = Current major version
2.6 Minor Version
Defines the used minor version of the SimpleMetadata format.
0 = Current minor version
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.5 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 October 18, 2018 [Page 5]
INTERNET DRAFT SimpleMetadata April 16, 2018
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,
.
[RFC5013] Kunze J., Baker T.
The Dublin Core Metadata Element Set,
August 2007
[RFC2044] Francois, Yergeau
UTF-8, a transformation format of Unicode
and ISO 10646, October 1996
.
[Internet-Draft] Wright, A.
JSON Schema: A Media Type for Describing
JSON Documents, November 19, 2017
Authors' Addresses
Ralf Dorfner
Muensterplatz 8
88250 Weingarten
Germany
EMail: smd@simplemetadata.org
Ralf Dorfner Expires October 18, 2018 [Page 6]