WANDOC DTD

wandoc The wandoc XML regroups the Wanda XML tags devoted to document annotation. A wandoc document consists of one or several pages, each of which is represented by an image (allowed formats include gif, tif and jpg). Within each page, annotations may include: In order to accomodate user-defined filters and annotations, generic tags <input/> <output/>, and <annotation/> are introduced. Elements enclosed withing these tags will be application specific and defined in separate DTDs. See, for instance, the following annotation DTDs: writer , script , material , content . The tag <comment/> however is a generic annotation. For particular inputs and outputs, see the NICI measurement filter DTD: nicifeat . The tags <features/> and <wanda_link/> enclose generic types of outputs. In several data blocks (<page/>, <region/>, <annotation/>, <filter/>, <input/>, and <output/>, links can be specified to point to a file the content of which replaces the element <wanda_link/>.

wandoc DTD Tree

wandoc!DTD Tree
wandoc
 |_(filters?,
 |   |_(filter+)
 |       |_(inputs+,
 |       |   |_(input+,
 |       |   |   |_(#PCDATA)
 |       |   |  
 |       |   |__wanda_link*) ...
 |       |  
 |       |__module+,
 |       |   |_(#PCDATA)
 |       |  
 |       |__outputs+,
 |       |   |_(output+,
 |       |   |   |_(features?)
 |       |   |       |_(feature+)
 |       |   |           |_(#PCDATA)
 |       |   |          
 |       |   |      
 |       |   |  
 |       |   |__wanda_link*) ...
 |       |  
 |       |__wanda_link*) ...
 |      
 |  
 |__annotations?,
 |   |_(annotation+)
 |       |_(comment?,
 |       |   |_(#PCDATA)
 |       |  
 |       |__wanda_link*) ...
 |      
 |  
 |__pages?,
 |   |_(page+)
 |       |_(filters?, ...
 |       |__annotations?, ...
 |       |__regions?,
 |       |   |_(region+)
 |       |       |_(filters?, ...
 |       |       |__annotations?, ...
 |       |       |__points+,
 |       |       |   |_(point+)
 |       |       |       |_EMPTY
 |       |       |      
 |       |       |  
 |       |       |__regions?, ...
 |       |       |__wanda_link*) ...
 |       |      
 |       |  
 |       |__wanda_link*, ...
 |       |__meta?) ...
 |      
 |  
 |__wanda_link*,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

wandoc XML example

wandoc!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v5 rel. 3 U 
                                    (http://www.xmlspy.com)-->
<!DOCTYPE wandoc SYSTEM "wandoc_.dtd">
<wandoc 
  id="20032004_0001" 
  label="WANDA test and development sample" 
  xmlns="http://pentel.ipk.fhg.de/wandaXML/wandoc/wandoc.dtd">
  <pages number_of="1">
    <page id="20032004_0001_copy51" label="frontpage" next="">
      <filters number_of="1">
        <filter type="import" label="ibisScan" >
          <inputs>
            <input type="stream" number="1" xmlns="../scan.dtd">
              <scan/>
            </input>
          </inputs>
          <module type="extern" exec="ibis.exe">
            <meta version="3.51"/> 
          </module>
          <outputs>
            <output type="file">
              <wanda_link 
                href="docServer://wanda/database/.../0001.tif"/>
            </output>
          </outputs>
        </filter>
      </filters>
      <annotations number_of="3">
        <annotation type="content" xmlns="../content.dtd">
          <whole_document
            type="envelope"
            intent="personal"/>
        </annotation>
        <annotation type="writer" xmlns="../writer.dtd">
          <writer id="2015">
            <person>
              <name firstname="Altug" surname="Metin"/>
              <gender type="male"/>
              <born year="1978"/>
            </person>
            <properties handedness="left" skill="ok"/>
            <education country="France" level="high"/>
            <language native="French"/>
            <meta 
              author="SIC Writer" 
              email="sic@here.we.are" 
              institution="Fraunhofer 
              IPK" version="1.0" 
              created="2003-03-17" />
          </writer>
        </annotation>
        <annotation type="material" xmlns="../material.dtd">
          <material>
            <paper 
              type="writing" 
              size="less_A6" 
              material="woodfree" 
              weight="less_60" 
              product="IBM_copy_paper" 
              absorbency="low"/>
            <pad type="paper" surface="even" hardness="soft"/>
          </material>
        </annotation>
      </annotations>
      <regions number_of="1">
        <region id="20032004_0001_copy51_0001_213746432" 
            label="Hello...happy with it." next="">
           <points>
             <point x="0" y="0"/>
             <point x="10" y="0"/>
             <point x="0" y="10"/>
             <point x="10" y="10"/>
           </points>
           <annotations number_of="3">
             <annotation type="material" xmlns="../material.dtd">
               <material>
                 <pen type="fountain_pen" 
                      product="waterman_serenite">
                   <tip 
                     type="metal_nib" 
                     material="gold" 
                     diameter="medium" 
                     flexibility="high"/>
                   <ink 
                     viscosity="low" 
                     transparence="opaque" 
                     color="gray" 
                     product="waterman"/>
                 </pen>
               </material>
             </annotation>
             <annotation type="script" xmlns="../script.dtd">
                <script type="latin" language="english">
                  <style 
                    major="cursive" 
                    connection="arced" 
                    caps="lower_upper" 
                    consistency="high" 
                    stroke_quality="disturbed" 
                    embellishment="simplified" 
                    stroke_quality_causes="ink_aging" 
                    inter-word_connectivity="low" 
                    intra-word_connectivity="high" 
                    relative_writing_speed="faster"/>
                  </script>
               </annotation>
               <annotation type="content" xmsl="../content.dtd">
                  <content>
                    <text_block
                      type="addressee_address_block"
                      length="paragraph" >
                      <properties 
                        tone="neutral" 
                        grammar="ok" 
                        spelling="bad"/>
                      <verbatim> 
                        Alfred Joe 
                        223 daoun the rode 
                        The Bled 
                        USA 
                      </verbatim>
                    </text_block>
                  </content>
                </annotation>
              </annotations>
              <filters number_of="1">
                <filter type="feature_extract" label="nicifeat">
                  <inputs>
                    <input type="stream" number="1" 
                           xmlns="../nicifeat.dtd">
                      <nicifeat/>
                    </input>
                  </inputs>
                  <module type="client" exec="nicifeatmeasurement"/>
                  <outputs>
                    <output type="stream">
                      <features number_of="4">
                      <!-- We do not need to precise the 
                           name space because the feature tag 
                           is a generic wandoc tag -->
                        <feature name="first" type="decimal" 
                                 unit="pixel" value="1.0"/>
                        <feature name="second"  type="decimal"
                                 unit="pixel" value="2.0"/>
                        <feature name="third"  type="decimal" 
                                 unit="pixel" value="3.0"/>
                        <feature name="fourth"  type="decimal" 
                                 unit="pixel" value="4.0"/>
                      </features>
                    </output>
                  </outputs>
                </filter>
              </filters>
           </region>
        </regions>
     </page>
  </pages>
</wandoc>

wandoc DTD File

wandoc!DTD file
<!-- ===========================================================

    wandoc  (Wanda DOCUMENT  Modeling Language)
    
    author: Katrin Fanke, Lambert Schomaker, Isabelle Guyon
    institution: Fraunhofer IPK, Rijksuniversiteit Groningen, Clopinet
    version: 2.0
    created: 2002-04-11-00-00
    modified: 2003-05-08-00-00
    
 =========================================================== -->
<!ENTITY % anno_types 
    " * | document | writer | script | material | content ">
<!ENTITY % filter_types 
    " * | import | processing | feature_extract ">
<!ENTITY % input_types " * | stream | file | var ">
<!ENTITY % module_types " * | client | server | extern ">
<!ENTITY % output_types " * | stream | file | var ">
<!ENTITY % feature_types " * | boolean | decimal ">

<!-- ======================================================= -->
<!ELEMENT wandoc 
    (filters?, annotations?, pages? , wanda_link*, meta?)>
<!ATTLIST wandoc
    id CDATA #REQUIRED
    label CDATA "Enter label !"
    xmlns CDATA #IMPLIED
>

<!-- ======================================================= -->
<!ELEMENT pages (page+)>
<!ATTLIST pages
    number_of CDATA #IMPLIED
>
<!ELEMENT page 
    (filters?, annotations?, regions?, wanda_link*, meta?)>
<!ATTLIST page
    id CDATA #REQUIRED
    label CDATA #IMPLIED
    next CDATA #IMPLIED
>

<!-- ======================================================= -->
<!ELEMENT regions (region+)>
<!ATTLIST regions
    number_of CDATA #IMPLIED
>
<!ELEMENT region 
    (filters?, annotations?,  points+, regions?, wanda_link*)>
<!ATTLIST region
    id CDATA  #REQUIRED
    label CDATA #IMPLIED
    next CDATA #IMPLIED
>

<!-- ======================================================= -->
<!ELEMENT annotations (annotation+)>
<!ATTLIST annotations
    number_of CDATA #IMPLIED
>
<!ELEMENT annotation (comment?, wanda_link*)>
<!ATTLIST annotation
    type (%anno_types;) #IMPLIED
    xmlns CDATA #IMPLIED
>
<!ELEMENT comment (#PCDATA)>

<!-- ======================================================= -->
<!ELEMENT filters (filter+)>
<!ATTLIST filters
    number_of CDATA #IMPLIED
>
<!ELEMENT filter (inputs+, module+, outputs+, wanda_link*)>
<!ATTLIST filter
    type (%filter_types;) #IMPLIED
    label CDATA #IMPLIED
    xmlns CDATA #IMPLIED
>
<!ELEMENT inputs (input+, wanda_link*)>
<!ATTLIST inputs
    number_of CDATA #IMPLIED
>
<!ELEMENT input (#PCDATA)>
<!--type and  the n-th input for the module -->
<!ATTLIST input
    type (%input_types;) #REQUIRED
    number CDATA #IMPLIED
    label CDATA #IMPLIED
    xmlns CDATA #IMPLIED
>
<!ELEMENT module (#PCDATA)>
<!ATTLIST module
    type (%module_types;) #REQUIRED
    exec CDATA #REQUIRED
>
<!ELEMENT outputs (output+, wanda_link*)>
<!ATTLIST outputs
    number_of CDATA #IMPLIED
>
<!ELEMENT output (features?)>
<!ATTLIST output
    type (%output_types;) #REQUIRED
    number CDATA #IMPLIED
    label CDATA #IMPLIED
    xmlns CDATA #IMPLIED
>

<!-- ======================================================= -->
<!ELEMENT features (feature+)>
<!ATTLIST features
    number_of CDATA #IMPLIED
>
<!ELEMENT feature (#PCDATA)>
<!ATTLIST feature
     name CDATA #REQUIRED
     type (%feature_types;) #IMPLIED
     unit CDATA #IMPLIED
     value CDATA #REQUIRED
     number CDATA #IMPLIED
 >
 <!-- ====================================================== -->
<!ELEMENT points (point+)>
<!ELEMENT point EMPTY>
<!ATTLIST point
    x CDATA #REQUIRED
    y CDATA #REQUIRED
>

<!-- ======================================================= -->
<!ELEMENT wanda_link EMPTY>

<!ATTLIST wanda_link 
    href    CDATA    #REQUIRED
>
<!-- This is a proposition of definition of wanda_link as xlink:
<!ATTLIST wanda_link 
    xmlns:xlink   CDATA    #FIXED   "http://www.w3.org/1999/xlink"
    xlink:type    (simple) #FIXED   "simple"
    xlink:href    CDATA    #REQUIRED
    xlink:show    (embed)  #FIXED   "embed"
    xlink:actuate (onLoad) #FIXED   "onLoad"
>
We made a fix choice for the xlink behavior that will carry over
for the entire wandoc document. If attribute show is set to 
embed then the xlink replaces the element link. When attribute 
actuate is set to onLoad, replacement is immediate 
(similarly to well-known element <html:img src=... >).
For other options see: 
http://www.zvon.org/xxl/xlink/OutputExamples/frame_xlinksimple_html.html
or http://www.w3.org/TR/REC-xml-names/ -->

<!-- ======================================================= -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
    author CDATA #IMPLIED
    email CDATA #IMPLIED
    institution CDATA #IMPLIED
    version CDATA #IMPLIED
    created CDATA #IMPLIED
    modified CDATA #IMPLIED
>

wandoc XML tag reference

wandoc!XML tag reference annotation

<annotation
       type = "*|document|writer|script|material|..."        -- Type of annotation.
       xmlns = CDATA
       -- XML name space (e.g. a DTD name or url) >
       <comment/>        -- Free text comment. [?]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
</annotation>
Description: Tag enclosing a user-defined annotation (an application specific DTD is required). See, for instance, the following annotation DTDs: writer , script , material , content .
Parent Element(s): <annotations/>        -- Container of annotations. annotations

<annotations
       number_of = CDATA        -- Number of annotations.
>
       <annotation/>        -- Tag enclosing a user-defined annotation. [+]
</annotations>
Description: Container of annotations.
Parent Element(s):        
<page/>        -- Document page containing a single image and annotations.        
<region/>        -- Region of interest defined by a polygon or rectangle and annotated.        
<wandoc/>        -- Root element of a Wanda document annotation. comment

<comment
</comment>
Description: Free text comment.
Parent Element(s): <annotation/>        -- Tag enclosing a user-defined annotation. feature

<feature
       name = CDATA        -- Feature name.
       number = CDATA
       -- Number of the feature.
       type = "*|boolean|decimal"
       -- Feature value type.
       unit = CDATA
       -- Feature unit.
       value = CDATA
       -- Feature value.
</feature>
Description: Tag to record a statistic about the document, e.g. average ascender length.
Parent Element(s): <features/>        -- Container of features. features

<features
       number_of = CDATA        -- Number of features.
>
       <feature/>        -- Tag to record a statistic about the document. [+]
</features>
Description: Container of features.
Parent Element(s): <output/>        -- Tag enclosing user-defined outputs. filter

<filter
       label = CDATA        -- Label of filter (any text).
       type = "*|import|processing|feature_extract"
       -- Filter type.
       xmlns = CDATA
       -- XML name space (e.g. a DTD name or url) >
       <inputs/>        -- Container of inputs. [+]
       <module/>        -- Executable module. [+]
       <outputs/>        -- Container of outputs. [+]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
</filter>
Description: Generic filter definition (a function/plugin call).
Parent Element(s): <filters/>        -- Container of fiters. filters

<filters
       number_of = CDATA        -- Number of filters.
>
       <filter/>        -- Generic filter definition. [+]
</filters>
Description: Container of filters.
Parent Element(s):        
<page/>        -- Document page containing a single image and annotations.        
<region/>        -- Region of interest defined by a polygon or rectangle and annotated.        
<wandoc/>        -- Root element of a Wanda document annotation. input

<input
       label = CDATA        -- Label identifying the input for search purpose.
       number = CDATA
       -- Optional input order number.
       type = "*|stream|file|var"
       -- Input type.
       xmlns = CDATA
       -- XML name space (e.g. a DTD name or url)
</input>
Description: Tag enclosing user-defined inputs (an application specific DTD is required). See for instance the NICI measurement filter DTD: nicifeat .
Parent Element(s): <inputs/>        -- Container of inputs. inputs

<inputs
       number_of = CDATA        -- Number of inputs.
>
       <input/>        -- Tag enclosing user-defined inputs. [+]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
</inputs>
Description: Container of inputs.
Parent Element(s): <filter/>        -- Generic filter definition. meta

<meta
       author = CDATA        -- Author of the annotations of this part of the document.
       created = CDATA
       -- Date created in the YYYY-MM-DD-mm-ss format.
       email = CDATA
       -- Contact email.
       institution = CDATA
       -- Author's affiliation.
       modified = CDATA
       -- Date last modified in the YYYY-MM-DD-mm-ss format.
       version = CDATA
       -- DTD version number.
/>
Description: Information about how the document annotations were generated.
Parent Element(s):        
<page/>        -- Document page containing a single image and annotations.        
<wandoc/>        -- Root element of a Wanda document annotation. module

<module
       exec = CDATA        -- The function call itself.
       type = "*|client|server|extern"
       -- Type of module.
</module>
Description: Executable module (function/plugin call).
Parent Element(s): <filter/>        -- Generic filter definition. output

<output
       label = CDATA        -- Label identifying the output for search purpose.
       number = CDATA
       -- Optional output order number.
       type = "*|stream|file|var"
       -- Type of output.
       xmlns = CDATA
       -- XML name space (e.g. a DTD name or url) >
       <features/>        -- Container of features. [?]
</output>
Description: Tag enclosing user-defined outputs (an application specific DTD is required). See for instance the NICI measurement filter DTD: nicifeat .
Parent Element(s): <outputs/>        -- Container of outputs. outputs

<outputs
       number_of = CDATA        --
>
       <output/>        -- Tag enclosing user-defined outputs. [+]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
</outputs>
Description: Container of outputs.
Parent Element(s): <filter/>        -- Generic filter definition. page

<page
       id = CDATA        -- Unique page id number.
       label = CDATA
       -- A user-defined string used to retrieve easily the page by searching (e.g., part of the page content).
       next = CDATA
       -- Next page identifier. >
       <filters/>        -- Container of fiters. [?]
       <annotations/>        -- Container of annotations. [?]
       <regions/>        -- Container of regions. [?]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
       <meta/>        -- Information about how the document annotations were generated. [?]
</page>
Description: Document page containing a single image and annotations.
Parent Element(s): <pages/>        -- Container of pages. pages

<pages
       number_of = CDATA        -- Number of pages.
>
       <page/>        -- Document page containing a single image and annotations. [+]
</pages>
Description: Container of pages.
Parent Element(s): <wandoc/>        -- Root element of a Wanda document annotation. point

<point
       x = CDATA        -- x coordinate.
       y = CDATA
       -- y coordinate.
/>
Description: Cartesian coordinate point, in pixel units on the image.
Parent Element(s): <points/>        -- Container of points. points

<points>
       <point/>        -- Cartesian coordinate point. [+]
</points>
Description: Container of points.
Parent Element(s): <region/>        -- Region of interest defined by a polygon or rectangle and annotated. region

<region
       id = CDATA        -- Unique region of interest id.
       label = CDATA
       -- A user-defined string used to retrieve easily the region by searching (e.g., part of the region content).
       next = CDATA
       -- Next region identifier. >
       <filters/>        -- Container of fiters. [?]
       <annotations/>        -- Container of annotations. [?]
       <points/>        -- Container of points. [+]
       <regions/>        -- Container of regions. [?]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
</region>
Description: Region of interest.
Parent Element(s): <regions/>        -- Container of regions. regions

<regions
       number_of = CDATA        -- Number of regions.
>
       <region/>        -- Region of interest defined by a polygon or rectangle and annotated. [+]
</regions>
Description: Container of regions.
Parent Element(s):        
<page/>        -- Document page containing a single image and annotations.        
<region/>        -- Region of interest defined by a polygon or rectangle and annotated. wanda_link

<wanda_link
       href = CDATA        -- Link reference (URL or file name).

/>
Description: Element that will be replaced by the file it points to.
Parent Element(s):        
<annotation/>        -- Tag enclosing a user-defined annotation.        
<filter/>        -- Generic filter definition.        
<inputs/>        -- Container of inputs.        
<outputs/>        -- Container of outputs.        
<page/>        -- Document page containing a single image and annotations.        
<region/>        -- Region of interest defined by a polygon or rectangle and annotated.        
<wandoc/>        -- Root element of a Wanda document annotation. wandoc

<wandoc
       id = CDATA        -- Wanda document unique id.
       label = CDATA
       -- A user-defined string used to retrieve easily the document by searching (e.g., part of the document content).
       xmlns = CDATA
       -- XML name space (e.g. a DTD name or url) >
       <filters/>        -- Container of fiters. [?]
       <annotations/>        -- Container of annotations. [?]
       <pages/>        -- Container of pages. [?]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
       <meta/>        -- Information about how the document annotations were generated. [?]
</wandoc>
Description: Root element of a Wanda document annotation.
Parent Element(s): None

WRITER DTD

writer

The writer description is part of the Wanda XML language. It records information on the writer that may be relevant to the writer identification process from sample handwriting. It excludes other personal information. Therefore, only year of birth, education, gender, and language information are considered.

writer DTD Tree

writer!DTD Tree
writer
 |_(person,
 |   |_(name,
 |   |   |_EMPTY
 |   |  
 |   |__gender,
 |   |   |_EMPTY
 |   |  
 |   |__born)
 |       |_EMPTY
 |      
 |  
 |__properties?,
 |   |_EMPTY
 |  
 |__education?,
 |   |_EMPTY
 |  
 |__language?,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

writer XML example

writer!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE writer SYSTEM "writer_.dtd">
<writer id="2015">
    <person>
        <name firstname="Altug" surname="Metin"/>
        <gender type="male"/>
        <born year="1978"/>
    </person>
    <properties handedness="left" skill="ok"/>
    <education country="France" level="high"/>
    <language native="French"/>
    <meta author="SIC Writer" 
          institution="Fraunhofer IPK" 
          version="1.0" 
          created="2003-03-17" 
          modified=""/>
</writer>

writer DTD File

writer!DTD file
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) 
                            by Isabelle Guyon (Clopinet) -->
<!-- ===========================================================

    writer (Wanda WRITER Modeling Language)
    
    author: Altug Metin, edited by Isabelle Guyon
    institution: Fraunhofer IPK, Clopinet
    version: 3.0
    created: 2002-02-18-00-00
    modified: 2003-05-08-00-00
    
 =========================================================== -->
<!ENTITY % gender_types " * | female | male ">
<!ENTITY % handedness_types " * | left  | right ">
<!ENTITY % skill_types " * | bad  | ok | good ">
<!ENTITY % education_level_types 
        " * | elementary | medium | high ">
<!ENTITY % education_country_types " * | 
albania |            
alberta |           
ashmore |
algeria |           
afghanistan |           
argentina |         
anguilla |          
armenia |    
azerbaijan |            
alaska |        
alabama |           
anguilla |      
andorra |           
angola |            
antigua_barbuda |
arkansas |      
american_samoa |    
australia | 
austria |       
aruba | 
antarctica |    
arizona |       
bahrain |       
barbados |      
british_columbia |
burundi |       
belgium |       
bahamas |       
bangladesh |        
belize |            
brazil |            
bermuda |       
bosnia_hercegovina |    
bolivia |       
burma |     
botswana |          
bhutan |            
bulgaria |          
bouvet_island |     
belarus |           
byelorussia |       
brunei |            
california |            
cambodia |              
china   |           
chad |          
sri_lanka |         
congo |           
croatia |               
cayman_islands |            
colombia |              
chile |             
cameroon |              
canada |                
colorado |              
comoros |       
costa_rica |    
czech_republic|
slovakia |        
connecticut |       
cuba |      
cape_verde |    
cook_islands |  
central_african_republic |
cyprus |        
district_of_columbia |
delaware |      
denmark |       
benin |     
dominica |      
dominican_republic |
eritrea |   
ecuador |   
equatorial_guinea |
easttimor |
england |   
estonia |   
elsalvador |
ethiopia |  
faroe_islands |
french_guiana |
finland |   
fiji |  
falkland_islands |      
florida |           
micronesia | 
french_polynesia |  
france |            
djibouti |          
georgia |           
kiribati |          
grenada |           
germany |       
ghana |         
gibraltar |         
greenland |         
gambia |            
gabon   |       
guadeloupe |            
greece |            
georgia |      
guatemala |         
guam |          
guinea |            
guyana |            
hawaii |            
hongkong |     
honduras |          
haiti |         
hungary |           
iowa |          
iceland |           
idaho |         
ireland |           
india |         
illinois |          
indiana |           
indonesia |         
iraq |          
iran |          
israel |            
italy |         
cote_d_ivoire |     
japan |         
johnston_atoll |        
jamaica |           
jan_mayen |     
jordan |            
kenya |     
kyrgyzstan |            
kirghiz |        
north_korea |     
south_korea |         
kansas |                
kuwait |                
kentucky |              
kazakhstan |                      
louisiana |             
liberia |               
lebanon |               
liechtenstein |             
lithuania |             
lesotho |               
laos |              
luxembourg |
latvia |
libya |
massachusetts |
manitoba |
monaco |
maryland |
maine |
mauritius |
madagascar |
macao |
michigan |
montserrat |
oman |
mali |  
malta | 
minnesota | 
missouri |  
mongolia |  
martinique |    
morocco |   
mississippi |   
montana |   
mauritania |    
moldova |   
moldavia |
malawi |    
mexico |    
malaysia |  
mozambique |    
netherlands_antilles |  
nebraska |      
north_carolina |    
north_dakota |  
netherlands |       
newfoundland_labrador | 
niger |     
new_hampshire | 
northern_ireland |  
new_jersey |    
new_brunswick | 
new_caledonia | 
northern_mariana_islands |
new_mexico |    
vanuatu |       
norway |        
nepal |     
nicaragua |     
nigeria |       
nova_scotia |   
northwest_territories | 
nauru |     
nunavut |       
nevada |        
northern_mariana_islands |
norfolk_island |    
new_york_state |
new_zealand |   
ohio |      
oklahoma |      
ontario |       
oregon |        
mayotte |       
pennsylvania |      
pitcairn_island |   
peru |      
paracel_islands |   
guinea_bissau |     
philippines |       
prince_edward_island |
pakistan |      
poland |        
panama |        
portugal |      
papua_new_guinea |
puerto_rico |   
portuguese_timor |  
palau |     
paraguay |      
qatar |    
quebec_province | 
reunion |       
zimbabwe |      
rhode_island |  
romania |       
russia |   
rwanda |        
ryukyu_islands_southern |
south_africa |      
svalbard |          
south_carolina |        
south_dakota |      
seychelles |        
sao_tome_and_principe |
senegal |           
spanish_north_africa |  
singapore |         
sudan |         
sikkim |            
sierra_leone |      
san_marino |        
saskatchewan |          
somalia |           
spain |         
swaziland |         
surinam |           
western_sahara |    
scotland |          
saudi_arabia |      
swan_islands |      
sweden |            
namibia |           
syria |     
switzerland |           
tajikistan |            
togo |          
thailand |                  
tunisia |                   
turkmenistan |                               
tokelau |                   
tennessee |                 
tonga |             
trinidad_and_tobago |           
united_arab_emirates |          
turkey |                    
tuvalu |                    
texas |             
tanzania |                  
egypt |                 
united_states_caribbean_islands |
uganda |                
unitedkingdom |            
ukraine |               
united_states_pacific_islands  |
soviet_union |          
united_states |         
utah |          
burkina_faso |          
uruguay |               
uzbekistan |      
virginia |                  
british_virgin_islands |            
vaticancity |              
venezuela |                 
united_states_virgin_islands |
vietnam |                   
vermont |                   
washington_state |                
wallis_and_futuna |         
wisconsin |                 
wake_island |       
wales |         
samoa |         
west_virginia |     
wyoming |           
christmas_island |
cocos_keeling_islands |
maldives |          
saint_kitts-nevis |       
marshall_islands |      
midway_islands |        
niue |      
saint_kitts-nevis-anguilla |        
saint_helena |      
saint_lucia |       
saint_pierre_and_miquelon |         
saint_vincent_and_the_grenadines |      
macedonia |                     
slovakia |                      
spratly_island |                    
czech_republic |                    
south_georgia |
slovenia |                      
canada |                        
united_kingdom |                      
yemen |             
yukon_territory |                   
yemen |
yugoslavia |            
zambia ">
<!-- source: http://www.loc.gov/marc/countries/ -->
<!ENTITY % native_language_types " * |
afrikaans |
akkadian |
albanian |
arabic |
armenian |
assyrian |
aymara |
malay |
bangala |
basque |
bavarian |
belorusian |
bengali |
berber_tamazight |
breton |
bulgarian |
burmese |
cambodian |
cantonese |
catalan |
cherokee_tsalagi |
croatian |
czech |
dakota |
danish |
dauphinois |
dutch |
egyptian |
english |
estonian |
finnish |
flemish |
french |
frisian |
fukienese |
gaelic |
galician |
georgian |
german |
greek |
guarani |
gujarati |
hakka |
halaka |
hausa |
hawaiian |
hebrew |
hundustani_hindi |
hungarian |
icelandic |
indonesian |
italian |
japanese |
javanese |
kamilaroi |
korean |
kurdish |
ladino |
latvian |
lithuanian |
lojban |
luganda |
macedonian |
malayalam |
maltese |
mandarin_chinese |
manx |
maori |
mohawk |
mon |
mongolian |
myanmar |
navajo |
nepalese |
norwegian |
occitan |
ojibwe |
oneida |
papiamentu |
persian |
pidgin |
pitcairn |
polish |
portuguese |
punjabi |
quechua |
rasta |
romanian |
romansch |
romany |
russian |
sardinian |
scots |
serbian |
sinhalese |
slovak |
slovenian |
spanish |
sranan |
sudanese |
swabian |
swahili |
swedish |
tagalog |
tamil |
telugu |
thai |
tlingit |
turkish |
ukranian |
viennese |
vietnamese |
welsh |
wu |
yiddish ">
<!-- source: http://www.tesarta.com/www/resources/languages.html -->
<!-- ======================================================= -->
<!ELEMENT writer 
    (person, properties?, education?, language?, meta?)>
<!-- root tag -->
<!ATTLIST writer
    id CDATA #REQUIRED
>
<!-- ======================================================= -->
<!-- every writer is a person ... -->
<!ELEMENT person (name, gender, born)>
<!-- person's name -->
<!ELEMENT name EMPTY>
<!ATTLIST name
    firstname CDATA #IMPLIED
    surname CDATA #IMPLIED
>
<!ELEMENT gender EMPTY>
<!-- person's gender -->
<!ATTLIST gender
    type (%gender_types;) "*"
>
<!ELEMENT born EMPTY>
<!-- person's birth -->
<!ATTLIST born
    year CDATA "*"
>
<!-- ======================================================= -->
<!ELEMENT properties EMPTY>
<!-- writer properties -->
<!ATTLIST properties
    handedness (%handedness_types;) "*"
    skill (%skill_types;) "*"
>
<!-- ======================================================= -->
<!ELEMENT education EMPTY>
<!-- writer's (handwrting) education -->
<!ATTLIST education
    country (%education_country_types;) "*"
    level (%education_level_types;) "*"
>
<!-- ======================================================= -->
<!ELEMENT language EMPTY>
<!ATTLIST language
    native (%native_language_types;) "*"
>
<!-- ======================================================= -->
<!ELEMENT meta EMPTY>
<!-- author of the writer info and location of writer 
                                    info's entering/storage -->
<!ATTLIST meta
    author CDATA #REQUIRED
    institution CDATA #REQUIRED
    version CDATA #REQUIRED
    created CDATA #REQUIRED
    modified CDATA #REQUIRED
>

writer XML tag reference

writer!XML tag reference born

<born
       year = CDATA        -- Year born in four digit format.

/>
Description: Year born.
Parent Element(s): <person/>        -- Civil state information. education

<education
       country = "*|albania|alberta|ashmore|algeria|..."        -- Country of education.
       level = "*|elementary|medium|high"
       -- Level of education.
/>
Description: Education received that may affect handwriting.
Parent Element(s): <writer/>        -- Writer root element. gender

<gender
       type = "*|female|male"        -- Male/female.
/>
Description: Male/female.
Parent Element(s): <person/>        -- Civil state information. language

<language
       native = "*|afrikaans|akkadian|albanian|arabic|..."        -- Language of education.
/>
Description: Language(s).
Parent Element(s): <writer/>        -- Writer root element. meta

<meta
       author = CDATA        -- Person who collected the data.
       created = CDATA
       -- Date of creation.
       institution = CDATA
       -- Place of creation.
       modified = CDATA
       -- Date last modified.
       version = CDATA
       -- Version number.
/>
Description: How this information was collected.
Parent Element(s): <writer/>        -- Writer root element. name

<name
       firstname = CDATA        -- First name or given name.
       surname = CDATA
       -- Surname, family name, last name.
/>
Description: Person name.
Parent Element(s): <person/>        -- Civil state information. person

<person>
       <name/>        -- Writer name.
       <gender/>        -- Male/female.
       <born/>        -- Year born.
</person>
Description: Civil state information.
Parent Element(s): <writer/>        -- Writer root element. properties

<properties
       handedness = "*|left|right"        -- Hand usually used for writing.
       skill = "*|bad|ok|good"
       -- Handwriting skill.
/>
Description: Writing ability properties.
Parent Element(s): <writer/>        -- Writer root element. writer

<writer
       id = CDATA        -- Writer id number.
>
       <person/>        -- Civil state information.
       <properties/>        -- Writing ability properties. [?]
       <education/>        -- Education received that may affect handwriting. [?]
       <language/>        -- Language(s). [?]
       <meta/>        -- How this information was collected. [?]
</writer>
Description: Writer root element.
Parent Element(s): None

MATERIAL DTD

material The material description is part of the Wanda XML language to annotate forensic documents. Writing utensil, ink and surface material are recorded.

material DTD Tree

material!DTD Tree
material
 |_(paper?,
 |   |_EMPTY
 |  
 |__pen?,
 |   |_(tip?,
 |   |   |_EMPTY
 |   |  
 |   |__ink)
 |       |_EMPTY
 |      
 |  
 |__pad?,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

material XML example

material!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v5 rel. 3 U 
    (http://www.xmlspy.com)-->
<!DOCTYPE material SYSTEM "material_.dtd">
<material>
    <paper  type="writing" 
            size="less_A6" 
            material="woodfree" 
            weight="less_60" 
            product="IBM_copy_paper" 
            absorbency="low"/>
    <pen type="fountain_pen" product="waterman_serenite">
        <tip    type="metal_nib" 
                material="gold" 
                diameter="medium" 
                flexibility="high"/>
        <ink    viscosity="low" 
                transparence="opaque" 
                color="gray" 
                product="waterman"/>
    </pen>
    <pad type="paper" surface="even" hardness="soft"/>
</material>

material DTD File

material!DTD file
<!-- ===========================================================

    material (Wanda MATERIAL Modeling Language)
    author: Katrin Fanke, Gerhard Grube, Lambert Schomaker, 
            Louis Vuurpijl, Isabelle Guyon
    institution: Fraunhofer IPK, Landeskriminalamt Berlin, 
            Rijksuniversiteit Groningen, Nijmegen University, 
            Clopinet
    version: 3.0
    created: 2002-03-18-00-00
    modified: 2003-05-08-00-00

 =========================================================== -->
<!ENTITY % pen_type_types 
    " * | pencil | mechanical_pencil | propelling_pencil | 
    ball_point_pen | roller_ball_pen | gel_ink_pen | 
    porous_point_pen | fine_line_pen | fountain_pen | 
    steel_nib_pen | calligraphic_pen | quill">
<!ENTITY % tip_type_types 
    " * | pencil | ball_pen | metal_nib | plastic_nib | 
    flexible_plastic_nib | stiff_perforated_plastic_point | 
    fiber_tip | felt_tip | ceramic_tip ">
<!ENTITY % tip_material_types 
  " * | metal | plastic | ceramic | fibers | felt | gold | steel ">
<!ENTITY % tip_flexibility_types " * | low | normal | high ">
<!ENTITY % ink_viscosity_types " * | low | medium | high ">
<!ENTITY % ink_transparence_types 
    " * | opaque | semi_opaque | transparent ">
<!ENTITY % ink_color_types 
    " * | white | black | gray | purple | blue | green | 
    yellow | orange | red | others ">
<!ENTITY % paper_type_types 
    " * | writing | newspaper | concept | check | ledger | 
    flint_glazed | board | filter | embossed | creped | grained
    | mottled | cast_coated | absorbent | bleached ">
<!ENTITY % paper_size_types 
    " * | less_A6 | A6 | A5 | US_letter | A4 | larger_than_A4 ">
<!ENTITY % paper_material_types " * | woodfree | rice ">
<!ENTITY % paper_weight_types 
    " * | less_60 | 60 | 70 | 80 | 90 | 100 | 110 | 120 | 
    more_than_120 ">
<!ENTITY % paper_absorbency_types " * | low | normal | height ">
<!ENTITY % pad_type_types 
    " * | electronic_tablet | paper | glass | wood | metal | 
    hard_pad | soft_pad ">
<!ENTITY % pad_hardness_types " * | soft | normal | hard ">
<!ENTITY % pad_surface_types " * | even | structured ">

<!-- ======================================================= -->

<!ELEMENT material (paper?, pen?, pad?, meta?)>

<!-- Paper specific information ============================ -->

<!ELEMENT paper EMPTY>

<!ATTLIST paper
    type (%paper_type_types;) #IMPLIED
    size (%paper_size_types;) #REQUIRED
    material (%paper_material_types;) #IMPLIED
    weight (%paper_weight_types;) #IMPLIED
    product CDATA #IMPLIED
    absorbency (%paper_absorbency_types;) #REQUIRED
>

<!-- Pen and Ink specific information ====================== -->

<!ELEMENT pen (tip?, ink)>
<!ATTLIST pen
    type (%pen_type_types;) #REQUIRED
    product CDATA #IMPLIED
>

<!ELEMENT tip EMPTY>
<!ATTLIST tip
    type (%tip_type_types;) #IMPLIED
    material (%tip_material_types;) #IMPLIED
    diameter CDATA #IMPLIED
    flexibility (%tip_flexibility_types;) #REQUIRED
>

<!ELEMENT ink EMPTY>
<!ATTLIST ink
    viscosity (%ink_viscosity_types;) #REQUIRED
    transparence (%ink_transparence_types;) #IMPLIED
    color (%ink_color_types;) #REQUIRED
    product CDATA #IMPLIED
>

<!-- Pad specific information ============================== -->

<!ELEMENT pad EMPTY>
<!ATTLIST pad
    type (%pad_type_types;) #IMPLIED
    hardness (%pad_hardness_types;) #REQUIRED
    surface (%pad_surface_types;) #REQUIRED
>

<!-- ======================================================= -->

<!ELEMENT meta EMPTY>

<!ATTLIST meta
    author CDATA #IMPLIED
    email CDATA #IMPLIED
    institution CDATA #IMPLIED
    version CDATA #IMPLIED
    created CDATA #IMPLIED
    modified CDATA #IMPLIED
>

material XML tag reference

material!XML tag reference ink

<ink
       color = "*|white|black|gray|purple|..."        -- Ink color.
       product = CDATA
       -- Ink product/manufacturer name.
       transparence = "*|opaque|semi_opaque|transparent"
       -- Ink transparence.
       viscosity = "*|low|medium|high"
       -- Ink viscosity.
/>
Description: Type and color of ink.
Parent Element(s): <pen/>        -- Writing pen. material

<material>
       <paper/>        -- Writing paper. [?]
       <pen/>        -- Writing pen. [?]
       <pad/>        -- Writing support. [?]
       <meta/>        -- How this information was collected. [?]
</material>
Description: Material used for writing.
Parent Element(s): None meta

<meta
       author = CDATA        -- Person who collected the data.
       created = CDATA
       -- Date of creation.
       email = CDATA
       -- Contact email.
       institution = CDATA
       -- Place of creation.
       modified = CDATA
       -- Date last modified.
       version = CDATA
       -- DTD version number.
/>
Description: How this information was collected.
Parent Element(s): <material/>        -- Material used for writing. pad

<pad
       hardness = "*|soft|normal|hard"        -- Pad surface hardness.
       surface = "*|even|structured"
       -- Pad surface irregularities.
       type = "*|electronic_tablet|paper|glass|wood|..."
       -- Pad type.
/>
Description: Writing support.
Parent Element(s): <material/>        -- Material used for writing. paper

<paper
       absorbency = "*|low|normal|height"        -- Paper absorbemcy.
       material = "*|woodfree|rice"
       -- Paper material.
       product = CDATA
       -- Paper product/manufacturer name.
       size = "*|less_A6|A6|A5|US_letter|..."
       -- Paper size.
       type = "*|writing|newspaper|concept|check|..."
       -- Paper type.
       weight = "*|less_60|60|70|80|..."
       -- Paper weight.
/>
Description: Writing paper.
Parent Element(s): <material/>        -- Material used for writing. pen

<pen
       product = CDATA        -- Pen product/manufacturer name.
       type = "*|pencil|mechanical_pencil|propelling_pencil|ball_point_pen|..."
       -- Pen type. >
       <tip/>        -- Pen tip. [?]
       <ink/>        -- Type and color of ink.
</pen>
Description: Writing pen.
Parent Element(s): <material/>        -- Material used for writing. tip

<tip
       diameter = CDATA        -- Tip diameter.
       flexibility = "*|low|normal|high"
       -- Tip flexibility.
       material = "*|metal|plastic|ceramic|fibers|..."
       -- Tip material.
       type = "*|pencil|ball_pen|metal_nib|plastic_nib|..."
       -- Tip type.
/>
Description: Pen tip.
Parent Element(s): <pen/>        -- Writing pen.

SCRIPT DTD

script The script description is part of the Wanda XML language to annotate forensic documents. Language, type of script and style are recorded.

script DTD Tree

script!DTD Tree
script
 |_(style,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

script XML example

script!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!--Sample XML file generated by XMLSPY v5 rel. 3 U 
                            (http://www.xmlspy.com)-->
<!DOCTYPE script SYSTEM "script_.dtd">
<script type="latin" language="afrikaans">
    <style 
        major="cursive" 
        connection="arced" 
        caps="lower_upper" 
        consistency="high" 
        stroke_quality="disturbed" 
        embellishment="simplified" 
        stroke_quality_causes="ink_aging" 
        inter-word_connectivity="low" 
        intra-word_connectivity="high" 
        relative_writing_speed="faster"/>
</script>

script DTD File

script!DTD file
<!-- ===========================================================

    script  (Wanda SCRIPT Modeling Language)
    
    author: Katrin Fanke, Lambert Schomaker, 
            Gerhard Grube, Louis Vuurpijl, Isabelle Guyon
    institution: Fraunhofer IPK, Rijksuniversiteit Groningen, 
        Landeskriminalamt Berlin, Nijmegen University, Clopinet
    version: 3.0
    created: 2002-03-18-00-00
    modified: 2003-05-08-00-00
    
 =========================================================== -->
<!-- source: Writing Systems of the World: 
             Alphabets, Syllabaries, Pictograms 
             by Nakanishi Akira and Akira Nakanishi -->
<!ENTITY % script_type_types 
" * |
latin |
greek |
russian_cyrillic |
georgian |
armenian |
other_european |
hebrew |
arabic |
farsi |
urdu |
maldivian |
other_west_asiatic |
devanagari |
gurmukhi |
gujarati |
oriya |
bengali |
tamil |
telugu |
kannanda |
malayalam |
sinhalese |
other_indian |
burmese |
khmer |
thai | 
lao |
other_southeast_asia |
chinese_hanzi |
tibetan |
mongolian |
korean_hangul |
japanese_kanji |
japanese_kana |
other_east_asia |
amharic |
other_african |
south_american |
other_american ">

<!-- source: http://www.tesarta.com/www/resources/languages.html -->
<!-- NOTE: The script language is different 
           from the native language of the writer. -->
<!ENTITY % language_types 
"* |
afrikaans |
akkadian |
albanian |
arabic |
armenian |
assyrian |
aymara |
malay |
bangala |
basque |
bavarian |
belorusian |
bengali |
berber_tamazight |
breton |
bulgarian |
burmese |
cambodian |
cantonese |
catalan |
cherokee_tsalagi |
croatian |
czech |
dakota |
danish |
dauphinois |
dutch |
egyptian |
english |
estonian |
finnish |
flemish |
french |
frisian |
fukienese |
gaelic |
galician |
georgian |
german |
greek |
guarani |
gujarati |
hakka |
halaka |
hausa |
hawaiian |
hebrew |
hundustani_hindi |
hungarian |
icelandic |
indonesian |
italian |
japanese |
javanese |
kamilaroi |
korean |
kurdish |
ladino |
latvian |
lithuanian |
lojban |
luganda |
macedonian |
malayalam |
maltese |
mandarin_chinese |
manx |
maori |
mohawk |
mon |
mongolian |
myanmar |
navajo |
nepalese |
norwegian |
occitan |
ojibwe |
oneida |
papiamentu |
persian |
pidgin |
pitcairn |
polish |
portuguese |
punjabi |
quechua |
rasta |
romanian |
romansch |
romany |
russian |
sardinian |
scots |
serbian |
sinhalese |
slovak |
slovenian |
spanish |
sranan |
sudanese |
swabian |
swahili |
swedish |
tagalog |
tamil |
telugu |
thai |
tlingit |
turkish |
ukranian |
viennese |
vietnamese |
welsh |
wu |
yiddish ">


<!ENTITY % major_style_types         
    " * | cursive | mixed | handprint | blockprint ">
<!ENTITY % cap_type_types            
    " * | lower_upper | all_caps | lowercase | uppercase ">
<!ENTITY % connection_types         
    " * | arced | garland | angular | straight | indetermined ">
<!ENTITY % consistency_types 
    " * | high | normal | low ">
<!ENTITY % embellishment_types 
    " * | simplified | normal | enriched ">
<!ENTITY % stroke_quality_types 
    " * | smooth | disturbed | highly_disturbed ">
<!ENTITY % stroke_quality_causes_types 
    " * | ink_aging | pen_defect | paper_absobency | 
    pad_hardness | pad_surface | writer_state | pen_grip ">
<!ENTITY % inter-word_connectivity_types 
    " * | high | normal | low ">
<!ENTITY % intra-word_connectivity_types 
    " * | high | normal | low ">
<!ENTITY % relative_writing_speed_types 
    " * | faster | normal | slower ">

<!--Script specific information ============================ -->
<!ELEMENT script (style, meta?)>
<!ATTLIST script
    type (%script_type_types;) #REQUIRED  
    language (%language_types;) #REQUIRED
>

<!ELEMENT style EMPTY>
<!ATTLIST style
    major (%major_style_types;) #REQUIRED
    connection (%connection_types;) #IMPLIED
    caps (%cap_type_types;) #IMPLIED
    consistency (%consistency_types;) #IMPLIED
    stroke_quality (%stroke_quality_types;) #IMPLIED
    embellishment (%embellishment_types;) #IMPLIED
    stroke_quality_causes (%stroke_quality_causes_types;) #IMPLIED
    inter-word_connectivity (%inter-word_connectivity_types;) #IMPLIED
    intra-word_connectivity (%intra-word_connectivity_types;) #IMPLIED
    relative_writing_speed (%relative_writing_speed_types;) #IMPLIED
>
<!-- ======================================================= -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta
    author CDATA #IMPLIED
    email CDATA #IMPLIED
    institution CDATA #IMPLIED
    version CDATA #IMPLIED
    created CDATA #IMPLIED
    modified CDATA #IMPLIED
>

script XML tag reference

script!XML tag reference meta

<meta
       author = CDATA        -- Person who collected the data.
       created = CDATA
       -- Date of creation.
       email = CDATA
       -- Contact electronic mail.
       institution = CDATA
       -- Place of creation.
       modified = CDATA
       -- Date last modified.
       version = CDATA
       -- DTD version number.
/>
Description: How this information was collected.
Parent Element(s): <script/>        -- Script root element. script

<script
       language = "*|afrikaans|akkadian|albanian|arabic|..."        -- Language used.
       type = "*|latin|greek|russian_cyrillic|georgian|..."
       -- Script type used. >
       <style/>        -- Writing style.
       <meta/>        -- How this information was collected. [?]
</script>
Description: Script root element.
Parent Element(s): None style

<style
       caps = "*|lower_upper|all_caps|lowercase|uppercase"        -- Capitalization: all_caps differs from uppercase in that first letters may have a larger size.
       connection = "*|arced|garland|angular|straight|..."
       -- Type of connectors.
       consistency = "*|high|normal|low"
       -- Consistency of style.
       embellishment = "*|simplified|normal|enriched"
       -- Degree of embellishement.
       inter-word_connectivity = "*|high|normal|low"
       -- Connectivity between words.
       intra-word_connectivity = "*|high|normal|low"
       -- Connectivity within word.
       major = "*|cursive|mixed|handprint|blockprint"
       -- Major style.
       relative_writing_speed = "*|faster|normal|slower"
       -- Writing speed compared to average.
       stroke_quality = "*|smooth|disturbed|highly_disturbed"
       -- Regularity of the baseline.
       stroke_quality_causes = "*|ink_aging|pen_defect|paper_absobency|pad_hardness|..."
       -- Possible causes of stroke defects.
/>
Description: Writing style.
Parent Element(s): <script/>        -- Script root element.

CONTENT DTD

content The part of Wanda ML concerns the document content annotations.

content DTD Tree

content!DTD Tree
content
 |_(document?,
 |   |_EMPTY
 |  
 |__text_block?,
 |   |_(properties?,
 |   |   |_EMPTY
 |   |  
 |   |__verbatim?)
 |       |_(#PCDATA)
 |      
 |  
 |__misc_block?,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

content XML example

content!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE content SYSTEM "content_.dtd">
<content>
    <document
        type="envelope"
        intent="personal"/>
    <text_block
        type="addressee_address_block"
        length="paragraph"
    >
        <properties tone="neutral" grammar="ok" spelling="bad"/>
        <verbatim> 
            Alfred Joe 
            223 daoun the rode 
            The Bled 
            USA 
        </verbatim>
    </text_block>
    <meta 
        author="Isabelle Guyon" 
        email="isabelle@clopinet.com"
        institution="Clopinet" 
        version="1.0" 
        created="2003-04-18-00-00" 
        modified="2003-04-24-00-00"/>
</content>

content DTD File

content!DTD file
<!-- ===========================================================

    content  (Wanda CONTENT  Modeling Language)
    
    author: Isabelle Guyon, Katrin Fanke, Lambert Schomaker
    institution: Clopinet,  Fraunhofer IPK, 
                 Rijksuniversiteit Groningen
    version: 1.0
    created: 2002-03-25-00-00
    modified: 2003-05-08-00-00
    
============================================================ -->
<!ENTITY % document_type_types 
            " * | writing_product | note | letter | check | 
            greeting_card | envelope | postcard | bank_transfer
            | post_sticker | hotel_registration | 
            foreigner_script | contract | last_will | 
            work_permit | tax_form | registration_form | 
            excerpt ">
<!ENTITY % intent_types 
            " * | message | bomb_threat | threat | extortion | 
            blackmail | pornography | child_porn | 
            drugs_related | financial_fraud | terrorism | 
            racism | personal | public ">
<!ENTITY % text_block_type_types 
            " * | whole_form | addressee_address_block | 
            sender_address_block | personal_name | 
            geographical_name | zipcode | legal_amount |
            currency_amount | telephone_number | digits | 
            abbreviation | signature | paraph | plain_text ">
<!ENTITY % misc_block_type_types 
            " * | postal_stamp | ink_stamp | barcode | 
            printed_text | fingerprint | stain | drawing | 
            scribble | graffiti ">
<!ENTITY % text_length_types 
            " * | character | word | few_words | line | 
            paragraph | page | pages ">
<!ENTITY % tone_types 
            " * | kind | neutral | threatening | angry | 
            sad | happy ">
<!ENTITY % grammar_types " * | bad | ok | good ">
<!ENTITY % spelling_types " * | bad | ok | good ">
            
<!ELEMENT content (document?, text_block?, misc_block?, meta?)>

<!ELEMENT meta EMPTY>
<!ATTLIST meta
    author CDATA #REQUIRED
    email CDATA #REQUIRED
    institution CDATA #REQUIRED
    version CDATA #REQUIRED
    created CDATA #REQUIRED
    modified CDATA #REQUIRED
>

<!ELEMENT document EMPTY>
<!ATTLIST document
    type (%document_type_types;) #REQUIRED
    intent (%intent_types;) #REQUIRED
>

<!ELEMENT text_block (properties?, verbatim?)>
<!ATTLIST text_block
    type (%text_block_type_types;) #REQUIRED
    length (%text_length_types;) #REQUIRED
>

<!ELEMENT misc_block EMPTY>
<!ATTLIST misc_block
    type (%misc_block_type_types;) #REQUIRED
>

<!ELEMENT properties EMPTY>
<!ATTLIST properties
    tone (%tone_types;) #REQUIRED
    grammar (%grammar_types;) #REQUIRED
    spelling (%spelling_types;) #REQUIRED
>

<!ELEMENT verbatim (#PCDATA)>

content XML tag reference

content!XML tag reference content

<content>
       <document/>        -- Information on the whole document. [?]
       <text_block/>        -- Block of text. [?]
       <misc_block/>        -- Miscellaneous non-text block. [?]
       <meta/>        -- Information on who created these data annotations. [?]
</content>
Description: Root element.
Parent Element(s): None document

<document
       intent = "*|message|bomb_threat|threat|extortion|..."        -- Document intent.
       type = "*|writing_product|note|letter|check|..."
       -- Document type.
/>
Description: Information on the whole document.
Parent Element(s): <content/>        -- Root element. meta

<meta
       author = CDATA        -- Person who authored the annotations.
       created = CDATA
       -- Date created.
       email = CDATA
       -- Contact email.
       institution = CDATA
       -- Author's affiliation.
       modified = CDATA
       -- Date modified.
       version = CDATA
       -- DTD version.
/>
Description: Information on who created these data annotations.
Parent Element(s): <content/>        -- Root element. misc_block

<misc_block
       type = "*|postal_stamp|ink_stamp|barcode|printed_text|..."        -- Non-text block type.
/>
Description: Miscellaneous non-text block.
Parent Element(s): <content/>        -- Root element. properties

<properties
       grammar = "*|bad|ok|good"        -- Grammar quality.
       spelling = "*|bad|ok|good"
       -- Spelling quality.
       tone = "*|kind|neutral|threatening|angry|..."
       -- Tone employed.
/>
Description: Text block content properties.
Parent Element(s): <text_block/>        -- Block of text. text_block

<text_block
       length = "*|character|word|few_words|line|..."        -- Text block length.
       type = "*|whole_form|addressee_address_block|sender_address_block|personal_name|..."
       -- Text block type. >
       <properties/>        -- Text block content properties. [?]
       <verbatim/>        -- Verbatim transcription. [?]
</text_block>
Description: Block of text.
Parent Element(s): <content/>        -- Root element. verbatim

<verbatim
</verbatim>
Description: Verbatim transcription. Use the ISO 10646 standard to encode special characters. You can refer to characters from in the encoded repertoire by using &#dddd; (decimal character code) or &#xHHHH; (hexadecimal character code, in uppercase).
Parent Element(s): <text_block/>        -- Block of text.

SCAN DTD

scan Wanda XML for scanned image annotation.

scan DTD Tree

scan!DTD Tree
scan
 |_(scanner?,
 |   |_EMPTY
 |  
 |__image+,
 |   |_(lcms)
 |       |_EMPTY
 |      
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

scan XML example

scan!XML example
<?xml version="1.0"?>
<!DOCTYPE scan SYSTEM "scan_.dtd">
<scan name="A4 Farbe quer">
    <scanner driver="HP ScanJet" 
             feeder="flatbed" 
             pages="frontside" 
             format="A4" 
             orientation="landscape"/>
    <image   name="Archivbild" 
             filename="FSA%05u.jpg" 
             camera="frontside" 
             colors="rgb24" 
             compress="jpeg" 
             quality="30" 
             xresolution="100" 
             yresolution="100">
         <lcms incolor="ct_lcms_rgb" 
         inprofile="file://c$/sg_pDir/ibis/sRGB/ibs_9403_300.icc"/>
    </image>
    <image name="Detailbild" 
           filename="FSD%05u.tif" 
           camera="frontside" 
           colors="rgb24" 
           compress="none" 
           xresolution="200" yresolution="200">
        <lcms incolor="ct_lcms_rgb" 
        inprofile="file://c$/sg_pDir/ibis/sRGB/ibs_9403_300.icc"/>
    </image>
    <meta
         author="Stefan Giesler"
         email="st.giesler@t-online.de"
         institution="Giesler Software Entwicklung"
         version="1.0"
         created="2003-03-10-00-00"
         modified="2003-04-11-09-00"/>
</scan>

scan DTD File

scan!DTD file
<!-- ===========================================================

    scan(profile) (Wanda SCAN Modeling Language)
 
    author: Stefan Giesler <st.giesler@t-online.de>
    edited by: Isabelle Guyon <isabelle@clopinet.com>
    Grouped attlist args in one attlist.
    Changed some default values.
    Changed <info> to <meta> and put it under root element.
    Added email in <meta>.
    institution: Giesler Software Entwicklung
    version: 1.0
    created: 2003-03-10-00-00
    modified: 2003-04-11-09-00
        
 =========================================================== -->
<!ENTITY % orient "portait | landscape" >
<!ENTITY % side "frontside | backside | bothsides" >
<!ENTITY % feed "flatbed | feeder | other" >
<!ENTITY % size "A6 | A5 | A4 | A3" >
<!ENTITY % camera "frontside | backside" >
<!ENTITY % colors "bitonal | gray | rgb24 | rgb36" >
<!ENTITY % rotate "none | left | centre | right" >
<!ENTITY % compress "none | faxg3 | faxg4 | jpeg" >
<!ENTITY % xsection "none | left | right | user" >
<!ENTITY % ysection "none | top | bottom | user" >
<!-- ======================================================= -->
<!ELEMENT scan (scanner?, image+, meta?) > <!-- root tag -->

 <!-- name of the scan profile -->
<!ATTLIST scan name CDATA #REQUIRED >                                            

<!-- ======================================================= -->
<!ELEMENT scanner EMPTY >

<!ATTLIST scanner 
    driver CDATA "driverName"   
    feeder (%feed;) "flatbed" 
    pages (%side;) "frontside"  
    orientation (%orient;) "portait"    
    format (%size;) "A4" >  


<!-- ======================================================= -->
<!ELEMENT image (lcms) >
  
<!ATTLIST image 
    name CDATA #REQUIRED    
    filename CDATA #REQUIRED
    camera (%camera;) "frontside"
    colors (%colors;) "rgb24"
    rotate (%rotate;) "none"
    compress (%compress;) "none"
    quality CDATA "100"
    xresolution CDATA "100"
    yresolution CDATA "100"
    xpixels CDATA "0"
    ypixels CDATA "0"
    xsection (%xsection;) "none"
    xsecsize CDATA "0"
    xseccoord CDATA "0"
    ysection (%ysection;) "none"
    ysecsize CDATA "0"
    yseccoord CDATA "0">                            

<!-- ======================================================= -->
<!-- little color management system -->
<!ELEMENT lcms EMPTY>                                                                        

<!ATTLIST lcms 
    inProfile CDATA #REQUIRED
    inColor CDATA #REQUIRED
    outProfile CDATA #REQUIRED
    outColor CDATA #REQUIRED>

<!-- ======================================================= -->
<!ELEMENT meta EMPTY>
<!ATTLIST meta 
    author CDATA "anonymous"
    email CDATA "anonymous@somewhere.abc"
    institution CDATA "anywhere"
    version CDATA "00.00"
    created CDATA "YYYY-MM-DD-hh-mm-ss"
    modified CDATA "YYYY-MM-DD-hh-mm-ss">

scan XML tag reference

scan!XML tag reference image

<image
       camera = "frontside|backside"        -- Camera type.
       colors = "bitonal|gray|rgb24|rgb36"
       -- Color space.
       compress = "none|faxg3|faxg4|jpeg"
       -- Compression type.
       filename = CDATA
       -- Image file name.
       name = CDATA
       -- Image name.
       quality = CDATA
       -- JPEG compression quality.
       rotate = "none|left|centre|right"
       -- Rotation type.
       xpixels = CDATA
       -- Image width in pixels.
       xresolution = CDATA
       -- Image x resolution in dpi.
       xseccoord = CDATA
       -- Upper-left coordinate of scanned section in x.
       xsecsize = CDATA
       -- Width of scanned section in x.
       xsection = "none|left|right|user"
       -- Type of section in x. Meaning?
       ypixels = CDATA
       -- Image height in pixels.
       yresolution = CDATA
       -- Image y resolution in dpi.
       yseccoord = CDATA
       -- Upper-left coordinate of scanned section in y.
       ysecsize = CDATA
       -- Width of scanned section in y.
       ysection = "none|top|bottom|user"
       -- Type of section in y. Meaning? >
       <lcms/>        -- Little color management system.
</image>
Description: Image definition block.
Parent Element(s): <scan/>        -- Root element. lcms

<lcms
       inColor = CDATA        -- What?
       inProfile = CDATA
       -- What?
       outColor = CDATA
       -- What?
       outProfile = CDATA
       -- What?
/>
Description: Little color management system.
Parent Element(s): <image/>        -- Image definition block. meta

<meta
       author = CDATA        -- Author of the scan profile.
       created = CDATA
       -- Date created in YYYY-MM-DD-hh-mm-ss format.
       email = CDATA
       -- Email of the author.
       institution = CDATA
       -- Author's affiliation.
       modified = CDATA
       -- Date created in YYYY-MM-DD-hh-mm-ss format.
       version = CDATA
       -- Version of the scan profile DTD.
/>
Description: Information about who generated this document.
Parent Element(s): <scan/>        -- Root element. scan

<scan
       name = CDATA        -- Name of the scan profile.
>
       <scanner/>        -- Scanner information. [?]
       <image/>        -- Image definition block. [+]
       <meta/>        -- Information about who generated this document. [?]
</scan>
Description: Root element.
Parent Element(s): None scanner

<scanner
       driver = CDATA        -- Scanner driver name.
       feeder = "flatbed|feeder|other"
       -- Document feeder.
       format = "A6|A5|A4|A3"
       -- Document format.
       orientation = "portait|landscape"
       -- Document orientation.
       pages = "frontside|backside|bothsides"
       -- Document pages.
/>
Description: Scanner information.
Parent Element(s): <scan/>        -- Root element.

PROPER DTD

proper This part of Wanda XML describes preprocessing operations.

proper DTD Tree

proper!DTD Tree
proper
 |_(roi*,
 |   |_(vertex*)
 |       |_EMPTY
 |      
 |  
 |__properParam+,
 |   |_(background,
 |   |   |_(none?,
 |   |   |   |_ANY
 |   |   |  
 |   |   |__homogenous?,
 |   |   |   |_ANY
 |   |   |  
 |   |   |__textured?,
 |   |   |   |_(low?,
 |   |   |   |   |_EMPTY
 |   |   |   |  
 |   |   |   |__high?,
 |   |   |   |   |_EMPTY
 |   |   |   |  
 |   |   |   |__peaks?,
 |   |   |   |   |_EMPTY
 |   |   |   |  
 |   |   |   |__amount?)
 |   |   |       |_EMPTY
 |   |   |      
 |   |   |  
 |   |   |__userdefined?,
 |   |   |   |_ANY
 |   |   |  
 |   |   |__formdropout?,
 |   |   |   |_(image,
 |   |   |   |   |_ANY
 |   |   |   |  
 |   |   |   |__method,
 |   |   |   |   |_ANY
 |   |   |   |  
 |   |   |   |__offset)
 |   |   |       |_ANY
 |   |   |      
 |   |   |  
 |   |   |__colordropout?,
 |   |   |   |_ANY
 |   |   |  
 |   |   |__colorconvert?)
 |   |       |_(channelcomp?)
 |   |           |_(image, ...
 |   |           |__method, ...
 |   |           |__offset) ...
 |   |          
 |   |      
 |   |  
 |   |__foreground?,
 |   |   |_(reconst?,
 |   |   |   |_ANY
 |   |   |  
 |   |   |__noise?,
 |   |   |   |_EMPTY
 |   |   |  
 |   |   |__line?,
 |   |   |   |_(direction?,
 |   |   |   |   |_(rows?,
 |   |   |   |   |   |_ANY
 |   |   |   |   |  
 |   |   |   |   |__columns?,
 |   |   |   |   |   |_ANY
 |   |   |   |   |  
 |   |   |   |   |__angle?)
 |   |   |   |       |_EMPTY
 |   |   |   |      
 |   |   |   |  
 |   |   |   |__((average? |
 |   |   |   |     |_ANY
 |   |   |   |    
 |   |   |   |____trace? |
 |   |   |   |     |_EMPTY
 |   |   |   |    
 |   |   |   |____morpho? |
 |   |   |   |     |_EMPTY
 |   |   |   |    
 |   |   |   |____gabor?)?))
 |   |   |         |_ANY
 |   |   |        
 |   |   |  
 |   |   |__stamp?,
 |   |   |   |_((segment |
 |   |   |   |    |_ANY
 |   |   |   |   
 |   |   |   |___contrast),
 |   |   |   |    |_ANY
 |   |   |   |   
 |   |   |   |__noise) ...
 |   |   |  
 |   |   |__framein?,
 |   |   |   |_(share? |
 |   |   |   |   |_EMPTY
 |   |   |   |  
 |   |   |   |__rect?)
 |   |   |       |_(extension |
 |   |   |       |   |_EMPTY
 |   |   |       |  
 |   |   |       |__frame)
 |   |   |           |_EMPTY
 |   |   |          
 |   |   |      
 |   |   |  
 |   |   |__border?)
 |   |       |_(rect?) ...
 |   |      
 |   |  
 |   |__inout?,
 |   |   |_(pre? |
 |   |   |   |_(scale?)
 |   |   |       |_(resolution?,
 |   |   |       |   |_EMPTY
 |   |   |       |  
 |   |   |       |__(bilinear? |
 |   |   |       |    |_ANY
 |   |   |       |   
 |   |   |       |___repeat?))
 |   |   |            |_ANY
 |   |   |           
 |   |   |      
 |   |   |  
 |   |   |__post?)
 |   |       |_(scale? | ...
 |   |       |__colorout?)
 |   |           |_(color? |
 |   |           |   |_EMPTY
 |   |           |  
 |   |           |__pseudo?)
 |   |               |_ANY
 |   |              
 |   |          
 |   |      
 |   |  
 |   |__desc?)
 |       |_ANY
 |      
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

proper XML example

proper!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE content SYSTEM "proper_.dtd">
    <roi id="0">
        <vertex x="20" y="50"/>
        <vertex x="50" y="50"/>
        <vertex x="20" y="100"/>
    </roi>
    <roi id="1">
        <vertex x="306" y="97"/>
        <vertex x="377" y="44"/>
        <vertex x="454" y="100"/>
        <vertex x="477" y="61"/>
        <vertex x="474" y="147"/>
        <vertex x="454" y="108"/>
        <vertex x="376" y="143"/>
    </roi>
    <properParam id="0">
        <background>
            <homogenous/>
        </background>
        <foreground>
            <line>
                <direction>
                    <rows/>
                </direction>
                <morpho ze_horizontal="0.5" ze_vertical="20"/>
            </line>
        </foreground>
    </properParam>
    <properParam id="1">
        <background>
            <homogenous/>
        </background>
        <foreground>
            <line>
                <direction>
                    <rows/>
                </direction>
                <morpho ze_horizontal="22" ze_vertical="200"/>
            </line>
        </foreground>
    </properParam>
    <meta author="Martin Peng" institution="fraunhofer IPK" 
          version="2.0" created="2003-03-17" modified=""/>
</proper>

proper DTD File

proper!DTD file
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===========================================================

    proper (SIC PROPER Modeling Language)
    
    author: Martin Peng, Katrin Franke
    institution: Fraunhofer IPK
    version: 2.0
    created: 2002-11-18-00-00
    modified: 2003-02-23-00-00
    
 =========================================================== -->
<!-- edited with XMLSPY v5 rel. 3 U 
    (http://www.xmlspy.com) by Isabelle Guyon (Clopinet) -->
<!ELEMENT proper (roi*, properParam+, meta?)>
<!ELEMENT roi (vertex*)>
<!ATTLIST roi
    id CDATA #IMPLIED
>
<!ELEMENT properParam (background, foreground?, inout?, desc?)>
<!ATTLIST properParam
    id CDATA #IMPLIED
>
<!ELEMENT meta EMPTY>
<!ATTLIST meta
    author CDATA #IMPLIED
    institution CDATA #IMPLIED
    version CDATA #IMPLIED
    created CDATA #IMPLIED
    modified CDATA #IMPLIED
>
<!ELEMENT vertex EMPTY>
<!ATTLIST vertex
    x CDATA #REQUIRED
    y CDATA #REQUIRED
>
<!ELEMENT background 
    (none?, homogenous?, textured?, userdefined?, 
    formdropout?, colordropout?, colorconvert?)>
<!ELEMENT foreground 
    (reconst?, noise?, line?, stamp?, framein?, border?)>
<!ELEMENT inout (pre? | post?)>
<!ELEMENT desc ANY>
<!ELEMENT none ANY>
<!ELEMENT homogenous ANY>
<!ELEMENT textured (low?, high?, peaks?, amount?)>
<!ELEMENT userdefined ANY>
<!ELEMENT formdropout (image, method, offset)>
<!ELEMENT colordropout ANY>
<!ELEMENT colorconvert (channelcomp?)>
<!ELEMENT reconst ANY>
<!ELEMENT noise EMPTY>
<!ATTLIST noise
    size CDATA #IMPLIED
>
<!ELEMENT line 
    (direction?, ((average? | trace? | morpho? | gabor?)?))>
<!ELEMENT stamp ((segment | contrast), noise)>
<!ELEMENT framein (share? | rect?)>
<!ELEMENT border (rect?)>
<!ELEMENT pre (scale?)>
<!ELEMENT post (scale? | colorout?)>
<!ELEMENT low EMPTY>
<!ATTLIST low
    value CDATA #IMPLIED
>
<!ELEMENT high EMPTY>
<!ATTLIST high
    value CDATA #IMPLIED
>
<!ELEMENT peaks EMPTY>
<!ATTLIST peaks
    value CDATA #IMPLIED
>
<!ELEMENT amount EMPTY>
<!ATTLIST amount
    value CDATA #IMPLIED
>
<!ELEMENT image ANY>
<!ELEMENT method ANY>
<!ELEMENT offset ANY>
<!ELEMENT channelcomp (image, method, offset)>
<!ELEMENT direction (rows?, columns?, angle?)>
<!ELEMENT average ANY>
<!ELEMENT trace EMPTY>
<!ATTLIST trace
    grayvariance CDATA #IMPLIED
    derivation CDATA #IMPLIED
    limit CDATA #IMPLIED
    threshold CDATA #IMPLIED
>
<!ELEMENT morpho EMPTY>
<!ATTLIST morpho
    se_horizontal CDATA #IMPLIED
    se_vertical CDATA #IMPLIED
    ze_horizontal CDATA #IMPLIED
    ze_vertical CDATA #IMPLIED
>
<!ELEMENT gabor ANY>
<!ELEMENT segment ANY>
<!ELEMENT contrast ANY>
<!ELEMENT share EMPTY>
<!ATTLIST share
    amount CDATA #IMPLIED
>
<!ELEMENT rect (extension | frame)>
<!ELEMENT scale (resolution?, (bilinear? | repeat?))>
<!ELEMENT colorout (color? | pseudo?)>
<!ELEMENT rows ANY>
<!ELEMENT columns ANY>
<!ELEMENT angle EMPTY>
<!ATTLIST angle
    degree CDATA #REQUIRED
>
<!ELEMENT extension EMPTY>
<!ATTLIST extension
    offset_x CDATA #IMPLIED
    offset_y CDATA #IMPLIED
    extension_x CDATA #IMPLIED
    extension_y CDATA #IMPLIED
>
<!ELEMENT frame EMPTY>
<!ATTLIST frame
    left CDATA #IMPLIED
    top CDATA #IMPLIED
    bottom CDATA #IMPLIED
    right CDATA #IMPLIED
>
<!ELEMENT resolution EMPTY>
<!ATTLIST resolution
    dpi (75 | 150 | 300 | 600 | 1200) #IMPLIED
>
<!ELEMENT bilinear ANY>
<!ELEMENT repeat ANY>
<!ELEMENT color EMPTY>
<!ATTLIST color
    model (rgb | cmyk | gray | bw) #IMPLIED
>
<!ELEMENT pseudo ANY>

proper XML tag reference

proper!XML tag reference amount

<amount
       value = CDATA        -- Amount of texture value.

/>
Description: Amount of texture.
Parent Element(s): <textured/>        -- Textured background removal. angle

<angle
       degree = CDATA        -- Maximum slant angle. By default: 20 degrees.

/>
Description: Maximum slant angle in degrees.
Parent Element(s): <direction/>        -- Direction of lines. average

<average
/>
Description: Average line cleaning method. Use this procedure for the cleaning of lined and squared paper.
Parent Element(s): <line/>        -- Line removal (e.g. handwriting guide lines). background

<background>
       <none/>        -- No background removal. [?]
       <homogenous/>        -- Homogeneous background removal. [?]
       <textured/>        -- Textured background removal. [?]
       <userdefined/>        -- User defined background removal. [?]
       <formdropout/>        -- Background form removal (under construction). [?]
       <colordropout/>        -- Colors to be ignored (under construction). [?]
       <colorconvert/>        -- Color conversion (under construction). [?]
</background>
Description: Background removal.
Parent Element(s): <properParam/>        -- Parameters of the proper preprocessing. bilinear

<bilinear
/>
Description: What is that?
Parent Element(s): <scale/>        -- Image scaling. border

<border>
       <rect/>        -- Inner rectangle of a frame. [?]
</border>
Description: Border removal.
Parent Element(s): <foreground/>        -- Container of foreground filtering parameters. channelcomp

<channelcomp>
       <image/>        -- Image place holder (under construction).
       <method/>        -- Method place holder (under construction).
       <offset/>        -- Offset place holder (under construction).
</channelcomp>
Description: Channel comparison (under construction).
Parent Element(s): <colorconvert/>        -- Color conversion (under construction). color

<color
       model = "rgb|cmyk|gray|bw"        -- Model type.
/>
Description: Color model.
Parent Element(s): <colorout/>        -- Output image color coding. colorconvert

<colorconvert>
       <channelcomp/>        -- Channel comparison (under construction). [?]
</colorconvert>
Description: Color conversion (under construction).
Parent Element(s): <background/>        -- Container of background filtering parameters. colordropout

<colordropout
/>
Description: Colors to be ignored (under construction).
Parent Element(s): <background/>        -- Container of background filtering parameters. colorout

<colorout>
       <color/>        -- Color model. [?]
       <pseudo/>        -- Rendering in pseudo color. [?]
</colorout>
Description: Output image color coding.
Parent Element(s): <post/>        -- Image formating after preprocessing. columns

<columns
/>
Description: Lines are vertical.
Parent Element(s): <direction/>        -- Direction of lines. contrast

<contrast
/>
Description: Stamp contrast.
Parent Element(s): <stamp/>        -- Removal of stamps. desc

<desc
/>
Description: Textual description?
Parent Element(s): <properParam/>        -- Parameters of the proper preprocessing. direction

<direction>
       <rows/>        -- Lines are horizontal. [?]
       <columns/>        -- Lines are vertical. [?]
       <angle/>        -- Maximum slant angle. [?]
</direction>
Description: By choosing <rows/> and <columns/> the direction of the lines can be set. Lines with slant larger than specified by <angle/> compared to the horizontal or vertical are not cleaned.
Parent Element(s): <line/>        -- Line removal (e.g. handwriting guide lines). extension

<extension
       extension_x = CDATA        -- ???
       extension_y = CDATA
       -- ???
       offset_x = CDATA
       -- ???
       offset_y = CDATA
       -- ???
/>
Description: Frame extension.
Parent Element(s): <rect/>        -- Inner rectangle of a frame. foreground

<foreground>
       <reconst/>        -- Reconstruct image segments after background removal. [?]
       <noise/>        -- Noise filter. [?]
       <line/>        -- Line removal (e.g. handwriting guide lines). [?]
       <stamp/>        -- Removal of stamps. [?]
       <framein/>        -- Foreground frame removal. [?]
       <border/>        -- Border removal (under construction). [?]
</foreground>
Description: Container of foreground filtering parameters.
Parent Element(s): <properParam/>        -- Parameters of the proper preprocessing. formdropout

<formdropout>
       <image/>        -- Image place holder (under construction).
       <method/>        -- Method place holder (under construction).
       <offset/>        -- Offset place holder (under construction).
</formdropout>
Description: Background form removal (under construction).
Parent Element(s): <background/>        -- Container of background filtering parameters. frame

<frame
       bottom = CDATA        -- Bottom y coord?
       left = CDATA
       -- Left x coord?
       right = CDATA
       -- Right x coord?
       top = CDATA
       -- Top y coord?
/>
Description: Frame rectangle vertices.
Parent Element(s): <rect/>        -- Inner rectangle of a frame. framein

<framein>
       <share/>        -- ??? [?]
       <rect/>        -- Inner rectangle of a frame. [?]
</framein>
Description: Radical cleaning of the outer frame with a following reconstruction on the basis of the inner segments. Hereby the parameter Max indicates the size (percent) of the frame width. Furthermore, the coordinates of the inner rectangle might be explicit specified. FrameOut is under construction.
Parent Element(s): <foreground/>        -- Container of foreground filtering parameters. gabor

<gabor
/>
Description: Gabor filter.
Parent Element(s): <line/>        -- Line removal (e.g. handwriting guide lines). high

<high
       value = CDATA        -- Value of high level texture?

/>
Description: Value of high level texture?
Parent Element(s): <textured/>        -- Textured background removal. homogenous

<homogenous
/>
Description: In case the input image is a greyscale picture (8 bit) without background pattern, e.g. a monochrome image (not necessarily white), the background will be deleted and the image becomes binary. If the image is already binary (black/white image) no image adjustments will take place.
Parent Element(s): <background/>        -- Container of background filtering parameters. image

<image
/>
Description: Image place holder (under construction).
Parent Element(s):        
<channelcomp/>        -- Channel comparison (under construction).        
<formdropout/>        -- Background form removal (under construction). inout

<inout>
       <pre/>        -- Image formating before preprocessing. [?]
       <post/>        -- Image formating after preprocessing. [?]
</inout>
Description: Input and output formatting.
Parent Element(s): <properParam/>        -- Parameters of the proper preprocessing. line

<line>
       <direction/>        -- Direction of lines. [?]
       <average/>        -- Average line cleaning method. [?]
       <trace/>        -- Trace line removal method. [?]
       <morpho/>        -- Morphological operation. What do se and ze stand for? [?]
       <gabor/>        -- Gabor filter (under construction). [?] [?]
</line>
Description: Line removal. Horizontal and/or vertical lines (e.g. handwriting guide lines) are deleted.
Parent Element(s): <foreground/>        -- Container of foreground filtering parameters. low

<low
       value = CDATA        -- Value of low level texture?

/>
Description: Value of low level texture?
Parent Element(s): <textured/>        -- Textured background removal. meta

<meta
       author = CDATA        -- Author of the proper profile.
       created = CDATA
       -- Date created in YYYY-MM-DD-hh-mm-ss format.
       institution = CDATA
       -- Author's affiliation.
       modified = CDATA
       -- Date created in YYYY-MM-DD-hh-mm-ss format.
       version = CDATA
       -- Version of the proper profile DTD.
/>
Description: Information about who generated this document.
Parent Element(s): <proper/>        -- Root element. method

<method
/>
Description: Method place holder (under construction).
Parent Element(s):        
<channelcomp/>        -- Channel comparison (under construction).        
<formdropout/>        -- Background form removal (under construction). morpho

<morpho
       se_horizontal = CDATA        -- ???
       se_vertical = CDATA
       -- ???
       ze_horizontal = CDATA
       -- ???
       ze_vertical = CDATA
       -- ???
/>
Description: Morphological operator. This method has been developed for thin and medium writing lines.
Parent Element(s): <line/>        -- Line removal (e.g. handwriting guide lines). noise

<noise
       size = CDATA        -- Size of a noise segment.

/>
Description: Noise filter. The fine cleaning eliminates separate segments without reconstruction. By using the parameter Max Do you mean "size"? the segment size of the noise that has to be cleaned can be directed. For example Noise- Max = 1 deletes a single image pixel.
Parent Element(s):        
<foreground/>        -- Container of foreground filtering parameters.        
<stamp/>        -- Removal of stamps. none

<none
/>
Description: In case of an 8 bit-binary input image no background removal or manipulation will be performed. However, is contains the image more than two image values a simple threshold binarization will be carried out.
Parent Element(s): <background/>        -- Container of background filtering parameters. offset

<offset
/>
Description: Offset place holder (under construction).
Parent Element(s):        
<channelcomp/>        -- Channel comparison (under construction).        
<formdropout/>        -- Background form removal (under construction). peaks

<peaks
       value = CDATA        -- Value of peak level texture?

/>
Description: Value of peak level texture?
Parent Element(s): <textured/>        -- Textured background removal. post

<post>
       <scale/>        -- Image scaling. [?]
       <colorout/>        -- Output image color coding. [?]
</post>
Description: Image formating after preprocessing.
Parent Element(s): <inout/>        -- Input and output formatting. pre

<pre>
       <scale/>        -- Image scaling. [?]
</pre>
Description: Image formating before preprocessing.
Parent Element(s): <inout/>        -- Input and output formatting. proper

<proper>
       <roi/>        -- Region of interest. Replace by region? [*]
       <properParam/>        -- Parameters of the proper preprocessing. [+]
       <meta/>        -- Information about the XML document generation. [?]
</proper>
Description: Root element.
Parent Element(s): None properParam

<properParam
       id = CDATA        -- Proper parameters unique id.
>
       <background/>        -- Container of background filtering parameters.
       <foreground/>        -- Container of foreground filtering parameters. [?]
       <inout/>        -- Input and output formatting. [?]
       <desc/>        -- Textual description? [?]
</properParam>
Description: Parameters of the proper preprocessing.
Parent Element(s): <proper/>        -- Root element. pseudo

<pseudo
/>
Description: The remaining handwriting is converted to a pseudo-color image representing the relative ink intensity distribution along the writing trace.
Parent Element(s): <colorout/>        -- Output image color coding. reconst

<reconst
/>
Description: An intense cleaning will be performed and only those image segments, which are most likely part of the writing product, will be (morphologically) reconstructed.
Parent Element(s): <foreground/>        -- Container of foreground filtering parameters. rect

<rect>
       <extension/>        -- Frame extension. What is that?
       <frame/>        -- Rectangle frame.
</rect>
Description: Inner rectangle of a frame.
Parent Element(s):        
<border/>        -- Border removal (under construction).        
<framein/>        -- Foreground frame removal. repeat

<repeat
/>
Description: What is that?
Parent Element(s): <scale/>        -- Image scaling. resolution

<resolution
       dpi = "75|150|300|600|1200"        -- Image resolution in dots per inch.
/>
Description: Image resolution.
Parent Element(s): <scale/>        -- Image scaling. roi

<roi
       id = CDATA        -- Unique ROI identifier.
>
       <vertex/>        -- Vertices defining the ROI contour. What are x and y? [*]
</roi>
Description: Region of interest.
Parent Element(s): <proper/>        -- Root element. rows

<rows
/>
Description: Lines are horizontal.
Parent Element(s): <direction/>        -- Direction of lines. scale

<scale>
       <resolution/>        -- Image resolution. [?]
       <bilinear/>        -- What is that? [?]
       <repeat/>        -- What is that? [?]
</scale>
Description: Image scaling.
Parent Element(s):        
<post/>        -- Image formating after preprocessing.        
<pre/>        -- Image formating before preprocessing. segment

<segment
/>
Description: Segment size in stamps (similar to noise cleaning).
Parent Element(s): <stamp/>        -- Removal of stamps. share

<share
       amount = CDATA        -- Amount of share :=)

/>
Description: ???
Parent Element(s): <framein/>        -- Foreground frame removal. stamp

<stamp>
       <segment/>        -- Segment size in stamps (similar to noise cleaning).
       <contrast/>        -- Stamp contrast. Does this take a value?
       <noise/>        -- Noise filter.
</stamp>
Description: Sequences of typewriting or stamp prints can be deleted. The parameter Max What is that max? controls the segment size similar to the Noise-Cleaning. One may encounter difficulties when the handwriting and the typewriting segments merge. In this case it is necessary to finish the adjustment manually with an Eraser Tool.
Parent Element(s): <foreground/>        -- Container of foreground filtering parameters. textured

<textured>
       <low/>        -- Value of low level texture? [?]
       <high/>        -- Value of high level texture? [?]
       <peaks/>        -- Value of peak level texture? [?]
       <amount/>        -- Amount of texture. [?]
</textured>
Description: Requirement is a greyscale image (8 bit). The elimination of the background texture will be supported if the line width of the background pattern is essentially smaller than the line width of the handwriting.
Parent Element(s): <background/>        -- Container of background filtering parameters. trace

<trace
       derivation = CDATA        -- Amount/use of derivative.
       grayvariance = CDATA
       -- Gray level variance.
       limit = CDATA
       -- ???.
       threshold = CDATA
       -- ???.
/>
Description: Trace line removal method. This method is suitable for medium and thick writing lines.
Parent Element(s): <line/>        -- Line removal (e.g. handwriting guide lines). userdefined

<userdefined
/>
Description: Planned form of background removal (future implementation).
Parent Element(s): <background/>        -- Container of background filtering parameters. vertex

<vertex
       x = CDATA        -- ???
       y = CDATA
       -- ???
/>
Description: Vertices defining the ROI contour.
Parent Element(s): <roi/>        -- Region of interest. Replace by region?

NICIFEAT DTD

nicifeat This part of the Wanda XML language groups the tags related to measurements implemented by the NICI group. Those application specific tags are customizing the <filter/> of <wandoc/>) (see wandoc documentation). <nicifeat/> is a filter input tag.

nicifeat DTD Tree

nicifeat!DTD Tree
nicifeat
 |_(character?,
 |   |_EMPTY
 |  
 |__ruler?,
 |   |_(point+)
 |       |_EMPTY
 |      
 |  
 |__strokes?,
 |   |_EMPTY
 |  
 |__polyline?,
 |   |_(point+) ...
 |  
 |__polygon?)
     |_(point+) ...
    

-1.5cm

nicifeat XML example

nicifeat!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!-- ===========================================================
    author: Louis Vuurpijl <vuurpijl@nici.kun.nl>, 
            Merijn van Erp <M.vanErp@nici.kun.nl>, 
            edited by Isabelle Guyon <isabelle@clopinet.com>
    institution: NICI/Cognitive Engineering, Clopinet
    version: 0.9
    created: 2003-04-07-00-00
    modified: 2003-05-08-00-00
============================================================ -->
<!DOCTYPE nicifeat SYSTEM "nicifeat_.dtd">
<filter name="nicifeat" type="measurement"
        xmlns="pentel.ipk.fhg.de/wanda/nicifeat.dtd">
<inputs number_of="10">
        <input type="stream" number="0" label="Descender">
             <nicifeat name="descender">
                   <character code="j"/>
                   <ruler type="vertical">
                       <point type="top" x="142.0" y="91.0"/>
                       <point type="bottom" x="142.0" y="123.0"/>
                   </ruler>
             </nicifeat>
        </input>
        <input type="stream" number="1" label="Ascender">
             <nicifeat name="ascender">
                   <character code="l"/>
                   <ruler type="vertical">
                       <point type="top" x="194.0" y="92.0"/>
                       <point type="bottom" x="197.0" y="120.0"/>
                   </ruler>
             </nicifeat>
        </input>
        <input type="stream" number="2" label="CHeight">
              <nicifeat name="cheight">
                    <character code="i"/>
                    <ruler type="vertical">
                        <point type="top" x="185.0" y="38.0"/>
                        <point type="bottom" x="185.0" y="45.0"/>
                    </ruler>
              </nicifeat>
        </input>
        <input type="stream" number="3" label="CWidth">
              <nicifeat name="cwidth">
                    <character code="u"/>
                    <ruler type="horizontal">
                         <point type="top" x="164.0" y="43.0"/>
                         <point type="bottom" x="180.0" y="43.0"/>
                    </ruler>
              </nicifeat>
        </input>
        <input type="stream" number="4" label="Allo">
                <nicifeat name="allograph">
                        <character code="B"/>
                        <strokes type="allograph" number_of="2"/>
                        <polyline type="stroke" npoints="13">
                                <point x="96.0" y="12.0"/>
                                <point x="96.0" y="20.0"/>
                                <!-- ... -->
                                <point x="99.0" y="44.0"/>
                        </polyline>
                        <polyline type="stroke" npoints="31">
                                <point x="84.0" y="10.0"/>
                                <point x="99.0" y="10.0"/>
                                <!-- ... -->
                                <point x="80.0" y="64.0"/>
                        </polyline>
                        <strokes type="true_allograph" 
                                 number_of="2"/>
                        <polyline type="stroke" npoints="13">
                                <point x="96.0" y="12.0"/>
                                <point x="96.0" y="20.0"/>
                                <!-- ... -->
                                <point x="99.0" y="44.0"/>
                        </polyline>
                        <polyline type="stroke" npoints="31">
                                <point x="84.0" y="10.0"/>
                                <point x="99.0" y="10.0"/>
                                <!-- ... -->
                                <point x="80.0" y="64.0"/>
                        </polyline>
                </nicifeat>
        </input>
        <input type="stream" number="5" label="Slant">
              <nicifeat name="slant">
                   <character code="l"/>
                   <sruler>
                       <point type="top" x="193.0" y="80.0"/>
                       <point type="bottom" x="172.0" y="127.0"/>
                   </sruler>
              </nicifeat>
        </input>
        <input type="stream" number="6" label="ULoop">
                <nicifeat name="uloop">
                        <polygon type="pmeter" npoints="50">
                                <point x="45.0" y="38.0"/>
                                <point x="44.0" y="39.0"/>
                                <!-- ... -->
                                <point x="46.0" y="37.0"/>
                        </polygon>
                </nicifeat>
        </input>
        <input type="stream" number="7" label="LLoop">
                <nicifeat name="lloop">
                        <polygon type="pmeter" npoints="82">
                                <point x="53.0" y="71.0"/>
                                <point x="52.0" y="72.0"/>
                                <!-- ... -->
                                <point x="54.0" y="70.0"/>
                        </polygon>
                </nicifeat>
        </input>
        <input type="stream" number="8" label="LHeight">
                <nicifeat name="lheight">
                        <polyline type="pruler" npoints="3">
                                <point x="201.0" y="11.0"/>
                                <point x="200.0" y="40.0"/>
                                <point x="216.0" y="95.0"/>
                        </polyline>
                </nicifeat>
        </input>
        <input type="stream" number="9" label="Oval">
                <nicifeat name="oval">
                     <character code="g"/>
                     <ruler type="vertical">
                         <point type="top" x="53.0" y="124.0"/>
                         <point type="bottom" x="56.0" y="133.0"/>
                     </ruler>
                </nicifeat>
        </input>
</inputs>
<module exec="nicMeasure" type ="client">
        <meta   author="Merijn van Erp" 
                institution="NICI" 
                version="1.0"/>
</module>
<outputs>
    <output type="stream">
        <features number_of="3">
            <feature name="descender-j" 
                     number="1" value="110.0" unit="mm"/>
            <feature name="ascender-k"  
                     number="2" value="210.0" unit="mm"/>
            <feature name="width-l"  
                     number="3" value="310.0" unit="mm"/>
        </features>
    </output>
</outputs>
</filter>

nicifeat DTD File

nicifeat!DTD file
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U 
    (http://www.xmlspy.com) by Isabelle Guyon (Clopinet) -->
<!-- =========================================================== 
    nicifeat  (Wanda measurement feature DTD)
    
    author: Louis Vuurpijl <vuurpijl@nici.kun.nl>, 
            Merijn van Erp <M.vanErp@nici.kun.nl>, 
            edited by Isabelle Guyon <isabelle@clopinet.com>
    institution: NICI/Cognitive Engineering, Clopinet
    version: 0.9
    created: 2003-04-07-00-00
    modified: 2003-05-08-00-00
============================================================ -->
<!ENTITY % nicifeat_name_types 
            "allograph | ascender | cheight | cwidth | 
            descender | lheight | lloop | oval | slant | uloop">
<!ENTITY % nicifeat_ruler_types 
            "horizontal | vertical | sloped">
<!ENTITY % nicifeat_point_types "bottom | left | right | top">
<!ENTITY % nicifeat_char_types 
"a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p |
 q | r | s | t | u | v | w | x | y | z |
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
 Q | R | S | T | U | V | W | X | Y | Z |
 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ">
<!ENTITY % nicifeat_stroke_types "allograph | true_allograph">
<!ENTITY % nicifeat_polyline_types "stroke | pruler">
<!ENTITY % nicifeat_polygon_types "pmeter">
<!-- ======================================================= -->
<!ELEMENT nicifeat 
    (character?, ruler?, strokes?, polyline?, polygon?)>
<!ATTLIST nicifeat
    name (%nicifeat_name_types;) #REQUIRED
>
<!ELEMENT character EMPTY>
<!ATTLIST character
    code (%nicifeat_char_types;) #REQUIRED
>
<!ELEMENT ruler (point+)>
<!ATTLIST ruler
    type (%nicifeat_ruler_types;) #REQUIRED
>
<!ELEMENT strokes EMPTY>
<!ATTLIST strokes
    type (%nicifeat_stroke_types;) #IMPLIED
    number_of CDATA #REQUIRED
>
<!ELEMENT point EMPTY>
<!ATTLIST point
    x CDATA #REQUIRED
    y CDATA #REQUIRED
    type (%nicifeat_point_types;) #IMPLIED
>
<!ELEMENT polygon (point+)>
<!ATTLIST polygon
    type (%nicifeat_polygon_types;) #REQUIRED
    npoints CDATA #REQUIRED
>
<!ELEMENT polyline (point+)>
<!ATTLIST polyline
    type (%nicifeat_polyline_types;) #REQUIRED
    npoints CDATA #REQUIRED
>

nicifeat XML tag reference

nicifeat!XML tag reference character

<character
       code = "a|b|c|d|e|..."        -- Character code (ASCII or other).
/>
Description: Code of a handwritten character.
Parent Element(s): <nicifeat/>        -- Input of a measurement filter. nicifeat

<nicifeat
       name = "allograph|ascender|cheight|cwidth|descender|..."        -- Name of the nicifeat. >
       <character/>        -- Code of a handwritten character. [?]
       <ruler/>        -- Ruler measurement defined by two boundary points. [?]
       <strokes/>        -- Container of strokes. [?]
       <polyline/>        -- Open polygonal line described by its vertices. [?]
       <polygon/>        -- Polygon described by its vertices. [?]
</nicifeat>
Description: Input of a measurement filter.
Parent Element(s): None point

<point
       type = "bottom|left|right|top"        -- Point type.
       x = CDATA
       -- Point x coordinate.
       y = CDATA
       -- Point y coordinate.
/>
Description: Point in cartesian coordinates.
Parent Element(s):        
<polygon/>        -- Polygon described by its vertices.        
<polyline/>        -- Open polygonal line described by its vertices.        
<ruler/>        -- Ruler measurement defined by two boundary points. polygon

<polygon
       npoints = CDATA        -- Number of vertices
       type = pmeter
       -- Type of polygon. >
       <point/>        -- Point in cartesian coordinates. [+]
</polygon>
Description: Polygon described by its vertices.
Parent Element(s): <nicifeat/>        -- Input of a measurement filter. polyline

<polyline
       npoints = CDATA        -- Number of vertices.
       type = "stroke|pruler"
       -- Type of polyline. >
       <point/>        -- Point in cartesian coordinates. [+]
</polyline>
Description: Open polygonal line described by its vertices.
Parent Element(s): <nicifeat/>        -- Input of a measurement filter. ruler

<ruler
       type = "horizontal|vertical|sloped"        -- Ruler type. >
       <point/>        -- Point in cartesian coordinates. [+]
</ruler>
Description: Measurement interactive tool.
Parent Element(s): <nicifeat/>        -- Input of a measurement filter. strokes

<strokes
       number_of = CDATA        -- Number of strokes.
       type = "allograph|true_allograph"
       -- Type of strokes.
/>
Description: Container of strokes.
Parent Element(s): <nicifeat/>        -- Input of a measurement filter.

WINK DTD

wink

The wink XML language is part of Wanda XML. It encodes virtual ink (also called electronic ink), as recorded, for instance, by a digitizing tablet. It is inspired by the InkXML standard and by the Unipen standard. Using wink, one can encode standalone virtual ink documents or superimpose virtual ink on top of raster images. In this last case, a wink document may be included into a wandoc document. The modalities of superposition of the ink on top of the image are defined by the tag <trace_context/> tag. A wink encoded handwriting sample may be divided into subsets grouped by the tag <data_block/>, each having a different <trace_context/>.

wink DTD Tree

wink!DTD Tree
wink
 |_(device_info?,
 |   |_(id,
 |   |   |_EMPTY
 |   |  
 |   |__manufacturer,
 |   |   |_EMPTY
 |   |  
 |   |__model,
 |   |   |_EMPTY
 |   |  
 |   |__sensitive_area,
 |   |   |_EMPTY
 |   |  
 |   |__sample_frequency,
 |   |   |_EMPTY
 |   |  
 |   |__sampling_uniformity,
 |   |   |_EMPTY
 |   |  
 |   |__empiric_displacement_error,
 |   |   |_(absolute_error,
 |   |   |   |_EMPTY
 |   |   |  
 |   |   |__relative_error)
 |   |       |_EMPTY
 |   |      
 |   |  
 |   |__channel_info_list)
 |       |_(channel_info*)
 |           |_EMPTY
 |          
 |      
 |  
 |__trace_format+,
 |   |_(tablet_orientation,
 |   |   |_EMPTY
 |   |  
 |   |__channels+)
 |       |_(channel+)
 |           |_EMPTY
 |          
 |      
 |  
 |__data_block?,
 |   |_(trace+,
 |   |   |_(#PCDATA)
 |   |  
 |   |__trace_context?)
 |       |_(image_scale,
 |       |   |_EMPTY
 |       |  
 |       |__image_offset,
 |       |   |_EMPTY
 |       |  
 |       |__tablet_scale,
 |       |   |_EMPTY
 |       |  
 |       |__tablet_offset,
 |       |   |_EMPTY
 |       |  
 |       |__bounding_box,
 |       |   |_EMPTY
 |       |  
 |       |__brush)
 |           |_EMPTY
 |          
 |      
 |  
 |__wanda_link*,
 |   |_EMPTY
 |  
 |__meta?)
     |_EMPTY
    

-1.5cm

wink XML example

wink!XML example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wink SYSTEM "wink_.dtd">
<wink>
    <device_info>
        <id value="0025Z3004AB"/>
        <manufacturer name="wacom"/>
        <model label="Cintiq" name="ET-0405A-UV2.0-3" code="9" type="81"/>
        <sensitive_area height="92.8" width="127.6"/>
        <sample_frequency value="200"/>
        <sampling_uniformity value="true"/>
        <empiric_displacement_error>
            <absolute_error value="1.5" unit="mm" ref_angle="55" />
            <relative_error value="0.2" unit="mm" delta_angle="5"/>
        </empiric_displacement_error>
        <channel_info_list>
            <channel_info name="pressure_levels" type="decimal"
                         minimum="0" maximum="512"/>
            <channel_info name="x" type="decimal" 
                         minimum="0" maximum="127" 
                         accuracy="0.5" resolution="1000" />
            <channel_info name="y" type="decimal"
                         minimum="0" maximum="92" 
                         accuracy="0.5" resolution="1000" />
            <channel_info name="z" type="decimal"
                         minimum="0" maximum="10" 
                         accuracy="0.5" resolution="100" />
            <channel_info name="penAzimuth" type="decimal"
                         minimum="0" maximum="60" />
            <channel_info name="pen_tilt" type="decimal"
                         minimum="0" maximum="60" />
            <channel_info name="time" type="decimal"
                         minimum="0" maximum="1000"/>
        </channel_info_list>
    </device_info>
    <trace_format>
        <tablet_orientation value="straight"/>
        <channels number_of="7">
            <channel name="pressure_levels"/>
            <channel name="x"/>
            <channel name="y"/>
            <channel name="z"/>
            <channel name="pen_azimuth"/>
            <channel name="pen_tilt"/>
            <channel name="time"/>
        </channels>
    </trace_format>
    <data_block>
        <trace type="pen_down">
            24024.0000 8492.0000 41.0000 0.0000 2250.0000 800.0000 
            18980.0000 10399.0000 492.0000 1468.2927 1980.0000 580.0000 
            <!-- ... -->
            20678.0000 11345.0000 585.0000 1546.3415 1940.0000 560.0000 
        </trace>
        <trace type="pen_up">
            19525.0000 12583.0000 0.0000 1756.0976 1980.0000 540.0000 
            19175.0000 12749.0000 0.0000 1760.9756 1960.0000 530.0000 
            <!-- ... -->
            17847.0000 13613.0000 0.0000 1800.0000 1960.0000 530.0000 
        </trace>
        <trace_context>
            <image_scale value="22" type="dpu"/>
            <image_offset x="50" y="50"/>
            <tablet_scale value="1" type="dpu"/>
            <tablet_offset x="3020.0000" y="1550.0000"/>
            <bounding_box width="100" height="100" />
            <brush size="100"/>
        </trace_context>
    </data_block>
</wink>

wink DTD File

wink!DTD file
<!-- ===========================================================

    wink  (Wanda Ink XML language)
    
    author: Katrin Fanke, Lambert Schomaker, Isabelle Guyon, 
            Louis Vuurpijl and the Wanda team
    institution: Fraunhofer IPK, Rijksuniversiteit Groningen, 
                 Clopinet, NICI
    version: 0.9
    created: 2002-03-25-00-00
    modified: 2003-06-13-00-00
-->
<?xml version="1.0" encoding="UTF-8"?>
<!-- ENTITIES=============================================== -->
<!ENTITY % bool " true | false ">
<!ENTITY % trace_type "pen_up | pen_down">
<!ENTITY % scale_unit "mmpu | dpu">
<!ENTITY % unit_types "mm | px | u | dot">
<!ENTITY % position " straight | upside_down | rotated_90_clockwise 
| rotated_90_counter_clockwise">
<!ENTITY % channel_name 
    "* | pressure_levels | x | y | z | pen_azimuth | pen_tilt | time">
<!--======================================================== -->
<!ELEMENT wink (device_info?, trace_format+, data_block?, wanda_link*, meta?)>
<!ELEMENT device_info 
(id, manufacturer, model, sensitive_area, sample_frequency, 
sampling_uniformity, empiric_displacement_error, channel_info_list)>
<!ELEMENT id EMPTY>
<!ATTLIST id
    value CDATA #REQUIRED
>
<!ELEMENT manufacturer EMPTY>
<!-- manufacturer of device e.g. "wacom"-->
<!ATTLIST manufacturer
    name CDATA #REQUIRED
>
<!ELEMENT model EMPTY>
<!-- model number of device 
     e.g. "ET-0405A-UV2.0-3" for graphire2-->
<!ATTLIST model
    label CDATA #IMPLIED
    name CDATA #REQUIRED
    code CDATA #IMPLIED
    type CDATA #IMPLIED
>
<!ELEMENT sensitive_area EMPTY>
<!ATTLIST sensitive_area
    height CDATA #REQUIRED
    width CDATA #REQUIRED
>
<!ELEMENT sample_frequency EMPTY>
<!-- sample_frequency / data_rate -->
<!ATTLIST sample_frequency
    value CDATA #REQUIRED
>
<!ELEMENT sampling_uniformity EMPTY>
<!ATTLIST sampling_uniformity
    value (%bool;) #REQUIRED
>
<!ELEMENT empiric_displacement_error (absolute_error, relative_error)>
<!ELEMENT absolute_error EMPTY>
<!ATTLIST absolute_error 
    value CDATA #REQUIRED
    unit (%unit_types;) #REQUIRED
    ref_angle CDATA #REQUIRED
>
<!ELEMENT relative_error EMPTY>
<!ATTLIST relative_error 
    value CDATA #REQUIRED
    unit (%unit_types;) #REQUIRED
    delta_angle CDATA #REQUIRED
>   
<!ELEMENT channel_info_list (channel_info*)>
<!ELEMENT channel_info EMPTY>
<!ATTLIST channel_info
    name (%channel_name;) #REQUIRED
    type (decimal | boolean) #IMPLIED
    minimum CDATA #IMPLIED
    maximum CDATA #IMPLIED
    accuracy CDATA #IMPLIED
    resolution CDATA #IMPLIED
>
<!ELEMENT trace_format (tablet_orientation, channels+)>
<!ELEMENT tablet_orientation EMPTY>
<!ATTLIST tablet_orientation
    value (%position;) #REQUIRED
>
<!ELEMENT channels (channel+)>
<!ATTLIST channels
    number_of CDATA #IMPLIED
>
<!ELEMENT channel EMPTY>
<!ATTLIST channel
    name (%channel_name;) #REQUIRED
>
<!ELEMENT data_block (trace+, trace_context?)>
<!ELEMENT trace (#PCDATA)>
<!ATTLIST trace
    type (%trace_type;) #REQUIRED
>
<!ELEMENT trace_context 
    (image_scale, image_offset, tablet_scale, tablet_offset, 
    bounding_box, brush)>
<!ELEMENT image_scale EMPTY>
<!ATTLIST image_scale
    value CDATA #REQUIRED
    unit (%scale_unit;) #REQUIRED
>
<!ELEMENT image_offset EMPTY>
<!ATTLIST image_offset
    x CDATA #REQUIRED
    y CDATA #REQUIRED
>
<!ELEMENT tablet_scale EMPTY>
<!ATTLIST tablet_scale
    value CDATA #REQUIRED
    unit (%scale_unit;) #REQUIRED
>
<!ELEMENT tablet_offset EMPTY>
<!ATTLIST tablet_offset
    x CDATA #REQUIRED
    y CDATA #REQUIRED
>
<!ELEMENT bounding_box EMPTY>
<!ATTLIST bounding_box
    height CDATA #REQUIRED
    width CDATA #REQUIRED
>
<!ELEMENT brush EMPTY>
<!ATTLIST brush
    size CDATA #REQUIRED
>
<!ELEMENT meta EMPTY>
<!ATTLIST meta
    author CDATA #IMPLIED
    email CDATA #IMPLIED
    institution CDATA #IMPLIED
    version CDATA #IMPLIED
    created CDATA #IMPLIED
    modified CDATA #IMPLIED
>
<!ELEMENT wanda_link EMPTY>
<!ATTLIST wanda_link 
    href    CDATA    #REQUIRED
>

wink XML tag reference

wink!XML tag reference absolute_error

<absolute_error
       ref_angle = CDATA        -- Absolute error reference angle in degrees.
       unit = "mm|px|u|dot"
       -- Absolute error unit.
       value = CDATA
       -- Absolute error value.
/>
Description: Absolute displacement error.
Parent Element(s): <empiric_displacement_error/>        -- Empirical displacement error. bounding_box

<bounding_box
       height = CDATA        -- Height of the bounding box.
       width = CDATA
       -- Width of the bounding box.
/>
Description: The bounding box of the wink canvas.
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. brush

<brush
       size = CDATA        -- Brush size in unit "u".

/>
Description: Brush parameters.
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. channel

<channel
       name = "*|pressure_levels|x|y|z|..."        -- Name of the channel (e.g., x, y, z). Should be one of the names declared in channel_info_list.
/>
Description: All the coordinates are stored at maximum sampling rate, no sub-sampling. x, y (and z if recorded) are recorded in unit “u” (see trace_context). The pressure pressure_level, is in arbitrary units. The azimuth pen_azimuth is in degrees. The tilt pen_tilt is in degrees.
Parent Element(s): <channels/>        -- Container of channel entries that are currently used to record traces. channel_info

<channel_info
       accuracy = CDATA        -- Accuracy with wich the channel is measured in the original tablet unit.
       maximum = CDATA
       -- Maximum value this channel can take in the original tablet unit.
       minimum = CDATA
       -- Minimum value this channel can take in the original tablet unit.
       name = "*|pressure_levels|x|y|z|..."
       -- Name of the channel. See also channel in traceFormat.
       resolution = CDATA
       -- Resolution of that channel in the original tablet unit.
       type = "decimal|boolean"
       -- Boolean or decimal.
/>
Description: A channel is a recorded coordinate (position, pressure, pen orientation). channelInfo declares all the channels supported by the tablet and their parameters.
Parent Element(s): <channel_info_list/>        -- Container of channel info entries. channel_info_list

<channel_info_list>
       <channel_info/>        -- Declaration of a particular channel and channel information. [*]
</channel_info_list>
Description: List of available channels.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. channels

<channels
       number_of = CDATA        -- Number of channels.
>
       <channel/>        -- One of the recorded channels in a trace. [+]
</channels>
Description: Container of channel declarations.
Parent Element(s): <trace_format/>        -- Format of a trace listing channels used and tablet orientation. data_block

<data_block>
       <trace/>        -- The actual ink recorded as a sequence of coordinate points. [+]
       <trace_context/>        -- Information allowing to superimpose the trace on top of an image. [?]
</data_block>
Description: Block grouping several traces having same trace_context.
Parent Element(s): <wink/>        -- Root element of the Wanda ink XML. device_info

<device_info>
       <id/>        -- A unique id such as the serial number.
       <manufacturer/>        -- Tablet manufacturer.
       <model/>        -- Tablet model information.
       <sensitive_area/>        -- Dimensions of the tablet sensitive area.
       <sample_frequency/>        -- Sampling rate in points per second.
       <sampling_uniformity/>        -- Points regularly sampled or not.
       <empiric_displacement_error/>        -- Empirical displacement error.
       <channel_info_list/>        -- Container of channel info entries.
</device_info>
Description: The device (tablet) information may be stored with the data or separately using wanda_link. It should not affect the rendering of the ink over the image, which is described by trace_context.
Parent Element(s): <wink/>        -- Root element of the Wanda ink XML. empiric_displacement_error

<empiric_displacement_error>
       <absolute_error/>        -- Absolute displacement error.
       <relative_error/>        -- Relative displacement error.
</empiric_displacement_error>
Description: Due to the construction of the electronic pen (location LC-circuit) there are displaced activations of the electromagnetic field depending on the pen-tilt. This displacement can be empirically determined and later used for the automatic correction while assigning on- and offline data.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. id

<id
       value = CDATA        -- Tablet id value.

/>
Description: A unique id such as the serial number.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. image_offset

<image_offset
       x = CDATA        -- X coordinate of the offset in unit "u".
       y = CDATA
       -- Y coordinate of the offset in unit "u".
/>
Description: Position of the wink canvas origin relative to the image region origin, in the data_block unit "u".
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. image_scale

<image_scale
       unit = "mmpu|dpu"        -- Unit of the image scale.
       value = CDATA
       -- Scaling factor value.
/>
Description: Scaling factor relating the image unit to the data_block unit "u". The original image coordinates are recovered by multiplying the channels x and y of the trace by the image_scale factor after adding image_offset.
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. manufacturer

<manufacturer
       name = CDATA        -- Name of the tablet manufacturer.

/>
Description: Tablet manufacturer.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. meta

<meta
       author = CDATA        -- Author of the annotations of this part of the document.
       created = CDATA
       -- Date created in the YYYY-MM-DD-mm-ss format.
       email = CDATA
       -- Contact email.
       institution = CDATA
       -- Author's affiliation.
       modified = CDATA
       -- Date last modified in the YYYY-MM-DD-mm-ss format.
       version = CDATA
       -- DTD version number.
/>
Description: Information about how the document annotations were generated.
Parent Element(s): <wink/>        -- Root element of the Wanda ink XML. model

<model
       code = CDATA        -- Manufacturer model code (e.g. stored in Wacom.dat).
       label = CDATA
       -- User defined label to name the tablet (e.g. consumer market name).
       name = CDATA
       -- Unique name used by the device drivers (e.g. found in the Windows registry).
       type = CDATA
       -- Manufacturer model type (e.g. stored in Wacom.dat).
/>
Description: Tablet model.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. relative_error

<relative_error
       delta_angle = CDATA        -- Angle of relative displacement error in degrees.
       unit = "mm|px|u|dot"
       -- Relative error unit.
       value = CDATA
       -- Relative error value.
/>
Description: Relative displacement error.
Parent Element(s): <empiric_displacement_error/>        -- Empirical displacement error. sample_frequency

<sample_frequency
       value = CDATA        -- Sampling rate value in points per seconds.

/>
Description: Sampling rate.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. sampling_uniformity

<sampling_uniformity
       value = "true|false"        -- True is points regularly spaced (no skip), false otherwise.
/>
Description: Regularity of sampling.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. sensitive_area

<sensitive_area
       height = CDATA        -- Sensitive area height.
       width = CDATA
       -- Sensitive area width.
/>
Description: Dimensions of the tablet sensitive area.
Parent Element(s): <device_info/>        -- Information relating to the tablet as precised by the manufacturer. tablet_offset

<tablet_offset
       x = CDATA        -- X coordinate of the offset in unit "u".
       y = CDATA
       -- Y coordinate of the offset in unit "u".
/>
Description: Position of the wink canvas origin relative to the tablet origin, in the data_block unit "u".
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. tablet_orientation

<tablet_orientation
       value = "straight|upside_down|rotated_90_clockwise|rotated_90_counter_clockwise"        -- One of four orientation values.
/>
Description: Tablet orientation with respect to the manufacturer upright position.
Parent Element(s): <trace_format/>        -- Format of a trace listing channels used and tablet orientation. tablet_scale

<tablet_scale
       unit = "mmpu|dpu"        -- Unit of the tablet scale.
       value = CDATA
       -- Scaling factor value.
/>
Description: Scaling factor relating the tablet unit to the data_block unit "u". The original tablet coordinates are recovered by multiplying the channels x, y, and z of the trace by the tablet_scale factor after adding tablet_offset.
Parent Element(s): <trace_context/>        -- Information allowing to superimpose the trace on top of an image. trace

<trace
       type = "pen_up|pen_down"        -- Pen up / pen down information. By default, pen down is assumed.
</trace>
Description: The actual ink recorded as a sequence of coordinate points.
Parent Element(s): <data_block/>        -- Block grouping several traces having same trace_context. trace_context

<trace_context>
       <image_scale/>        -- Scaling factor relating the image unit to the data_block unit "u".
       <image_offset/>        -- Position of the wink canvas origin relative to the image region origin.
       <tablet_scale/>        -- Scaling factor relating the tablet unit to the data_block unit "u".
       <tablet_offset/>        -- Position of the wink canvas origin relative to the tablet origin.
       <bounding_box/>        -- The bounding box of the wink canvas.
       <brush/>        -- Brush parameters.
</trace_context>
Description: Information allowing to superimpose the trace on top of an image.
Parent Element(s): <data_block/>        -- Block grouping several traces having same trace_context. trace_format

<trace_format>
       <tablet_orientation/>        -- Tablet orientation with respect to the manufacturer upright position.
       <channels/>        -- Container of channel entries that are currently used to record traces. [+]
</trace_format>
Description: The trace_format block groups channel and tablet orientation information. Compared to InkXML, the trace_format is simplified. The sampling rate is assumed to be the maximum sampling rate sample_frequency provided in the device_info block. We do not provide the resolution as a channel attribute for x, y, and z channels. It is provided in the device_info block.
Parent Element(s): <wink/>        -- Root element of the Wanda ink XML. wanda_link

<wanda_link
       href = CDATA        -- Link reference (URL or file name).

/>
Description: Element that will be replaced by the file it points to (e.g. a description file).
Parent Element(s): <wink/>        -- Root element of the Wanda ink XML. wink

<wink>
       <device_info/>        -- Information relating to the tablet as precised by the manufacturer. [?]
       <trace_format/>        -- Format of a trace listing channels used and tablet orientation. [+]
       <data_block/>        -- Block grouping several traces having same trace_context. [?]
       <wanda_link/>        -- Element that will be replaced by the file it points to. [*]
       <meta/>        -- Information about how the document annotations were generated. [?]
</wink>
Description: The wink root element that opens a Wanda ink block.
Parent Element(s): None