Subject: [media-types] Fwd: "Cool" Linked Data URIs for all IANA mediatypes?

From: Stian Soiland-Reyes <[email-masked]>
Date: Tue, 14 Oct 2014 02:07:05 +0100

tl;dr: Ensure every registered media type has a corresponding URI,
avoid 404 for http://www.iana.org/assignments/media-types/text/plain

In Linked Data [1][2] we need identifiers for common resources. These
identifiers are typically so-called "Cool URIs" [3].

Internet Media Types are commonly referred to when describing resource
metadata, particularly in the case of packaging or redistributing
resources.

Many newer mediatypes have individual pages at iana, like:

  http://www.iana.org/assignments/media-types/application/pdf

Put many mediatypes do not have such a "cool URI", e.g.

  http://www.iana.org/assignments/media-types/text/plain
  404 Not Found

I therefore feel that as a third-party I am not at liberty to "invent"
such URIs by simply appending the registered (or unregistered!) type
to an URI template

  http://www.iana.org/assignments/media-types/{type}/{subtype}

Additionally there is no RDF information available for media-types
using content-negotiation at iana.org - some of the URIs give HTML,
other plain text.

Some third-party efforts have been made to create alternative URIs to
identify media types:

http://purl.org/NET/mediatypes/text/plain

(sadly the above does not content-negotiate to RDF either)

Those are achieved by screen scraping of iana,org, and is also
available as a (probably by now outdated) RDF dump [5].

Example of usage of these identifier beyond the Linked Data world,
from the COMBINE Archive [6], page 7:

> The Internet Media type URI should be of the form
> http://purl.org/NET/mediatypes/
> followed by
> the Media type name. Here are a few examples:
>
> for png (Portable Network Graphics) http://purl.org/NET/mediatypes/image/png
> for pdf (Portable Document Format) http://purl.org/NET/mediatypes/application/pdf

(There the use of URIs allow one to mix and match official IANA media
types with other format identifiers)

How to describe mediatypes in RDF is still a bit unclear, it is
however common to use Dublin Core's "format" property, although there
are two approaches:

  <http://example.com/image.png> dc:format "text/html"

No links to follow here.. and dc:format also allows any kind of format
literals like "VHS" and "Polaroid". Easy to use, though.

The dcterms:format property [7] is more suited as it goes to a
resource, but is a bit cumbersome to describe correctly as an IANA
type, see [4]

I would want to propose for IANA to support this directly for all
registered types without needing the volunteer effort of
http://purl.org/NET/mediatypes/

<http://example.com/page.html> dcterms:format
<http://www.iana.org/assignments/media-types/application/pdf> .

Resolving http://www.iana.org/assignments/media-types/application/pdf
with content negotiation to Accept: text/turtle should give something like:

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix dcam: <http://purl.org/dc/dcam/> .

<http://www.iana.org/assignments/media-types/application/pdf> a
dcterms:FileFormat ;
  owl:sameAs <http://purl.org/NET/mediatypes/application/pdf> ;
  dcam:memberOf dcterms:IMT ;
  rdfs:label "application/pdf" ;
  rdf:value "application/pdf" ;
  rdfs:isDefinedBy <http://www.iana.org/assignments/media-types> ;
  rdfs:seeAlso <http://www.iana.org/assignments/media-types/application/pdf.txt>

Resolving <http://www.iana.org/assignments/media-types> for
Accept: text/turtle should give the concatenation (without repeated @prefix)
of all those.

Support for other RDF formats like application/rdf and
application/ld+json should also be considered.

Is this something for IANA to consider?

As a minimum what I am hoping for is a predictable URI pattern that we
can use for any registered IANA type - e.g. so that
http://www.iana.org/assignments/media-types/text/plain and friends
don't give a 404.

[1] http://www.w3.org/DesignIssues/LinkedData.html
[2] http://www.w3.org/standards/semanticweb/data
[3] http://www.w3.org/TR/cooluris/
[4] https://gist.github.com/stain/4635250
[5] http://mediatypes.appspot.com/
[6] http://co.mbine.org/system/files/omex.version-1.pdf
[7] http://purl.org/dc/terms/format

-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
http://soiland-reyes.com/stian/work/ http://orcid.org/0000-0001-9842-9718