/[suikacvs]/markup/html/whatpm/readme.en.html
Suika

Diff of /markup/html/whatpm/readme.en.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.25 by wakaba, Wed Sep 17 05:48:06 2008 UTC revision 1.29 by wakaba, Sun Oct 5 06:42:04 2008 UTC
# Line 8  Technologies (beta)</title> Line 8  Technologies (beta)</title>
8  <link rel="author" href="#author">  <link rel="author" href="#author">
9  </head>  </head>
10  <body>  <body>
11  <h1>Whatpm (<em>beta</em>)</h1>  <h1>Whatpm &mdash; Perl modules for Web hypertext application technologies
12    (<em>beta</em>)</h1>
13    
14  <div class="section" id="introduction">  <div class="section" id="introduction">
15  <h2>Introduction</h2>  <h2>Introduction</h2>
16    
17  <p><dfn>Whatpm</dfn> is a <em>work-in-progress</em> set of <m>P</m>erl  <p><dfn>Whatpm</dfn> is a <em>work-in-progress</em> set of
18  <m>m</m>odules for <m>W</m>eb <m>h</m>ypertext <m>a</m>pplication  <mark>P</mark>erl <mark>m</mark>odules for <mark>W</mark>eb
19  <m>t</m>echnologies.  It is part  <mark>h</mark>ypertext <mark>a</mark>pplication
20  of the <a href="http://suika.fam.cx/www/2006/manakai/" rel=up>manakai</a>  <mark>t</mark>echnologies.  It is part of the <a
21    href="http://suika.fam.cx/www/2006/manakai/" rel=up>manakai</a>
22  project.</p>  project.</p>
23    
24  <dl>  <p>Whatpm supports various Web standard technologies, including <a
25  <dt>Modules</dt>  href="#modules-html">HTML, XHTML</a>, <a href="#modules-xml">XML</a>,
26  <dd><dl>  <a hreF="#modules-css">CSS</a>, <a href="#modules-http">HTTP</a>, and
27  <dt><a href="Whatpm/CacheManifest.html"><code>Whatpm::CacheManifest</code></a></dt>  <a href="#modules-url">URL</a>.
28    <dd>An  </div>
   <a href="http://www.whatwg.org/specs/web-apps/current-work/#manifests">HTML5  
   cache manifest</a> parser.</dd>  
 <dt id=whatpm-charset-universalchardet><a href="Whatpm/Charset/UniversalCharDet.html"><code>Whatpm::Charset::UniversalCharDet</code></a></dt>  
   <dd>A Perl interface to universalchardet character encoding detection  
   library.</dd>  
 <dt><a href="Whatpm/ContentChecker.html"><code>Whatpm::ContentChecker</code></a></dt>  
   <dd>A DOM5 HTML (in-memory representation of a document) conformance  
   checker with a partial support for Atom 1.0.  (See also  
   <a href="#demo-html-parser">demo</a>.)</dd>  
 <dt><a href="Whatpm/ContentType.html"><code>Whatpm::ContentType</code></a></dt>  
   <dd>An implementation of HTML5 Content Type sniffing algorithm.</dd>  
29    
30    <dt><a href="Whatpm/CSS/Cascade.html"><code>Whatpm::CSS::Cascade</code></a>  <div class=section id=modules>
31      <dd>A media-independent implementation of CSS cascading and value  <h2>Modules</h2>
     computation.  (See also <a href="#demo-css-parser">demo</a>.)  
   <dt><a href="Whatpm/CSS/Parser.html"><code>Whatpm::CSS::Parser</code></a>  
     <dd>A CSS parser that constructs CSSOM trees from style sheets.  (See  
     also <a href="#demo-css-parser">demo</a>.)  
32    
33  <dt><a href="Whatpm/CSS/SelectorsParser.html"><code>Whatpm::CSS::SelectorsParser</code></a></dt>    <p>Note that all of these modules are <em>work in progress</em>
34    <dd>A <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of    and have <a href="#todo">a number of unresolved problems</a>.</p>
35    selectors</a> parser.  (See also <a href="#demo-css-parser">demo</a>.)</dd>  
36  <dt><a href="Whatpm/CSS/SelectorsSerializer.html"><code>Whatpm::CSS::SelectorsSerializer</code></a></dt>    <p>Note also that some modules have no documentation for now.</p>
37    <dd>A <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of  
38    selectors</a> serializer.  (See also <a href="#spec-ssft">specification</a>  <div class=section id=modules-html-xml>
39    and <a href="#demo-css-parser">demo</a>.)</dd>  <h3>Modules for HTML and XML</h3>
40  <dt><a href="Whatpm/CSS/Tokenizer.html"><code>Whatpm::CSS::Tokenizer</code></a></dt>  
41    <dd>A CSS tokenizer.  (See also <a href="#demo-css-parser">demo</a>.)</dd>  <p id=modules-html>Modules related to HTML and XHTML are as follows:
42    <dl>
43  <dt id=module-whatpm-html><a href="Whatpm/HTML.html"><code>Whatpm::HTML</code></a></dt>  <dt id=module-whatpm-html><a href="Whatpm/HTML.html"><code>Whatpm::HTML</code></a></dt>
44    <dd>An implementation of HTML5 document and fragment    <dd>An implementation of HTML5 document and fragment
45    parsing algorithms.  It can be used    parsing algorithms.  It can be used
# Line 65  project.</p> Line 53  project.</p>
53    <dd>An implementation of the HTML5 table algorithm.  It can be    <dd>An implementation of the HTML5 table algorithm.  It can be
54    used to extract a table structure from a DOM <code>table</code>    used to extract a table structure from a DOM <code>table</code>
55    element node.  (See also <a href="#demo-html-table">demo</a>.)</dd>    element node.  (See also <a href="#demo-html-table">demo</a>.)</dd>
56    </dl>
57    
58    <p id=modules-xml>The module for <i>tentative</i> XML support is as follow:
59    <dl>
60    <dt><a href="Whatpm/XMLSerializer.html"><code>Whatpm::XMLSerializer</code></a></dt>
61      <dd>A simple XML serializer.</dd>
62    </dl>
63    
64    <p><i>Real</i> XML parser and serializer are currently not available yet.
65    
66    <p id=modules-cc>The module for conformance checking of a DOM tree (i.e.
67    a in-memory representation of an HTML or XML document) is as follows:
68    <dl>
69    
70    <dt><a href="Whatpm/ContentChecker.html"><code>Whatpm::ContentChecker</code></a></dt>
71    
72      <dd>A DOM5 HTML (in-memory representation of a document) conformance
73    checker with a partial support for Atom 1.0.  (See also <a
74    href="#demo-html-parser">demo</a> and <a
75    href="#app-webhacc">application</a>.)
76    
77    </dl>
78    
79    <p>Currently, conformance checking of HTML/XHTML and Atom documents
80    is supported.
81    
82    <p>For these modules, a DOM implementation that supports the manakai's
83    Perl binding<!-- @@ TODO: ref --> of DOM is necessary to represent a
84    document in memory.  The <a
85    href="http://suika.fam.cx/www/manakai-core/doc/web/">manakai-core</a>
86    package contains such an implementation,
87    <code>Message::DOM::Implementation</code><!-- @@ TODO: ref -->, but it
88    should also be possible to use any other implementation that supports
89    the binding.
90    
91    </div>
92    
93    <div class=section id=modules-css>
94    <h3>Modules for CSS</h3>
95    
96    <p>Modules for CSS and related technologies are as follows:
97    <dl>
98    <dt><a href="Whatpm/CSS/Cascade.html"><code>Whatpm::CSS::Cascade</code></a>
99      <dd>A media-independent implementation of CSS cascading and value
100      computations.  (See also <a href="#demo-css-parser">demo</a>.)
101    
102    <dt><a href="Whatpm/CSS/MediaQueryParser.pm"><code>Whatpm::CSS::MediaQueryParser</code></a>
103    
104      <dd>A media query parser.  Note that only CSS 2.1 media types are
105    supported at the moment.
106    
107    <dt><a href="Whatpm/CSS/MediaQuerySerializer.pm"><code>Whatpm::CSS::MediaQuerySerializer</code></a>
108    
109      <dd>A media query serializer.  Note that only CSS 2.1 media types
110    are supported at the moment.
111    
112    <dt><a href="Whatpm/CSS/Parser.html"><code>Whatpm::CSS::Parser</code></a>
113      <dd>A CSS parser that constructs CSSOM trees from style sheets.  (See
114      also <a href="#demo-css-parser">demo</a>.)
115    <dt><a href="Whatpm/CSS/SelectorsParser.html"><code>Whatpm::CSS::SelectorsParser</code></a></dt>
116      <dd>A <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of
117      selectors</a> parser.  (See also <a href="#demo-css-parser">demo</a>.)</dd>
118    <dt><a href="Whatpm/CSS/SelectorsSerializer.html"><code>Whatpm::CSS::SelectorsSerializer</code></a></dt>
119      <dd>A <a href="http://www.w3.org/TR/css3-selectors/#grouping">group of
120      selectors</a> serializer.  (See also <a href="#spec-ssft">specification</a>
121      and <a href="#demo-css-parser">demo</a>.)</dd>
122    <dt><a href="Whatpm/CSS/Tokenizer.html"><code>Whatpm::CSS::Tokenizer</code></a></dt>
123      <dd>A CSS tokenizer.  (See also <a href="#demo-css-parser">demo</a>.)</dd>
124    </dl>
125    
126    <p>For the <code>Whatpm::CSS::Parser</code> module reresenting a CSSOM
127    tree, modules in the <a
128    href="http://suika.fam.cx/www/manakai-core/doc/web/">manakai-core</a>
129    package are used.  Those modules also provide the serializer for the
130    CSSOM tree, in the form of the standard <code>css_text</code> CSSOM
131    attribute.
132    
133    </div>
134    
135    <div class=section id=modules-http>
136    <h3>Modules for HTTP</h3>
137    
138    <p>Modules for HTTP and related technologies are as follows:
139    <dl>
140    <dt><a href="Whatpm/ContentType.html"><code>Whatpm::ContentType</code></a></dt>
141      <dd>An implementation of HTML5 Content Type sniffing algorithm.</dd>
142  <dt><a href="Whatpm/IMTChecker.html"><code>Whatpm::IMTChecker</code></a></dt>  <dt><a href="Whatpm/IMTChecker.html"><code>Whatpm::IMTChecker</code></a></dt>
143    <dd>An Internet Media Type (<abbr>aka</abbr> MIME type) label    <dd>An Internet Media Type (<abbr>aka</abbr> MIME type) label
144    conformance checker.</dd>    conformance checker.</dd>
145    </dl>
146    
147    <p>Currently, support for parsing of HTTP headers and as such is not
148    yet available.
149    </div>
150    
151    <div class=section id=modules-url>
152    <h3>Module for URL</h3>
153    
154    <p>Module for the URL support is as follows:
155    <dl>
156  <dt><a href="Whatpm/URIChecker.html"><code>Whatpm::URIChecker</code></a></dt>  <dt><a href="Whatpm/URIChecker.html"><code>Whatpm::URIChecker</code></a></dt>
157    <dd>An IRI reference conformance checker.</dd>    <dd>An IRI reference conformance checker.</dd>
158    </dl>
159    
160    <p>Support for HTML5's realistic definition of URL is not available yet.
161    </div>
162    
163    <div class=section id=modules-misc>
164    <h3>Modules for other technologies</h3>
165    
166    <p>Following modules provide support for other Web-related technologies:
167    <dl>
168    <dt><a href="Whatpm/CacheManifest.html"><code>Whatpm::CacheManifest</code></a></dt>
169      <dd>An
170      <a href="http://www.whatwg.org/specs/web-apps/current-work/#manifests">HTML5
171      cache manifest</a> parser.</dd>
172    <dt><a href="Whatpm/Charset/DecodeHandle.html"><code>Whatpm::Charset::DecodeHandle</code></a>
173      <dd>A filehandle-like wrapper <a href="#doc-handles">interface</a> to
174      decode byte stream encoded in some character encoding.
175    <dt><a href="Whatpm/Charset/UnicodeChecker.html"><code>Whatpm::Charset::UnicodeChecker</code></a>
176      <dd>A Unicode character string checker.
177    <dt id=whatpm-charset-universalchardet><a href="Whatpm/Charset/UniversalCharDet.html"><code>Whatpm::Charset::UniversalCharDet</code></a></dt>
178      <dd>A Perl interface to universalchardet character encoding detection
179      library.</dd>
180      <dt><a href="Whatpm/LangTag.html"><code>Whatpm::LangTag</code></a>
181        <dd>A language tag parser and conformance checker, supporting both
182        older RFC 3066 definition and latest RFC 4646 definition.  (See also
183        <a href="#demo-langtag">demo</a>.)
184    
185    <dt><a href="Whatpm/RDFXML.html"><code>Whatpm::RDFXML</code></a>
186      <dd>An implementation of RDF/XML by which RDF triples can be extracted
187      from RDF/XML documents.
188    
189  <dt><a href="Whatpm/WebIDL.html"><code>Whatpm::WebIDL</code></a></dt>  <dt><a href="Whatpm/WebIDL.html"><code>Whatpm::WebIDL</code></a></dt>
190    <dd>A WebIDL fragment parser.  It parses an IDL fragment, whether conforming    <dd>A WebIDL fragment parser.  It parses an IDL fragment, whether conforming
# Line 78  project.</p> Line 192  project.</p>
192    Non-conforming (or broken) IDL fragment-like string will be parsed using    Non-conforming (or broken) IDL fragment-like string will be parsed using
193    CSS-like error-tolerant parsing rules, e.g. ignoring anything until next    CSS-like error-tolerant parsing rules, e.g. ignoring anything until next
194    <code>;</code> character.    <code>;</code> character.
195    </dl>
196    </div>
197    
198    <dt><a href="Whatpm/LangTag.html"><code>Whatpm::LangTag</code></a>  <!-- Whatpm::ContentChecker::*, Whatpm::H2H, Whatpm::NanoDOM, and
199      <dd>A language tag parser and conformance checker, supporting both       Whatpm::XMLParser are intentionally omitted from the list. -->
200      older RFC 3066 definition and latest RFC 4646 definition.  (See also  </div>
     <a href="#demo-langtag">demo</a>.)  
201    
202  <dt><a href="Whatpm/XMLSerializer.html"><code>Whatpm::XMLSerializer</code></a></dt>  <div class=section id=documents>
203    <dd>A simple XML serializer.</dd>  <h2>Documents</h2>
   </dl>  
204    
205    <p>Note that all of these modules are <em>work in progress</em>  <p>For the description of functionalities provided by each module, see
206    and have <a href="#todo">a number of unresolved problems</a>.</p>  <abbr>pod</abbr> documentation of the module.  HTML version of
207    <abbr>pod</abbr> documentations are linked from the <a
208    href="#modules">list of modules above</a>.
209    
210    <p>In addition, there are additional documents for some topics:
211    <dl>
212    
213    <dt><a href="http://suika.fam.cx/gate/2007/html/standards">Standards
214    supported by WebHACC</a>
215    
216      <dd>List and description of Web standards supported by the WebHACC
217    conformance checker.  Although it is a documentation for the WebHACC,
218    it is also applicable to Whatpm in general (note that WebHACC is an
219    interactive user interface for the conformance checking feature
220    provided by Whatpm).
221    
   <p>Note also that some modules have no documentation for now.</p>  
   </dd>  
 <dt id=spec>Specifications</dt>  
   <dd><dl>  
     <dt id=spec-ssft><a href="http://suika.fam.cx/www/markup/selectors/ssft/ssft"><abbr title="Selectors Serialization Format for Testing">SSFT</abbr>  
     Specification</a></dt>  
       <dd>The specification for the serialization format used for  
       testing Selectors-related modules.</dd>  
     <dt id=spec-manakai-selectors"><a href="http://suika.fam.cx/gate/2005/sw/manakai/Selectors%20Extensions">manakai's  
     Selectors Extensions</a></dt>  
       <dd>The specification for <code>:-manakai-<var>*</var></code>  
       pseudo-classes implemented by Selectors-related modules.</dd>  
   </dl></dd>  
 <dt>Documentations</dt>  
   <dd><dl>  
222  <dt><a href="http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types">List of error types</a></dt>  <dt><a href="http://suika.fam.cx/gate/2005/sw/Whatpm%20Error%20Types">List of error types</a></dt>
223    <!-- @@ TODO: Need to update the link - the document above is out of date -->
224    <dd>Description of errors to be notified to callback functions by Whatpm    <dd>Description of errors to be notified to callback functions by Whatpm
225    modules.</dd>    modules.</dd>
226      <dt><a href="Whatpm/CSS/selectors-object">Selectors object</a></dt>  
227        <dd>Description of data structure for Selectors, as implemented by  <dt><a href="Whatpm/CSS/selectors-object">Selectors object</a></dt>
228        <a href="Whatpm/CSS/SelectorsParser.html"><code>Whatpm::CSS::SelectorsParser</code></a>    <dd>Description of data structure for Selectors, as implemented by
229        (as output), and    <a href="Whatpm/CSS/SelectorsParser.html"><code>Whatpm::CSS::SelectorsParser</code></a>
230        <a href="Whatpm/CSS/SelectorsSerializer.html"><code>Whatpm::CSS::SelectorsSerializer</code></a>    (as output), and
231        (as input)<!--, and    <a href="Whatpm/CSS/SelectorsSerializer.html"><code>Whatpm::CSS::SelectorsSerializer</code></a>
232        <a href="http://suika.fam.cx/www/manakai-core/lib/Message/DOM/SelectorsAPI.html"><code>Message::DOM::SelectorsAPI</code></a>-->.</dd>    (as input)<!--, and
233      <dt id=doc-user-data-names><a href="http://suika.fam.cx/gate/2005/sw/manakai/Predefined%20User%20Data%20Names">List of predefined user data names</a></dt>    <a href="http://suika.fam.cx/www/manakai-core/lib/Message/DOM/SelectorsAPI.html"><code>Message::DOM::SelectorsAPI</code></a>-->.</dd>
234        <dd>List of user data names defined by Whatpm modules.</dd>  
235      <dt id=doc-handles><a href="Whatpm/Charset/handles">Handle objects</a>  <dt id=doc-user-data-names><a href="http://suika.fam.cx/gate/2005/sw/manakai/Predefined%20User%20Data%20Names">List of predefined user data names</a></dt>
236        <dd>Description of character or byte stream input handle interfaces.    <dd>List of user data names defined by Whatpm modules.</dd>
237      </dl>  
238    </dd>  <dt id=doc-handles><a href="Whatpm/Charset/handles">Handle objects</a>
239      <dd>Description of character or byte stream input handle interfaces.
240    </dl>
241    
242    <p>Following specifications define Whatpm-specific formats and extensions:
243    <dl id=spec>
244    <dt id=spec-ssft><a href="http://suika.fam.cx/www/markup/selectors/ssft/ssft"><abbr title="Selectors Serialization Format for Testing">SSFT</abbr>
245    Specification</a></dt>
246      <dd>The specification for the serialization format used for
247      testing Selectors-related modules.</dd>
248    
249    <dt><a href="http://suika.fam.cx/gate/2005/sw/manakai/CSS%20Extensions">manakai's
250    CSS extensions</a>
251      <dd>The specification for <code>-manakai-<var>*</var></code> properties
252      and property values implemented by CSS-related modules.
253    <dt id=spec-manakai-selectors"><a href="http://suika.fam.cx/gate/2005/sw/manakai/Selectors%20Extensions">manakai's
254    Selectors extensions</a>
255      <dd>The specification for <code>:-manakai-<var>*</var></code>
256      pseudo-classes implemented by Selectors-related modules.</dd>
257  </dl>  </dl>
 <!-- Whatpm::ContentChecker::*, Whatpm::H2H, Whatpm::NanoDOM, and  
      Whatpm::XMLParser are intentionally omitted from the list. -->  
258  </div>  </div>
259    
260  <div class="section" id="demo">  <div class="section" id="demo">
261  <h2>Demo</h2>  <h2>Demo</h2>
262    
263  <ul>  <ul id=demo-html-parser>
264  <li id=demo-html-parser-nanodom><a href="http://suika.fam.cx/gate/2007/html/parser-interface">HTML5 parser  <li id=demo-html-parser-nanodom><a href="http://suika.fam.cx/gate/2007/html/parser-interface">HTML5 parser
265  and checker demo</a>  and checker demo</a>
266  (<a href="http://suika.fam.cx/gate/cvs/*checkout*/webroot/gate/2007/html/parser.cgi">source</a>,  (<a href="http://suika.fam.cx/gate/cvs/*checkout*/webroot/gate/2007/html/parser.cgi">source</a>,
# Line 157  tag parsing and conformance checking dem Line 287  tag parsing and conformance checking dem
287  <h2>Application</h2>  <h2>Application</h2>
288    
289  <ul>  <ul>
290  <li><a href="http://suika.fam.cx/gate/2007/html/cc/"><abbr>WebHACC</abbr>  
291  (Web hypertext application conformance checker)</a>  <li id=app-webhacc><a
292    href="http://suika.fam.cx/gate/2007/html/cc/"><abbr>WebHACC</abbr>
293    (Web hypertext application conformance checker)</a> (See also <a
294    href="http://suika.fam.cx/gate/2007/html/cc-about"><cite>about
295    WebHACC</cite></a>)
296    
297  </ul>  </ul>
298  </div>  </div>
299    
# Line 203  tag parsing and conformance checking dem Line 338  tag parsing and conformance checking dem
338    <dd><em>Testing</em> for module <code>Whatpm::ContentChecker</code>    <dd><em>Testing</em> for module <code>Whatpm::ContentChecker</code>
339    depends on <code>Message::DOM::DOMImplementation</code> and related modules    depends on <code>Message::DOM::DOMImplementation</code> and related modules
340    in <a href="http://suika.fam.cx/www/2006/manakai/">manakai-core</a>.    in <a href="http://suika.fam.cx/www/2006/manakai/">manakai-core</a>.
341    They are not required in practice.</dd>    They are not required for any practical use of those modules.
342      </dl>      </dl>
343    </dd>    </dd>
344  <dt><a href="http://suika.fam.cx/www/manakai-charlib/readme">manakai  <dt><a href="http://suika.fam.cx/www/manakai-charlib/readme">manakai
# Line 226  Detector</a></dt> Line 361  Detector</a></dt>
361    <dd><em>Testing</em> for modules <code>Whatpm::HTML</code> and    <dd><em>Testing</em> for modules <code>Whatpm::HTML</code> and
362    <code>Whatpm::CSS::Tokenizer</code>    <code>Whatpm::CSS::Tokenizer</code>
363    depends on <a href="http://search.cpan.org/~makamaka/JSON-1.14/"><code>JSON</code> and related modules</a>.    depends on <a href="http://search.cpan.org/~makamaka/JSON-1.14/"><code>JSON</code> and related modules</a>.
364    They are not required in practice.</dd>    They are not required for any practical use of those modules.
365  </dl>  </dl>
366  </div>  </div>
367    
# Line 256  tarball. Line 391  tarball.
391        code tree.        code tree.
392    <li>Charset detection.</li>    <li>Charset detection.</li>
393    <li>Validation for <code>meta</code>.</li>    <li>Validation for <code>meta</code>.</li>
394    <li>Validation for media queries, IRIs (against URI schemes), language tags,    <li>Validation for media queries (level 3), IRIs (against URI schemes),
395      and so on.</li>      and so on.</li>
396    <li>Documentations are missing for some features.</li>    <li>Documentations are missing for some features.</li>
397    <li>XML parser<!-- with application cache selection algorithm hook-->.</li>    <li>XML parser<!-- with application cache selection algorithm hook-->.</li>

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.29

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24