You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
662 lines
34 KiB
662 lines
34 KiB
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta name="generator"
|
|
content="HTML Tidy for Windows (vers 1st November 2002), see www.w3.org" />
|
|
<title>Requirements for the Ink Markup Language</title>
|
|
<meta http-equiv="Content-Type"
|
|
content="text/html; charset=windows-1252" />
|
|
<style type="text/css">
|
|
/*<![CDATA[*/
|
|
.ref { font-size: 80% }
|
|
.requirement { background-color: #c1dbff }
|
|
/*]]>*/
|
|
</style>
|
|
<link href="http://www.w3.org/StyleSheets/TR/W3C-NOTE"
|
|
type="text/css" rel="stylesheet" />
|
|
</head>
|
|
<body lang="EN-US">
|
|
<div class="head">
|
|
<p><a href="http://www.w3.org/"><img height="48" width="72"
|
|
alt="W3C" src="http://www.w3.org/Icons/w3c_home" /></a></p>
|
|
<h1>Requirements for the Ink Markup Language</h1>
|
|
<h2>W3C Note 22 January 2003</h2>
|
|
<dl>
|
|
<dt>This version:</dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/2003/NOTE-inkreqs-20030122/">http://www.w3.org/TR/2003/NOTE-inkreqs-20030122/</a></dd>
|
|
<dt>Latest version:</dt>
|
|
<dd>
|
|
<a href="http://www.w3.org/TR/inkreqs/">http://www.w3.org/TR/inkreqs/</a></dd>
|
|
<dt>Previous version:</dt>
|
|
<dd><em>This is the first public version</em></dd>
|
|
<dt>Editors:</dt>
|
|
<dd>Yi-Min Chee, IBM
|
|
<a href="mailto:ymchee@us.ibm.com">ymchee@us.ibm.com</a></dd>
|
|
<dd>Sai Prasad, Intel
|
|
<a href="mailto:sai.prasad@intel.com">sai.prasad@intel.com</a></dd>
|
|
<dt>Contributors:</dt>
|
|
<dd>See <a href="#Acknowledgements">Acknowledgements</a></dd></dl>
|
|
<p class="copyright">
|
|
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
|
|
©2003
|
|
<a href="http://www.w3.org/"><abbr title="World Wide Web Consortium">
|
|
W3C</abbr></a><sup>®</sup>
|
|
(<a href="http://www.lcs.mit.edu/"><abbr title="Massachusetts Institute of Technology">
|
|
MIT</abbr></a>,
|
|
<a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">
|
|
ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>),
|
|
All Rights Reserved. W3C
|
|
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">
|
|
liability</a>,
|
|
<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">
|
|
trademark</a>,
|
|
<a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
|
|
use</a> and
|
|
<a href="http://www.w3.org/Consortium/Legal/copyright-software">software
|
|
licensing</a> rules apply.</p></div>
|
|
<hr title="Separator from Header" />
|
|
<h2><a id="Abstract" name="Abstract">Abstract</a></h2>
|
|
<p>This document describes requirements for the Ink Markup Language
|
|
that will be used in the multimodal interaction framework as
|
|
proposed by the <a href="http://www.w3.org/2002/mmi/">W3C
|
|
Multimodal Interaction Working Group</a>. The Ink Markup Language
|
|
will serve as the data format for representing ink entered with an
|
|
electronic pen or stylus in a multimodal system. The markup will
|
|
allow for the input and processing of handwriting, gestures,
|
|
sketches, music and other notational languages in web-based
|
|
multimodal applications. In the context of the
|
|
<a href="http://www.w3.org/TR/mmi-framework">W3C Multimodal
|
|
Interaction Framework</a>, the markup provides a common format for
|
|
the exchange of ink data between components such as handwriting and
|
|
gesture recognizers, signature verifiers, and other ink-aware
|
|
modules.</p>
|
|
<h2><a id="Status" name="Status">Status of This Document</a></h2>
|
|
<p><em>This section describes the status of this document at the
|
|
time of its publication. Other documents may supersede this
|
|
document. The latest status of this document series is maintained
|
|
at the
|
|
<abbr title="the World Wide Web Consortium">W3C</abbr>.</em></p>
|
|
<p>W3C's <a href="http://www.w3.org/2002/mmi/">Multimodal
|
|
Interaction Activity</a> is developing specifications for extending
|
|
the Web to support multiple modes of interaction. One mode of
|
|
interaction that is expected to play a role in many multimodal use
|
|
cases is pen input. The requirements described in this document
|
|
will be used to guide the development of a markup language for
|
|
representing ink data captured by a pen-enabled multimodal system.
|
|
The Ink Markup Language is intended to be deployed within the
|
|
<a href="http://www.w3.org/TR/mmi-framework">W3C Multimodal
|
|
Interaction Framework</a> as a means for exchanging and storing
|
|
such information.</p>
|
|
<p>This document is a NOTE made available by the W3C for archival
|
|
purposes, and is not expected to undergo frequent changes.
|
|
Publication of this Note by W3C indicates no endorsement by W3C or
|
|
the W3C Team, or any W3C Members. A list of current W3C technical
|
|
reports and publications, including Recommendations, Working
|
|
Drafts, and Notes can be found at
|
|
<a href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>.</p>
|
|
<p>This document has been produced as part of the
|
|
<a href="http://www.w3.org/2002/mmi/">W3C Multimodal Interaction
|
|
Activity</a>,<span class="c1"><a href="http://www.w3.org/2002/mmi/Activity.html">
|
|
</a></span> following the procedures set out for the
|
|
<a href="http://www.w3.org/Consortium/Process/">W3C Process</a>.
|
|
The authors of this document are members of the
|
|
<a href="http://www.w3.org/2002/mmi/Group/">Multimodal Interaction
|
|
Working Group</a>
|
|
(<a href="http://cgi.w3.org/MemberAccess/AccessRequest">W3C Members
|
|
only</a>). This is a Royalty Free Working Group, as described in
|
|
W3C's
|
|
<a href="http://www.w3.org/TR/2002/NOTE-patent-practice-20020124">Current
|
|
Patent Practice</a> NOTE. Working Group participants are required
|
|
to provide <a href="http://www.w3.org/2002/01/mmi-ipr.html">patent
|
|
disclosures</a>.</p>
|
|
<p>Please send comments about this document to the public mailing
|
|
list:
|
|
<a href="mailto:www-multimodal@w3.org">www-multimodal@w3.org</a>
|
|
(<a href="http://lists.w3.org/Archives/Public/www-multimodal/">public
|
|
archives</a>). To subscribe, send an email to
|
|
<<a href="mailto:www-multimodal-request@w3.org">www-multimodal-request@w3.org</a>>
|
|
with the word <em>subscribe</em> in the subject line (include the
|
|
word <em>unsubscribe</em> if you want to unsubscribe).</p>
|
|
<h2><a id="TableOfContents" name="TableOfContents">Table of
|
|
Contents</a></h2>
|
|
<ul class="toc">
|
|
<li><a href="#Abstract">Abstract</a></li>
|
|
<li><a href="#Status">Status of This Document</a></li>
|
|
<li><a href="#TableOfContents">Table of Contents</a></li>
|
|
<li><a href="#Introduction">Introduction</a></li>
|
|
<li><a href="#GeneralRequirements">1. General Requirements</a>
|
|
<ul class="toc">
|
|
<li><a href="#ApplicationScope">1.1 Application Scope</a></li>
|
|
<li><a href="#RecognitionSupport">1.2 Recognition Support</a></li>
|
|
<li><a href="#EaseOfUse">1.3 Ease of Use and
|
|
Adoption</a></li></ul></li>
|
|
<li><a href="#InputRequirements">2. Input Processing
|
|
Requirements</a>
|
|
<ul class="toc">
|
|
<li><a href="#InkCapture">2.1 Ink Capture</a></li>
|
|
<li><a href="#ExternalEvents">2.2 External
|
|
Events</a></li></ul></li>
|
|
<li><a href="#OutputRequirements">3. Output Processing
|
|
Requirements</a></li>
|
|
<li><a href="#Architecture">4. Architectural Requirements</a>
|
|
|
|
<ul class="toc">
|
|
<li><a href="#Reuse">4.1 Reuse</a></li>
|
|
<li><a href="#Modularity">4.2 Modularity</a></li>
|
|
<li><a href="#Deployment">4.3 Deployment</a></li>
|
|
<li><a href="#Integration">4.4 Integration</a></li></ul></li>
|
|
<li><a href="#MobileRequirements">5. Mobility Requirements</a></li>
|
|
<li><a href="#Synchronization">6. Multimodal
|
|
Synchronization</a></li>
|
|
<li><a href="#Acknowledgements">7. Acknowledgements</a></li>
|
|
<li style="list-style: none"><a href="#Appendices">Appendices</a>
|
|
<ul class="toc">
|
|
<li><a href="#Glossary">A. Glossary</a></li></ul></li></ul>
|
|
<h2><a id="Introduction" name="Introduction">Introduction</a></h2>
|
|
<p>The Ink Markup Language is the data format used to represent ink
|
|
entered with an electronic pen or stylus in a multimodal
|
|
system.</p>
|
|
<p>These requirements have been compiled based on review of the
|
|
fundamental <a href="http://www.w3.org/TR/mmi-reqs/">Multimodal
|
|
Interaction Requirements</a> and additional considerations
|
|
pertaining to the role of the markup in pen-enabled systems. For
|
|
each requirement that has been derived (in whole or in part) from
|
|
fundamental <a href="http://www.w3.org/TR/mmi-reqs/">Multimodal
|
|
Interaction Requirements</a>, the derivation is noted.</p>
|
|
<p>The Ink Markup will consist of <a href="#PrimElts">primitive
|
|
elements</a> that represent low-level ink data information and
|
|
<a href="#AppSpecElts">application-specific elements</a> that
|
|
characterize meta information about the ink. Examples of primitive
|
|
elements are <a href="#Device">device</a> and
|
|
<a href="#ScreenContext">screen context</a> characteristics, and
|
|
<a href="#Trace">pen traces</a>. Application-specific elements
|
|
provide a higher level description of the ink data. For example, a
|
|
segment tag could represent a group of ink traces that belong to a
|
|
field in a form. Consequently, the requirements for the Ink Markup
|
|
Language could fall in either of the two categories. This document
|
|
does not attempt to classify requirements based on whether they are
|
|
low-level or application specific.</p>
|
|
The requirements are organized into six categories: General
|
|
Requirements, Input Processing, Output Processing, Architectural,
|
|
Mobility, and Multimodal Synchronization.<br />
|
|
<br />
|
|
|
|
<h2><a id="GeneralRequirements" name="GeneralRequirements">1.
|
|
General Requirements</a></h2>
|
|
<h3><a id="ApplicationScope" name="ApplicationScope">1.1
|
|
Application Scope</a></h3>
|
|
<p>The Ink Markup is intended to enable a broad range of ink
|
|
related applications.</p>
|
|
<p class="requirement"><strong><a id="InkG1"
|
|
name="InkG1">(INK-G1)</a></strong>: The Ink Markup MUST have a rich
|
|
set of expressive features to directly support a range of
|
|
<a href="#DigitalInk">digital ink</a> capabilities as needed by the
|
|
wide spectrum of multimodal applications targeted by the
|
|
MMIWG.<br />
|
|
<i> Derived from MMI-G1</i></p>
|
|
<p>Examples of pen-enabled multimodal applications can be found in
|
|
the <a href="http://www.w3.org/TR/mmi-use-cases/">Multimodal
|
|
Interaction Use Cases</a> and an
|
|
<a href="http://lists.w3.org/Archives/Member/w3c-archive/2002Apr/att-0109/01-Pen_MM.pdf">
|
|
internal presentation</a>
|
|
<a href="http://cgi.w3.org/MemberAccess/AccessRequest">(W3C Members
|
|
only)</a> to the working group.</p>
|
|
<p>Pen-enabled applications can be divided into broad application
|
|
types depending upon the way in which the ink data is used.</p>
|
|
<p class="requirement"><strong><a id="InkG2"
|
|
name="InkG2">(INK-G2)</a></strong>: The Ink Markup MUST support
|
|
both persistent <a href="#InkDoc">ink documents</a> and interactive
|
|
applications (MUST specify).<br /></p>
|
|
<p>Persistent ink documents include forms in a distributed forms
|
|
processing application. Another example is a distributed
|
|
recognition environment where ink is captured on a device and
|
|
processed at a later time and place. In this case, user and device
|
|
profile information might need to be included with the ink data at
|
|
the time of capture, because the recognizer may not have access to
|
|
it.</p>
|
|
<p>Electronic whiteboarding is an example of an interactive
|
|
application.</p>
|
|
<h3><a id="RecognitionSupport" name="RecognitionSupport">1.2
|
|
Recognition Support</a></h3>
|
|
<p>Recognition of digital ink is expected to be an important
|
|
application of the Ink Markup.</p>
|
|
<p class="requirement"><strong><a id="InkG3"
|
|
name="InkG3">(INK-G3)</a></strong>: The Ink Markup MUST provide a
|
|
mechanism to reference external resources and constraints that are
|
|
common across recognition-based input modalities (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-G3, MMI-I16</i></p>
|
|
<p>Examples of resources are syntactic constraints such as
|
|
<a href="#RecoGrammar">grammars</a> and lexicons. The markup must
|
|
link to these resources to avoid duplication of effort in
|
|
authoring.</p>
|
|
<p class="requirement"><strong><a id="InkG4"
|
|
name="InkG4">(INK-G4)</a></strong>: The Ink Markup MUST provide
|
|
means to indicate the language that the handwritten ink represents
|
|
(MUST specify).<br />
|
|
<i> Derived from MMI-G8</i></p>
|
|
<p>In this context, the term language refers not only to human
|
|
languages, but also to music, mathematical, and other
|
|
notations.</p>
|
|
<p>This requirement ensures that the Ink Markup has multilingual
|
|
support. The language information is important not only as input to
|
|
handwriting recognizers but also to represent the results from the
|
|
recognizer.</p>
|
|
<p>This language information might come from the user profile,
|
|
application or device context, or it might be generated by a
|
|
language identification module. It could be treated as an external
|
|
resource (see INK-G2 above).</p>
|
|
<p>It is assumed that the Ink Markup will need to support
|
|
annotations on ink made in different languages. For example, a
|
|
particular ink document may contain handwritten ink that represents
|
|
multiple languages. Even for a particular piece of ink data, it may
|
|
be necessary to allow for annotations in multiple languages which
|
|
may not be the same as the language of the handwritten ink itself.
|
|
In addition, the character encoding of the ink document may not
|
|
match the language represented by its ink data. For example, a
|
|
document which is encoded in ISO646-US may contain ink data which
|
|
represents handwritten katakana.</p>
|
|
<p class="requirement"><strong><a id="InkG5"
|
|
name="InkG5">(INK-G5)</a></strong>: The Ink Markup MUST allow for
|
|
the representation of all information needed for the training of
|
|
adaptive recognition systems.</p>
|
|
<p>In order for the Ink Markup to be widely adopted as the data
|
|
representation for handwriting recognition systems, it must contain
|
|
an application-specific module covering all elements required to
|
|
support handwriting recognition training and development. For
|
|
example, in training a handwriting recognition system, it is often
|
|
necessary to label the ink data at various levels (e.g.
|
|
corresponding to characters, words, and phrases) and to be able to
|
|
affiliate traces or portions of traces with those
|
|
<a href="#InkLabel">labels</a>.</p>
|
|
<h3><a id="EaseOfUse" name="EaseOfUse">1.3 Ease of Use and
|
|
Adoption</a></h3>
|
|
<p class="requirement"><strong><a id="InkG6"
|
|
name="InkG6">(INK-G6)</a></strong>: The Ink Markup MUST not require
|
|
special hardware to implement (MUST specify).<br />
|
|
<i> Derived from MMI-G11.</i></p>
|
|
<p class="requirement"><strong><a id="InkG7"
|
|
name="InkG7">(INK-G7)</a></strong>: The Ink Markup MUST be readable
|
|
by developers/authors of multimodal applications and be able to be
|
|
automatically generated by software (MUST specify).<br />
|
|
<i> Derived from MMI-G10</i></p>
|
|
<p>Readable means we do not need a software decoder to make sense
|
|
of the ink data. However, we need to weigh the benefits of
|
|
readability against the increased storage/bandwidth that would be
|
|
required in order to make each element of the markup human
|
|
readable. For example, it might make sense at the trace level, but
|
|
not at the granularity of individual points/samples.</p>
|
|
<p class="requirement"><strong><a id="InkG8"
|
|
name="InkG8">(INK-G8)</a></strong>: The Ink Markup MUST be aligned
|
|
with the W3C specifications for security and privacy (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-G13.</i></p>
|
|
<p>Ink data often represents information that is sensitive, such as
|
|
a signature. Similarly, the application of privacy issues to user
|
|
profile data is relevant to the Ink Markup. However, at this time,
|
|
we don't anticipate any specific measures within the Ink Markup
|
|
itself for guaranteeing security and privacy of ink data.</p>
|
|
<p class="requirement"><strong><a id="InkG9"
|
|
name="InkG9">(INK-G9)</a></strong>: The Ink Markup SHOULD provide a
|
|
mechanism for checking markup integrity (NICE to specify).</p>
|
|
<p>This refers to the integrity of the ink data itself, rather than
|
|
well-formedness or validity of the Ink Markup, which can be
|
|
verified by the use of readily available validation tools. One
|
|
example of a simple integrity check would be an optional count
|
|
attribute on items within an element, such as the number of points
|
|
within a trace, which could be validated against the contents found
|
|
between the trace's start-tag and end-tag.</p>
|
|
<h2><a id="InputRequirements" name="InputRequirements">2. Input
|
|
Processing Requirements</a></h2>
|
|
<h3><a id="InkCapture" name="InkCapture">2.1 Ink Capture</a></h3>
|
|
<p class="requirement"><strong><a id="InkI1"
|
|
name="InkI1">(INK-I1)</a></strong>: The Ink Markup MUST allow for
|
|
the capture of a wide variety of different <a href="#Channel">data
|
|
channels</a> according to the needs of the target engine (i.e.
|
|
processor) or engine type, and it must allow for extension into new
|
|
channel definitions to support future devices and applications
|
|
(MUST specify).<br />
|
|
<i> Derived from MMI-I1</i></p>
|
|
<p>Typical data channels include x- and y-coordinates, pen tip
|
|
force, and pen angle.</p>
|
|
<p>Examples of engine types include handwriting/gesture recognition
|
|
and <a href="#SigVer">signature verification</a>.</p>
|
|
<p class="requirement"><strong><a id="InkI2"
|
|
name="InkI2">(INK-I2)</a></strong>: The Ink Markup MUST allow for
|
|
recording of information about user profile and ink capture that
|
|
contributes to the performance of recognition algorithms used in
|
|
handwriting and gesture recognition (MUST specify).<br />
|
|
<i>Derived from MMI-G14, MMI-I1, MMI-I10,
|
|
MMI-A5</i></p>
|
|
<p>User profile includes writer information such as handedness,
|
|
age, style and skill. Device profile includes elements such as
|
|
manufacturer, model, tablet <a href="#Resolution">resolution</a>,
|
|
sampling mode, and <a href="#SamplingRate">sampling rate</a>.</p>
|
|
<p class="requirement"><strong><a id="InkI3"
|
|
name="InkI3">(INK-I3)</a></strong>: The Ink Markup MUST allow for
|
|
the representation of information about the screen context in which
|
|
the ink data was captured (MUST specify).<br />
|
|
<i> See also <a href="#InkA5">INK-A5</a></i></p>
|
|
<p>Screen context includes such information as the relationship
|
|
between the digitizer and the display device during pen input. This
|
|
information can be important for applications such as handwriting
|
|
and gesture recognition. For example, the display resolution may
|
|
affect the size of the user's handwriting, and this information can
|
|
be used during normalization of the ink data for recognition.</p>
|
|
<p class="requirement"><strong><a id="InkI4"
|
|
name="InkI4">(INK-I4)</a></strong>: The Ink Markup MUST provide a
|
|
means to represent trace attributes that could influence
|
|
interpretation (e.g. highlighting vs. strikethrough) (MUST
|
|
specify).</p>
|
|
<p class="requirement"><strong><a id="InkI5"
|
|
name="InkI5">(INK-I5)</a></strong>: The Ink Markup SHOULD define
|
|
mechanisms to allow clients to query device characteristics that
|
|
may be important in determining how to adapt to platform
|
|
capabilities, e.g., quality metrics (NICE to specify).<br />
|
|
<i> Derived from MMI-I8, MMI-I17, MMI-A15</i></p>
|
|
<p>The Ink Markup should provide device and context information
|
|
that can be used to decide how to prioritize ink input relative to
|
|
other modalities (this could be in addition to a higher-level
|
|
processor's judgment of the uncertainty of its semantic
|
|
interpretation of the ink). The markup doesn't need to know about
|
|
which other modalities it is being combined with, but it needs to
|
|
provide the necessary information to the higher layers for making
|
|
decisions. For example, the Ink Markup can provide device level
|
|
information that can be cached by a driver or the layers above.</p>
|
|
<p>The multimodal system may also invoke different ink processors
|
|
depending on how the ink was captured. For example, ink captured on
|
|
low-resolution devices may be handled by a specific processor.</p>
|
|
<h3><a id="ExternalEvents" name="ExternalEvents">2.2 External
|
|
Events</a></h3>
|
|
<p class="requirement"><strong><a id="InkI6"
|
|
name="InkI6">(INK-I6)</a></strong>: The Ink Markup MUST provide a
|
|
way to preserve relative positioning of external events with
|
|
respect to the ink stream (MUST specify).</p>
|
|
<p>Time-stamps will allow Ink Markup data to be integrated with
|
|
other types of logged data. Alternatively, the Ink Markup will
|
|
support time-stamped comment fields, which may contain
|
|
application-specific (even proprietary) information, that may be
|
|
used to integrate references to external events directly into the
|
|
ink event stream.</p>
|
|
<p class="requirement"><strong><a id="InkI7"
|
|
name="InkI7">(INK-I7)</a></strong>: The Ink Markup MUST allow for
|
|
the representation of changes to screen context or to
|
|
<a href="#InkAttr">ink attributes</a> that are the result of
|
|
commonly occurring control events in pen applications (MUST
|
|
specify).</p>
|
|
<p>An example of a control event which results in an ink attribute
|
|
change is a user action (button press, voice command, or other
|
|
means) which switches pen colors.</p>
|
|
<h2><a id="OutputRequirements" name="OutputRequirements">3. Output
|
|
Processing Requirements</a></h2>
|
|
<p>Since MMI is intended for design of interactions, the ink
|
|
specification should consider the role of ink in the output portion
|
|
of interactions as well as input.</p>
|
|
<p>Consideration of the output portion of interactions requires two
|
|
elements: output of ink, and; synchronization of ink input/output
|
|
with other output modalities. Aside from making ink visible as it
|
|
is being written, ink will also be displayed later or in different
|
|
places, and in some cases may be generated and used by the
|
|
application as a user prompt (e.g. in a cursive writing
|
|
tutorial).</p>
|
|
<p>However, the ink specification is intended primarily to support
|
|
representation of captured ink. Output specifications generally are
|
|
driven by many requirements that are distinct from input
|
|
requirements. In particular, it will often be desirable to modify
|
|
the attributes of ink prior to display, for example in color, line
|
|
width, or even resolution. Adding the flexibility to handle a wide
|
|
range of output attributes would add unnecessary complexity to the
|
|
specification and minimum implementation. Accordingly, the Ink
|
|
Markup will concentrate instead on those attributes that are
|
|
required for accurate representation of ink capture, not display.
|
|
It will include attributes for capture that may have use in
|
|
display, such as color or force, but display is not the driving
|
|
consideration.</p>
|
|
<p>It is possible that some display services, such as windowing
|
|
systems or browsers, may implement support for display of Ink
|
|
Markup directly. More generally, we anticipate the transcoding of
|
|
the Ink Markup to other encodings that are more widely supported
|
|
(e.g. image formats or SVG), for use on display devices that do not
|
|
directly support the Ink Markup.</p>
|
|
<p class="requirement"><strong><a id="InkO1"
|
|
name="InkO1">(INK-O1)</a></strong>: The Ink Markup MUST be
|
|
displayable on a wide variety of output platforms and must be
|
|
convertible to a variety of different display formats (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-O8</i></p>
|
|
<p>It must also support transformation to alternative output media
|
|
types: to text via handwriting recognition, to commands via gesture
|
|
recognition etc.</p>
|
|
<p class="requirement"><strong><a id="InkO2"
|
|
name="InkO2">(INK-O2)</a></strong>: The Ink Markup MUST support the
|
|
specification of how presentation of ink, when used as output
|
|
media, could be adapted or styled on different devices (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-O9, MMI-A13</i></p>
|
|
<h2><a id="Architecture" name="Architecture">4. Architectural
|
|
Requirements</a></h2>
|
|
<h3><a id="Reuse" name="Reuse">4.1 Reuse</a></h3>
|
|
<p class="requirement"><strong><a id="InkA1"
|
|
name="InkA1">(INK-A1)</a></strong>: The Ink Markup MUST reuse
|
|
standard language specifications, where possible (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-A1, MMI-S12</i></p>
|
|
<p>One example is the use of CC/PP to encode device
|
|
characteristics.</p>
|
|
<h3><a id="Modularity" name="Modularity">4.2 Modularity</a></h3>
|
|
<p class="requirement"><strong><a id="InkA2"
|
|
name="InkA2">(INK-A2)</a></strong>: The Ink Markup MUST be defined
|
|
in a modular fashion. Mandatory functionality should be
|
|
encapsulated in a base module which is usable by other XML based
|
|
languages (MUST specify).<br />
|
|
<i> Derived from MMI-A2</i></p>
|
|
<p class="requirement"><strong><a id="InkA3"
|
|
name="InkA3">(INK-A3)</a></strong>: The Ink Markup MUST provide for
|
|
modular extensions. It must specify mechanisms for defining and
|
|
using extension modules for application specific
|
|
functionality.<br />
|
|
<i> Cross reference with
|
|
<a href="#InkA2">INK-A2</a></i></p>
|
|
<h3><a id="Deployment" name="Deployment">4.3 Deployment</a></h3>
|
|
<p class="requirement"><strong><a id="InkA4"
|
|
name="InkA4">(INK-A4)</a></strong>: The Ink Markup MUST support
|
|
multiple levels of granularity of <a href="#Streaming">ink
|
|
streaming</a> for real-time input (MUST specify).</p>
|
|
<p class="requirement"><strong><a id="InkA5"
|
|
name="InkA5">(INK-A5)</a></strong>: The Ink Markup MUST provide
|
|
information to enable 'consistent' input behavior and display
|
|
across devices with differing capabilities, and across multiple
|
|
<a href="#Session">sessions</a> (MUST specify).<br />
|
|
<i> Derived from MMI-A6, MMI-A12</i></p>
|
|
<p>A user may start to fill out a form on one device using ink and
|
|
complete the form on a different device with a different display
|
|
and <a href="#Digitizer">digitizer</a>. The specification must
|
|
allow merging of ink data with previously entered data that may
|
|
have been captured with different devices and contexts, and even in
|
|
different modalities.</p>
|
|
<p>At the session level, the user may change modalities, e.g., from
|
|
speech to pen, or from a PDA to a tablet PC. The UI should allow
|
|
editing of previous entries even though modality or device
|
|
characteristics are different. This influences the ink
|
|
specification indirectly in that it requires sufficient device
|
|
information to allow correct merging of new pen data with
|
|
previously entered data.</p>
|
|
<p class="requirement"><strong><a id="InkA6"
|
|
name="InkA6">(INK-A6)</a></strong>: The Ink Markup MUST provide a
|
|
mechanism to support changes in delivery context that impact ink
|
|
characteristics or their interpretation (MUST specify).<br />
|
|
<i> Derived from MMI-A4, MMI-S1</i></p>
|
|
<p>One way to support changes in the delivery context is to start a
|
|
new ink session whenever a change is detected.</p>
|
|
<h3><a id="Integration" name="Integration">4.4 Integration</a></h3>
|
|
<p class="requirement"><strong><a id="InkA7"
|
|
name="InkA7">(INK-A7)</a></strong>: The Ink Markup MUST allow other
|
|
systems to identify subsections or portions of an ink document for
|
|
annotation or markup purposes (MUST specify).</p>
|
|
<p>The purpose of this requirement is to provide reliable external
|
|
references to an ink document. This is a MUST specify requirement
|
|
for static documents. In addition, it would be desirable to have a
|
|
mechanism for either preserving or invalidating references when
|
|
document editing or modification occurs.</p>
|
|
<p class="requirement"><strong><a id="InkA8"
|
|
name="InkA8">(INK-A8)</a></strong>: The Ink Markup SHOULD provide
|
|
mechanisms to facilitate random access and application specific
|
|
grouping or structuring of ink traces (NICE to specify).</p>
|
|
<p>In this context, random access refers to the ability to navigate
|
|
to a trace or group of traces within an ink document without undue
|
|
processing overhead.</p>
|
|
<p class="requirement"><strong><a id="InkA9"
|
|
name="InkA9">(INK-A9)</a></strong>: The Ink Markup MUST allow other
|
|
systems to embed ink documents within documents of other types
|
|
(MUST specify).</p>
|
|
<p>The embedding capability should support anchoring, alignment,
|
|
and registration of ink within other documents.</p>
|
|
<h2><a id="MobileRequirements" name="MobileRequirements">5.
|
|
Mobility Requirements</a></h2>
|
|
<p class="requirement"><strong><a id="InkR1"
|
|
name="InkR1">(INK-R1)</a></strong>: The Ink Markup MUST allow
|
|
lightweight client implementations for thin mobile devices (MUST
|
|
specify).<br />
|
|
<i> Derived from MMI-R1</i></p>
|
|
<p class="requirement"><strong><a id="InkR2"
|
|
name="InkR2">(INK-R2)</a></strong>: The Ink Markup MUST provide a
|
|
mechanism to allow for communications over low bandwidth network
|
|
connections (MUST specify).<br />
|
|
<i> Derived from MMI-G15, MMI-R2, MMI-S13.</i></p>
|
|
<p>This has an impact on how ink is transmitted over the network.
|
|
Low bandwidth may require smaller transmission size of ink
|
|
documents. Common mechanisms for achieving this goal include
|
|
downsampling and compression.</p>
|
|
<h2><a id="Synchronization" name="Synchronization">6. Multimodal
|
|
Synchronization Requirements</a></h2>
|
|
<p>The Ink Markup must provide mechanisms to allow higher levels of
|
|
an MMI system to coordinate the ink input with other aspects of the
|
|
user interface dialog, including both input and output modalities.
|
|
Consequently, the Ink Markup will preserve information about time,
|
|
time delays, and granularity that is useful to the MMI manager in
|
|
coordinating the elements of the user interface. This information
|
|
should also enable manipulation of ink data by output interface
|
|
components to synchronize rendering of ink data with other output
|
|
data.</p>
|
|
<p>The temporal information of ink data may also be useful to other
|
|
processes involved in interpretation of MMI interactions, if it can
|
|
be resolved against temporal information from other aspects of the
|
|
UI, allowing accurate reconstruction of the sequence of user
|
|
prompts and responses.</p>
|
|
<p class="requirement"><strong><a id="InkS1"
|
|
name="InkS1">(INK-S1)</a></strong>: The Ink Markup MUST preserve
|
|
and make available sufficient time information to support
|
|
chronological positioning and sequencing, grouping and
|
|
synchronization of data and events across different input
|
|
modalities (MUST specify).<br />
|
|
<i> Derived from MMI-G4, MMI-G5, MMI-G6 MMI-I2,
|
|
MMI-I3,MMI-I7, MMI-I18, MMI-I19 MMI-O1, MMI-O2, MMI-O3, MMI-O4,
|
|
MMI-O5, MMI-O6, MMI-O7 MMI-A17, MMI-A18.</i></p>
|
|
<p>Ink elements must be time-stamped to support this requirement.
|
|
Ink elements include traces and groups of traces..</p>
|
|
<h2><a id="Acknowledgements"
|
|
name="Acknowledgements">Acknowledgements</a></h2>
|
|
<p>This document was jointly prepared by members of the pen input
|
|
subgroup of the W3C Multimodal Interaction Working Group.</p>
|
|
<p>Special acknowledgements to Giovanni Seni (Motorola) and Greg
|
|
Russell (IBM) for their contributions.</p>
|
|
<h2><a id="Appendices" name="Appendices">Appendices</a></h2>
|
|
<h3><a id="Glossary" name="Glossary"></a>Appendix A. Glossary</h3>
|
|
<p><b>Accuracy:</b> (1) Percentage of words correctly transcribed
|
|
by a handwriting recognition engine; (2) Error bounds of a
|
|
coordinate measurement, relative to a physical reference frame</p>
|
|
<p><b>Annotation:</b> Elements in an Ink Markup file that describe
|
|
meta-data, or semantic information, about the traces themselves
|
|
(See ink annotation)</p>
|
|
<p><b><a id="AppSpecElts" name="AppSpecElts">Application-specific
|
|
elements:</a></b> Provide higher-level description of the digital
|
|
ink captured in the primitive elements</p>
|
|
<p><b>Bounding box:</b> A minimal-sized rectangle that encloses a
|
|
group of traces</p>
|
|
<p><b>Canvas:</b> Widget or window in a graphical user interface
|
|
where ink is drawn during ink capture</p>
|
|
<p><b>Capture:</b> Digitally recording physical measurements of
|
|
handwriting, typically using a stylus</p>
|
|
<p><b><a id="Channel" name="Channel">Channel:</a></b> A measurement
|
|
recorded by the digitizer (e.g. coordinates, force, tilt) when
|
|
capturing pen input.</p>
|
|
<p><b>Chunks:</b> A group of pen traces</p>
|
|
<p><b>Compression:</b> The coding of data to save storage space or
|
|
transmission time</p>
|
|
<p><b><a id="Device" name="Device">Device:</a></b> See
|
|
<a href="#Digitizer">digitizer</a></p>
|
|
<p><b><a id="DigitalInk" name="DigitalInk">Digital ink:</a></b> An
|
|
electronic representation of the pen movement, pressure, and other
|
|
characteristics of handwritten input using a digitizing device</p>
|
|
<p><b><a id="Digitizer" name="Digitizer">Digitizer:</a></b> A
|
|
hardware device capable of sensing the digital pen tip position.
|
|
The digital pen can be a passive stylus containing no electronic
|
|
components, or an active stylus containing electronic components
|
|
(a.k.a. tablet).</p>
|
|
<p><b>Electronic ink:</b> See <a href="#DigitalInk">digital
|
|
ink</a></p>
|
|
<p><b>Events:</b> An action, either human or machine generated; for
|
|
example, page turn, pen up, or ink color change</p>
|
|
<p><b>Force:</b> The pressure applied to a writing implement,
|
|
typically measured in grams, ounces, or newtons</p>
|
|
<p><b>Gesture:</b> Collection of ink traces that indicate a certain
|
|
action to be performed</p>
|
|
<p><b>Ink:</b> See <a href="#DigitalInk">digital ink</a></p>
|
|
<p><b>Ink annotation:</b> A handwritten note or markup referencing
|
|
(by proximity) another visible writing or printed matter</p>
|
|
<p><b><a id="InkAttr" name="InkAttr">Ink attribute:</a></b> A basic
|
|
named value for an ink trace, such as color and width</p>
|
|
<p><b><a id="InkDoc" name="InkDoc">Ink document:</a></b> A
|
|
collection of one or more pages containing ink traces</p>
|
|
<p><b><a id="InkLabel" name="InkLabel">Ink label:</a></b> A
|
|
descriptive or identifying word or phrase accompanying some ink
|
|
traces</p>
|
|
<p><b>Ink point:</b> An element in the stream of data recorded by a
|
|
real-time digitizer of handwriting; for example, a tuple <x, y,
|
|
pressure, tilt></p>
|
|
<p><b>Ink-enabled system:</b> A system capable of recording digital
|
|
ink data</p>
|
|
<p><b><a id="PrimElts" name="PrimElts">Primitive elements:</a></b>
|
|
Set of rudimentary elements sufficient for all basic ink
|
|
applications</p>
|
|
<p><b><a id="RecoGrammar" name="RecoGrammar">Recognition
|
|
grammar:</a></b> Specification of words and patterns of words that
|
|
a recognizer should expect when processing input ink</p>
|
|
<p><b><a id="Resolution" name="Resolution">Resolution:</a></b> The
|
|
minimal change or difference in a measurement (coordinate, force,
|
|
tilt) that a digitizer reports</p>
|
|
<p><b><a id="SamplingRate" name="SamplingRate">Sampling
|
|
rate:</a></b> The frequency at which a digitizer reports coordinate
|
|
(or other) information. Sampling rate is not always directly
|
|
related to the bandwidth.</p>
|
|
<p><b><a id="ScreenContext" name="ScreenContext">Screen
|
|
context:</a></b> The characteristics of the display area and the
|
|
correspondence between the display area and the ink-capturing
|
|
device.</p>
|
|
<p><b>Semantic:</b> A contextual interpretation of handwriting,
|
|
such as character, word, sentence, and paragraph</p>
|
|
<p><b><a id="Session" name="Session">Session:</a></b> (1) The span
|
|
of time from a user beginning an interaction to ending the
|
|
interaction with the system; (2) The data gathered during this span
|
|
of time.</p>
|
|
<p><b><a id="SigVer" name="SigVer">Signature verification:</a></b>
|
|
Confirmation that a presented signature is the same as the one on
|
|
file (a.k.a. one-to-one matching)</p>
|
|
<p><b><a id="Streaming" name="Streaming">Streaming:</a></b>
|
|
Continuously sending handwriting events over a communication
|
|
channel</p>
|
|
<p><b>Stroke:</b> Ink resulting from an elementary pen movement,
|
|
such as bounded by two consecutive velocity extrema. A sequence of
|
|
strokes constitutes a trace.</p>
|
|
<p><b>Tilt angle:</b> The angle of the pen with respect to the
|
|
writing surface, which is usually measured as angles of the
|
|
projection onto x and y vertical planes</p>
|
|
<p><b><a id="Trace" name="Trace">Trace:</a></b> A complete pen-down
|
|
movement bounded by two pen-up movements or a complete pen-up
|
|
movement. A sequence of traces accumulates to meaningful units,
|
|
such as characters and words.</p>
|
|
</body>
|
|
</html>
|