Module - Level - Profile in W3C Specifications

hi,

It's always very difficult for a developer to understand the 
organization of a technology.

	Some are monolithic, some are defined on multiple documents, some are 
organized in terms of profiles, modules or levels, but not necessary in 
the same way. What are we able to learn from the W3C Specifications.

* Monolithic: the whole technology is defined in only one specification
	Ex: HTML 3.2, CSS 1
* Composite: the technology is defined by multiple specs.
	Ex: CSS 3, XML Schema

=== Monolithic ===

* PNG - 1996 - uses the term profile to refer to ICC profile
	which is a
	"""Description of the colour space
	(in the form of an International Color
	Consortium (ICC) profile) to which the
	samples in the image conform."""

* PicsRules - 1997 - The technology is a language to define profiles. 
These profiles will be used by browsers to block access to content. A 
profile in this case is a set of options using a technology.

* Dom Level 1 - 1998 - Level is used to identify an history in the 
technology.

* CSS Level 1 - 1996 (Rev 1999) - uses the term "level" for the version 
number of the technology.
	-----> CSS Level 2

* WCAG - uses of levels to define a set of features to be implemented. 
When you have reached a level, you can do more by implementing more 
features. One level is always inclusive than the previous one.

* ATAG follow the level of WCAG

* XHTML Modularization - is an interesting case. They define severals 
modules (with a CORE one, we could say a minimum profile but not called 
per se a profile) which is a tool to create other specifications like  
XHTML 1.1, XHTML Basic, XHTML Print or external specifications. In the 
chapter 5 they talk about the notion of profiles like a set of modules 
for a specific application.

* QA Framework - Three independent sets of specifications which are 
using the levels in the same way than WCAG

* HTML 4.01 has a notion of profile but which is completely unrelated 
to the topic. I mention it to avoid the confusion.

* SMIL 2.0 is very big compared to SMIL 1.0 and introduces the notion 
of Modules and Profiles. A few profiles are defined but the spec is a 
monolithic one, which seen from outside is more consistent for a 
developer.

* UUAG: A very particular case. There's a notion of level as usual for 
WAI but the notion of profile is very dependant on each person creating 
a unique kind of profile.

* SVG 2.0 is made of modules. Though there's no profile, it seems you 
have to implement everything. In this case it's more how to cut the 
technology.

* SVG Tiny and Basic are particular profiles using the modules of SVG 
1.1

=== Composite ===


* CSS Level 3 - still in dev - is a collection of little modules, the 
implementations are supposed to follow a profile if this one is 
developed. For now there's still no master document. The profile is a 
set of modules put together

* Dom Level 2
	includes 14 modules. Core Module is fundamental and others are 
optional. Surprising thing the Dom Level Core document has a reference 
to Dom Level 2 HTML which is not yet a rec at the time of the 
publication
	There's a mention of level of conformance but not really defined per 
se. No mention of profiles.
	---> Dom Level 3 - still in dev.
	defines 16 modules
There is no notion of profile even if the fact to have different 
"levels" of conformance could be assimilated to profiles.

=== Conclusion ===
Level used as version number: CSS, DOM
	or used as level of Conformance

Modules as a piece of technology sometimes in an indivual spec, 
sometimes in a monolithic spec. Modules can be associated together.

Profiles are a set of modules to define the application of the 
technology in a particular context. Some specs are definition of 
profiles and called like that like in CSS 3 (CSS Mobile Profile for 
example). Some specs are definitions of profiles but are not called 
profiles like XHTML 1.1


-- 
Karl Dubost - http://www.w3.org/People/karl/
W3C Conformance Manager
*** Be Strict To Be Cool ***

Received on Monday, 8 December 2003 00:07:06 UTC