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

Register MIME Types #412

Closed
tparisi opened this issue Sep 16, 2015 · 23 comments
Closed

Register MIME Types #412

tparisi opened this issue Sep 16, 2015 · 23 comments

Comments

@tparisi
Copy link
Contributor

tparisi commented Sep 16, 2015

Just a task, we should do it soon, register MIME types for glTF and binary glTF

Current thinking is

model/gltf+json
modle/gltf+binary

@tparisi
Copy link
Contributor Author

tparisi commented Sep 16, 2015

Related to #400

@RemiArnaud
Copy link
Contributor

Not sure you got my previous message.
COLLADA Mime type is registered with IANA under model/vnd.collada+xml

it is IANA that insisted that we use vnd. prefix, considering Khronos as a vendor.

so, why not keeping the same for gltf?
model/vnd.gltf+json

I don't see the use of binary in mime type. octet-stream is used to designate raw binary formats.
so it would be
model/vnd.gltf+octet-stream

Note the way I understand '+' in mime type is not to decorate a type, but to provide alternate ways to handle it. I'm not sure one can use gltf+json and gltf+octet-stream to specify 2 different formats.

model/ is defined to be a 3D model. Would a 'model/vnd.gltf+octet-stream' or would it be the binary data that is used by the 'model/vnd.gltf+json'?

If it is the later, then I'd just use the standard application/octet-stream for the binary data. Meaning its just a bunch of bytes that can't really be used without more context.

@mlimper
Copy link
Contributor

mlimper commented Sep 16, 2015

model/ is defined to be a 3D model. Would a 'model/vnd.gltf+octet-stream' or would it be the binary data that is used by the 'model/vnd.gltf+json'?

I think the idea was to have an own mimetype for the binary version of glTF. Since binary_glTF can be self-contained (binary header, JSON and binary data all in one file), the server would then send a binary_glTF file and communicate this using the respective mimetype. This would justify two different mimetypes for glTF, I guess?

@tparisi
Copy link
Contributor Author

tparisi commented Sep 16, 2015

@RemiArnaud didn't realize IANA forced this... that's weird. Khronos isn't a vendor, it's a consortium. Well, we can try.

Regarding the second point it sounds like we'd want to go with model/gltf-binary (or with vnd. prefix), right? the dash is a legal part of the identifier, right?

@RemiArnaud
Copy link
Contributor

I see 'dot' used more than '-'

so maybe this:

model/vnd.gltf.binary
model/vnd.gltf+json

@tparisi
Copy link
Contributor Author

tparisi commented Sep 16, 2015

yeah sure that would be fine, too

@DRx3D
Copy link

DRx3D commented Sep 18, 2015

tl;dr
Skip to bottom for a summary.

When Web3D registered the X3D MIME types, we kept meticulous records of the submission and resources. Most of the material is available at http://www.web3d.org/wiki/index.php/X3D_MIME-Type

A standards tree registration requires submission by a standards-related organization. I do not know Khronos qualifies in the eyes of IANA and needs to have adequate documentation. ISO is a recognized standards-related organization as seen by Web3D's submission and approval of model/x3d.

The MIME format is {type-name}/[facet-name.]{sub-type name}[+/-] [; parameters]

Model does appear to the proper {type-name}

If allowed, the {sub-type name| would be 'gltf'. Only if required would the facet-name be used - probably vnd. It is much preferable to get to use the first one. The dot character has a specific meaning (delineator) and is only allowed with a facet (e.g., 'vnd').

At the time Web3D was registering X3D, we were told that only "approved" suffixes would use +{suffix} (e.g., +xml). The use of '-' is as a word separator (e.g., 'x3d-vrml')

As far as I can tell any formatting suffix used is equivalent to application/{suffix}. So for '+json' the entire file would need to follow the JSON encoding rules.

As I understand gltf (which is by no means a complete understanding), the 'parameters' field might be a better indicator for binary vs. json, especially if the file is not fully JSON.

There are also restrictions on standards tree (non vnd) MIME types in both the copyright of the standard document and proprietary formats.

Summary:

  • Actual registration process is fairly easy
  • Intellectual property issues may need to be addressed
  • Format is one of (or some near variant)
    • model/gltf
    • model/vnd.gltf
    • model/vnd.gltf+json
    • model/vnd.gltf-json
    • model/vnd.gltf-binary
  • The process takes a month or two per round, probably 2 rounds

@pjcozzi
Copy link
Member

pjcozzi commented Sep 18, 2015

@DRx3D thanks for the detailed explanation. glTF is a JSON file. It might reference external files such as images, but those have separate MIME types. "Binary glTF" is a glTF extension that defines a binary container format, which embeds the JSON and binary data (geometry, images, animations). Based on this, do you think we should propose:

  • model/gltf+json // standard glTF
  • modle/gltf+binary // Binary glTF

@DRx3D
Copy link

DRx3D commented Sep 18, 2015

Standard glTF (model/gltf+json) is correct (if it goes standard)
There is no generic binary subtype. You would either need to use model/gltf-binary or fit it into one of the recognized sub-types.

@tparisi
Copy link
Contributor Author

tparisi commented Sep 18, 2015

@DRx3D yes that works for us, gtlf-binary. Thanks so much...

@pjcozzi
Copy link
Member

pjcozzi commented Sep 18, 2015

OK, so we are initially proposing:

  • model/gltf+json
  • model/gltf-binary

@RemiArnaud
Copy link
Contributor

yes, exactly what I already wrote above about binary.

Also, you should use vnd, because during the discussion between Khronos and IANA about MIME type, IANA asked to use vnd. Also DrX3D explained why.

Should be:
model/vnd.gltf+json
model/vnd.gltf-binary

@emackey
Copy link
Member

emackey commented Sep 21, 2015

For what it's worth, Cesium is currently using:

model/vnd.gltf+json
model/vnd.gltf.binary

@RemiArnaud
Copy link
Contributor

then there's no need to change IMHO -> what Cesium is currently using is fine.

@tparisi
Copy link
Contributor Author

tparisi commented Sep 22, 2015

IMHO we shouldn't have to have a vnd. prefix in the MIME type. Khronos is not a vendor, it's a non-profit standards body. Shouldn't have happened with COLLADA either. So I would like to push on this.

@RemiArnaud
Copy link
Contributor

You may want to contact Neil or Mark Barnes for the trail of emails between IANA and Khronos.
Anyways, someone from the Khronos Group need to contact IANA again for gltf mime-type if you want to drop the vnd. Would be nice to drop vnd for collada as well. Maybe by now IANA has heard of Khronos involvement in the web space :-)

@tparisi
Copy link
Contributor Author

tparisi commented Sep 22, 2015

yes that would be good, too. @pjcozzi who is going to talk to IANA about this for us?

@DRx3D
Copy link

DRx3D commented Sep 22, 2015

The IESG (IETF's Steering Group) is the organization that determines which standards groups can submit, "Requests from other organizations will be confirmed by the IESG"
https://www.iana.org/assignments/iesg-recognized-organizations/iesg-recognized-organizations.xhtml

I quickly checked the IESG page (https://www.ietf.org/iesg/) and did not find an obvious page that describes the review process.

@pjcozzi
Copy link
Member

pjcozzi commented Sep 22, 2015

@pjcozzi who is going to talk to IANA about this for us?

Looking into it.

@pjcozzi
Copy link
Member

pjcozzi commented Oct 15, 2015

Labeling as post 1.0. However, I'd like us to get rolling on this right soon.

@uklumpp
Copy link
Contributor

uklumpp commented Mar 1, 2016

You can assign this to me if you want.

@pjcozzi
Copy link
Member

pjcozzi commented Mar 1, 2016

@uklumpp I don't think you have the right GitHub permissions for this (email me if you want them), but consider this assigned. Thanks!

@pjcozzi
Copy link
Member

pjcozzi commented Oct 12, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants