[comp.mail.multi-media] Means of defining media types

craig@gpu.utcs.utoronto.ca (Craig Hubley) (08/20/90)

In existing and proposed systems, I see basically three forms of definition
for new types of multimedia mail/document types, and a quick sketch of the
pros (+) and cons (-) of each:

	1. Formal (worldwide, national) standardization
		ODA approach
		(types are defined in standards meetings)

	  + guaranteed compatibility once standard is in place
	  - long lead-times for new types, negotiation politically motivated

	2. Consensus-based (organizational, group) informal standardization
		SGML DTD approach, NeWS, IFF, various MM mail systems
		(types are defined in a metalanguage or metaformat)

	  + types emerge from needs of user groups, obey group boundaries
	  - types tend to be tied to immediate needs, become obsolete quickly,
	    hard to guarantee trusted types

	3. Application as media type (by platform, vendor, vendor group)
		some IFF types, Apple System 7.0, NewWave, OMG initiatives
		(types are defined by code in an ordinary programming language)

	  + types a 'free' side-effect of applications, integrated with OS
	  - hard to guarantee trusted types, some applications unsuitable types
	    each user must have access to same application to interpret type

There may be more.  There would seem to be a role for each of the above.  In
2 and 3 above, types (applications) can be sent in the mail itself, bringing
up the much-discussed "trust problem".  

I think a means of generating and sharing type definitions, independent of
applications, and having systems understand and incorporate them automatically,
is going to be required in 'the' eventual system.  In other words, you will be
bundling up a "reader" (storage/transmission-->internal), "writer" (internal->
storage/transmission), and "viewer" (internal-->human-readable/viewable)
programs/functions that would somehow integrate with the rest of the MM 
document world - in short, you are providing an encapsulated object.

To do anything with the object other than "view" it, would require a more
elaborated sense of internal structure.  Of course, that admits the possibility
of composition from other types, so the structure would have to be recursive.

Any definition of a new type would have to provide at least these three
components.  In (1), the reader, writer, and viewer are typically provided 
within the scope of a single application.  In (2), such definitions are more
separable and may potentially be exchanged across all members of a group,
without having to necessarily exchange the application that generates them.
A standard metalanguage (SGML, PostScript, etc.) may define the form of the 
media type and means of displaying it, or interacting with it.  This is a
separable (and possibly more secure) level above the operating system.  Reader
and writer are standard system facilities, the 'viewer' is the interpreter for
the metalanguage.  In (3) that metalanguage is the operating system itself.  
Each new application is a new media (document) type.  Interactive access is 
granted by the window system.  Programmed access is granted by the OS or its
"object manager", which brokers messages to objects (applications+documents).
Reader, writer, and viewer are all standard system facilities.  There is no
need for a separate 'multimedia' mail or document system.

It seems to me that there is need for all three:  the safety, customized 
support, and user-group-driven character of a metalanguage approach, the
incremental and practical character of an application-as-object approach,
and the comfort of some international standards.

Ideally, an ISO-standard, incrementally compilable programming language (SGML?
C? CommonLISP?) with an appropriate toolkit or applications framework
(functions to be defined by the user) could provide a standard means of 
definition, and some predefined standard types, while a standard OS framework
(like POSIX ?) could provide a standard means of supporting alternate forms 
of definition (other languages, fullblown alternate mail systems, etc.).  The
key to me seems to be abstracting the notion of a 'media' or 'document' type.

I suggest that the definition of 'object' provided in O-O languages is the
best place to start:  encapsulated objects in charge of their own internals,
exporting only a limited set of functions to the world, and having an identity
independent of the means used to store, transmit, or display them - each would
know only how to provide a standard bytestream to a display device, which would
have a means of looking up the appropriate display technique.  An SGML DTD is
supposed to be a representation of structure only, and actual compilation to
display/print form is supposed to be accomplished with a separate tool.  So
far so good, but a DTD is not exactly a real 'type' the way things work now.
Could someone more familiar with SGML suggest a way this might actually work?
Or how SGML might become more 'object-oriented' in general ?

I think it would be worthwhile to nail down some of these issues before
arguing about what ODA will/won't do... what is the real, eventual, goal ?
Is it written down in any sort of a manifesto, as has been done for object-
oriented databases ?  Does the MHEG have anything of this sort ?  Have they
released any documents, or have any public discussion ?  How is it contacted ?
Do any of them read this group ?

Stirring the pot,

  Craig Hubley                     kid after Live Aid: "Is that it?"
  Craig Hubley & Associates        ---------------------------------
  craig@gpu.utcs.Utoronto.CA   UUNET!utai!utgpu!craig   craig@utorgpu.BITNET
  craig@gpu.utcs.toronto.EDU   {allegra,bnr-vpa,decvax}!utcsri!utgpu!craig
-- 
  Craig Hubley                     kid after Live Aid: "Is that it?"
  Craig Hubley & Associates        ---------------------------------
  craig@gpu.utcs.Utoronto.CA   UUNET!utai!utgpu!craig   craig@utorgpu.BITNET
  craig@gpu.utcs.toronto.EDU   {allegra,bnr-vpa,decvax}!utcsri!utgpu!craig