semanticarts / gist

Semantic Arts gist upper enterprise ontology
Creative Commons Attribution 4.0 International
163 stars 18 forks source link

Out with MimeType, In with MediaType Proposal #434

Closed dhurlburtusa closed 3 years ago

dhurlburtusa commented 3 years ago

Based on what I've read in RFC 6838 (which obsoletes RFC 4288, which obsoletes RFC 2048), especially the historical note: https://tools.ietf.org/html/rfc6838#section-1.1, seems like we should be using the term "media type" instead of "mime type". I couldn't find an article actually stating that "mime type" is obsoleted. Since MIME is still valid/relevant, I would take "mime type" to mean a subset of "media type". That is, a MIME Type is a media type used in the MIME context.

I assume that gist:MimeType is actually intended to be any "media type" as defined by RFC 6838.

So, how about the following for Gist v9.6:

In Gist v10: Remove gist:MimeType.

Even RFC 2046 - "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types" doesn't use "MIME Type". It uses "media type". Same with RFC 2045 - "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies".

Very few of the MIME related RFCs actually use "MIME type". Many of the RFCs that do contain "media type" have been obsoleted by other newer RFCs.

https://en.wikipedia.org/wiki/Media_type starts with "A media type (formerly known as MIME type)" with a footnote to https://www.iana.org/assignments/media-types/media-types.xhtml.

Maybe something to bring up at the next Gist Council.

We can also consider redefining MimeType to be the type of a Mime artist. 😅

Jamie-SA commented 3 years ago

Just a correction, there is no gist:MIMEType, there is a gist:MimeType.

gist:GeneralMediaType is different. It's skos:definition is: "The real-world media type for content." and it's skos:example is: "Audio, still image, video, textual, physical (e.g., a statue), or performance (i.e. a play). Or it could be oil or pastel for a painting."

dhurlburtusa commented 3 years ago

Thanks @Jamie-SA. I think I was looking at the label and saw MIME. I have updated the initial entry.

I saw the definition and example but wasn't 100% sure what was meant by "real-world". Sounds like the string is fairly freeform and not necessary machine understandable -- more for human consumption.

uscholdm commented 3 years ago

I would take "mime type" to mean a subset of "media type".

If this is true then the class for mime type should be a subclass for the class for media type, not owl:sameAs (which is only for individuals, for classes it would be owl:equivalentClass).

REVISED PROPOSAL:

OPTION:

dhurlburtusa commented 3 years ago

If this is true then the class for mime type should be a subclass for the class for media type, not owl:sameAs (which is only for individuals, for classes it would be owl:equivalentClass).

Thanks for the explanation. (Wish someone would write a book to demystify OWL. 😄). I updated the proposal.

To clarify what I mean by subset: The media types that are used by MIME are a subset of the individuals of the proposed gist:MediaType. In the old days, it was a very small subset of those media types. But as mail servers have been able to support more media types, the subset has grown. (Note: I am not a MIME expert and my have misspoken about some of its details.)

At the moment, I don't think there really is a need for a subclass of the proposed gist:MediaType to indicate the set of individual media types used in the MIME context. But for backwards compatibility in v9, it can become a subclass that is deprecated (assuming making a subclass would be backwards compatible, I don't know yet how making an existing class a subclass of a new class affects the use of the ontology. It sounds safe).

If there is a real need to distinguish which media types only apply to MIME, then maybe keep it around. I might come back with some other ideas as I continue to learn about OWL (I'll have a better understanding after the next chapter in Demystifying OWL.)

The term MIME type is really just a carry-over due to the history of MIME and media types. The MIME RFCs use the term media type. Some of them only reference the term "MIME type" for historical reasons.

The gist:GeneralMediaType represents something different than the media type as defined by RFC 6838. gist:MediaType would have individuals representing the various media types (e.g., text/plain, html/plain, application/json, etc). gist:GeneralMediaType sounds likes its more about the type of medium used: audio, visual, canvas, fresco, bronze, digital, etc.

rjyounes commented 3 years ago

@dhurlburtusa It seems to me that what @Jamie-SA is pointing out is that gist:GeneralMediaType does not refer to the media type in the technical sense (I.e., in an HTTP header) but to the ordinary usage in the real world. The concept 'oil painting' is certainly not something that goes into an HTTP header (that would indeed be interesting). So there's no subclassing relationship at all. I agree with @uscholdm that the term should be renamed by removing 'General.' If 'MIME type' is an outmoded term in reference to HTTP headers, then we should change the name of the class to HttpMediaType or something similar.

A couple of logistical points:

uscholdm commented 3 years ago

Can someone summarize what the latest proposal is?

dhurlburtusa commented 3 years ago

It seems to me that what @Jamie-SA is pointing out is that gist:GeneralMediaType does not refer to the media type in the technical sense (I.e., in an HTTP header) but to the ordinary usage in the real world.

Yes, totally agree. It has a different meaning than the media type defined in RFC 6838 which is used in many, many places such as MIME, the Content-Type request and response HTTP headers, and probably others.

I agree with @uscholdm that the term should be renamed by removing 'General.'

I don't think anything needs to be done with gist:GeneralMediaType unless the current class name doesn't have an ideal name or if its concept is just not useful and has become extra baggage. I agree that its name alone doesn't really convey what it represents, that is also outside the scope of this proposal.

I don't agree with just removing "General" from "GeneralMediaType" because then it collides with the gist:MediaType class I think we should use in place of gist:MimeType.

If 'MIME type' is an outmoded term in reference to HTTP headers, then we should change the name of the class to HttpMediaType or something similar.

It's not an outmoded term in reference to HTTP headers. It's a outmoded term in general. Media types are used in MIME, used with certain HTTP headers, and probably in several other contexts that I am aware of. The media type is a concept that can stand on its own. So, there is no need for a gist:HttpMediaType. gist:MediaType should suffice.

If someone thinks there needs to be a grouping mechanism for the different instances of gist:MediaType, great, but that is outside of the scope of a name change.

I hope that make it clear.

when a term is deprecated and replaced with another term, the owl:equivalentClass assertion goes on the deprecated term, not the new term.

Are you saying that gist:MediaType owl:equivalentClass gist:MimeType should be gist:MimeType owl:equivalentClass gist:MediaType? If so, thank you for the correction. I haven't yet read anything about owl:equivalentClass. I'm still new to OWL.

Summary

Replace gist:MimeType with gist:MediaType, (It's effectively a rename. I think its semantics have always been correct. I just don't think we should continue to use the old historical name. The skos:prefLabel would need to be updated to something like "Media Type". I think the skos:definition should also be updated to minimize any confusion. Added a skos:example may be helpful too.)

I don't know enough OWL to know how exactly to do this in a backwards compatible manner. I'll let those with more experience decide the best way for that.

uscholdm commented 3 years ago

I don't agree with just removing "General" from "GeneralMediaType" because then it collides with the gist:MediaType class I think we should use in place of gist:MimeType.

First, there is no gist:MediaType. think that gist:GeneralMediaType should be renamed to gist:MediaType.

Second, if we want to get rid of gist:MimeType then we need to replace its use in the restriction on gist:RenderedContent. Do we want to do that? I've never used this content stuff in gist, but we are doing more content projects these days, it might get used.

dhurlburtusa commented 3 years ago

First, there is no gist:MediaType. think that gist:GeneralMediaType should be renamed to gist:MediaType.

There is no gist:MediaType at the moment. The point of this proposal is to rename gist:MimeType to gist:MediaType so that it does exist. gist:MediaType is the most logical name for the semantics it has.

AFAIK, no one currently needs a class with the semantics that gist:GeneralMediaType has. If someone does, then they should use it. If they don't like the name, then they should create a separate proposal to rename it to something else but not to gist:MediaType because I think that name should be reserved for what is being proposed by this proposal. @Jamie-SA needs to use gist:MimeType but this class has the historical name but correct semantics. There is not need to continue with the old historical name which is now a misnomer. I don't think we should continue using misnomers.

Jamie-SA commented 3 years ago

@uscholdm

First, there is no gist:MediaType.

No one has said that there is currently a gist:MediaType. The proposal is to create one.

think that gist:GeneralMediaType should be renamed to gist:MediaType.

The mention of gist:GeneralMediaType should be ignored as it is not related to this issue. Despite similar names the newly proposed gist:MediaType is unrelated to the definition of gist:GeneralMediaType, they are 2 separate concepts.

If you think there is something wrong with gist:GeneralMediaType I would say that should be a separate issue.

Second, if we want to get rid of gist:MimeType

The suggestion was not to get rid of gist:MimeType completely, just that gist:MediaType would be a more correct name.

The proposal is to deprecate gist:MimeType and replace it with gist:MediaType. It is simply a name/Term change suggestion.

Second, if we want to get rid of gist:MimeType then we need to replace its use in the restriction on gist:RenderedContent.

Simply replace every gist:MimeType with gist:MediaType. It is simply a name change, no other semantic changes are suggested.

rjyounes commented 3 years ago

@dhurlburtusa There are two issues: (1) which classes do we need? and (2) what should the be called?

(1) I would assume we need two classes, currently named MimeType and GeneralMediaType. The latter is only distantly related to the technical sense of the media type that has replaced MIME type in ordinary speech. We should not get rid of the class itself just because we are contemplating changing the name of MimeType to MediaType.

(2) Now there's the naming consideration. We need two names that will not be confused with one another, which in my mind rules out having both MediaType (currently MimeType) and GeneralMediaType (currently GeneralMediaType). At least of those names has to change, because 'general' doesn't sufficiently clarify the difference. Do you or anyone else have a suggestion for the two names that are sufficiently different to not be confused with one another, and yet close enough to common usage that they accurately represent the concepts? This was the reason behind my suggestion of HttpMediaType, but if that's not accurate, can you provide a suggestion that is?

Jamie-SA commented 3 years ago

Re: gist:MediaType - iana.org publishes a well defined, standardized listing of digital media format identifiers. These are well known in the industry as Media Types and they have a very specific meaning. I do think gist:MediaType is more correct than gist:MimeType.

On the other hand, you could say that the Iana media types is a taxonomy and therefore should be modeled as such. ?

I've read the description for gist:GeneralMediaType a couple of times.

skos:definition "The real-world media type for content."^^xsd:string ; skos:example "Audio, still image, video, textual, physical (e.g., a statue), or performance (i.e. a play). Or it could be oil or pastel for a painting."^^xsd:string ;

The key differentiator is the words "real-world" as opposed to the existing gist:MimeType which is for digital media. It also seems to be geared towards a Taxonomy or "Folks-onomy". I have not thought of a word that encompasses the meaning and extent of what was meant. Unless you want to call it gist:RealWorldMediaType? I would be OK leaving it as gist:GeneralMediaType.

uscholdm commented 3 years ago

I' don't know a lot about this topic and I am frankly a bit confused by this notion of real world media type vs. media type. Is this thing we created and called GeneralMediaType an in-house SA term? If so, is anyone using it?

M.