<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" docName="draft-phillips-uvml-01"
     ipr="noDerivativesTrust200902" submissionType="independent">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="Universal Voting Markup Language (UVML)">The Universal
    Voting Markup Language (UVML)</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Erin Mikel Phillips" initials="Erin M."
            surname="Phillips">
      <organization>Flamecast, LLC.</organization>

      <address>
        <postal>
          <street></street>

          <!-- Reorder these if your country does things differently -->

          <city>Des Moines</city>

          <region>IA</region>

          <code></code>

          <country>US</country>
        </postal>

        <phone>+1-515-943-3853</phone>

        <email>ep1@uvml.org</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <date day="7" month="January" year="2012" />

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>General</area>

    <workgroup>Internet Engineering Task Force</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>vote</keyword>

    <keyword>opinion</keyword>

    <keyword>sentiment</keyword>

    <keyword>markup</keyword>

    <keyword>voting</keyword>

    <keyword>agreement</keyword>

    <keyword>quality</keyword>

    <keyword>outlook</keyword>

    <keyword>importance</keyword>

    <keyword>likelihood</keyword>

    <keyword>trueness</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

    <abstract>
      <t>This document describes the Universal Voting Markup Language (UVML),
      a syntax for the structured representation of opinion in free text.
      Using UVML, opinions can be encoded in text, image, or video, and
      reliably interpreted by either human readers or automated-agents. UVML
      supports both rating and ranking semantics. Ratings may be scored using
      symbols associated with the five most commonly used opinion dimensions:
      quality(*), importance(!), outlook($), support-opposition(+), and
      likelihood(%). In addition, UVML defines a syntax for optionally
      including a demographic signature by which voters can publish basic
      demographic information with their UVML votes. The design of UVML
      leverages cross-cultural sentiment and voting-systems scholarship.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t><list style="hanging">
          <t hangText="">"Let's have a poll that doesn't have a 4 per cent
          margin of error, where no thought need be given to loaded questions,
          respondent bias, interviewer cheating, or cross-section accuracy." -
          Paul Trescott, 1949</t>
        </list>The Universal Voting Markup Language (UVML) enables the
      structured expression of opinions in text, images, or video. The
      motivation behind UVML is to be found in the above quote, and in "the
      long tail" of disenfranchised opinion found in society in general and
      social media in particular.</t>

      <t>This document contains a UVML Voting System description (<xref
      target="uvml-voting"></xref>), a UVML Technical Specification (<xref
      target="uvml_tspec"></xref>), a limited set of UVML Implementation
      Standards (<xref target="implementation-stds"></xref>), a UVML
      Rhetorical Guide (<xref target="uvml_rhetoric"></xref>), and a UVML
      Functional Specification (<xref target="uvml_fspec"></xref>). Some
      miscellaneous topics are addressed in Notes (<xref
      target="notes"></xref>).</t>
    </section>

    <section anchor="conventions" title="Conventions">
      <t>The meanings of the following terms require clarification in this
      context. Terms quoted ("") in this section will not be quoted
      afterward.</t>

      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref
      target="RFC2119"></xref>.</t>

      <t>All UVML elements are defined using ABNF (Augmented Backus-Naur Form)
      notation. If you are not familiar with ABNF notation, please see <xref
      target="RFC5234"></xref> for a complete description. ABNF rule names are
      shown as <spanx style="verb-uvml">verbatim</spanx>.</t>

      <t>The term "ballot" refers to something (text, image, video, or
      physical object) which includes one or more UVML votes.</t>

      <t>The term "polling station" refers to a service that processes UVML
      ballots and responds to UVML queries.</t>

      <t>The term "flamecast" refers to a "ballot" sent by a voter to a
      "polling station."</t>

      <t>The term "postcast" refers to a "ballot" posted by a voter to a proxy
      service or website and obtained by a "polling station" through content
      mining.</t>

      <t>The terms "target" and "topic" refers to the object of an opinion, as
      defined by <eref
      target="http://framenet.icsi.berkeley.edu">FrameNet</eref>.</t>

      <t>The term "contest" refers to a competition between candidates or
      options for which voters determine the outcome.</t>
    </section>

    <section anchor="uvml-voting" title="UVML Voting System">
      <t>UVML is intended to enable a voting system with some deliberative
      qualities. <xref target="uvml-voting-system"></xref> shows the principle
      interactions between actors in the system.</t>

      <figure anchor="uvml-voting-system">
        <artwork align="left" name="UVML Voting System"><![CDATA[
                                                _
   O   >--(1)-->--- UVML votes ------>-(1)->   / \
  -|-                                         |   |
   |   <--(2)--<--- voting results --< (2)-<   \ /
  / \                                           |
 VOTER >------\                              ---|---
   |      UVML(3)          O                    |
  (4)     votes \------>  -|- >---(3)------>    |
   |                       |                    |
  _v_                     / \                  / \
 |  \| UVML votes        PROXY                /   \
 |   | on physical                       POLLING STATION
 |___| media


]]></artwork>
      </figure>

      <t></t>

      <t>The following is a brief explanation of these interactions:<list
          style="numbers">
          <t>Voters write UVML-ballots on topics or contests for which they
          have an opinion, and send them to a polling station using email,
          SMS/text, applications, or through a session at a polling station
          website</t>

          <t>Polling stations tally votes and publish the results in response
          to implementation defined queries.</t>

          <t>Voters write UVML-ballots on a proxy, such as a blog or
          micro-blog. If the voter has registered the proxy with a polling
          station, the polling station counts the votes in the ballots.</t>

          <t>Voters write UVML votes on physical media, such as a personal
          journal, billboard, clothing, etc., as a form of expression, and not
          necessarily for aggregation.</t>
        </list></t>
    </section>

    <section anchor="uvml_tspec" title="UVML Technical Specification">
      <t>The UVML specification is shown below in ABNF notation. Additional
      details are provided in succeeding subsections. ABNF rules referenced
      below but not defined in this specification are either ABNF core rules
      or otherwise in the public domain.</t>

      <t>Any document which contains UVML is a ballot. Ballots may contain
      free text, one or more votes, and optionally a demographic
      signature.</t>

      <texttable anchor="ballot-abnf" style="none"
                 title="UVML Syntax Specification">
        <ttcol width="30%">ABNF Rule</ttcol>

        <ttcol>Definition</ttcol>

        <c><spanx style="verb-uvml">ballot</spanx></c>

        <c>= <spanx style="verb-uvml">[T] 1*(vote [T]) [signature] [T]</spanx></c>

        <c><spanx style="verb-uvml">vote</spanx></c>

        <c>= <spanx style="verb-uvml">rating / ranking</spanx></c>

        <c><spanx style="verb-uvml">rating</spanx></c>

        <c>= <spanx style="verb-uvml">HASH target score</spanx></c>

        <c><spanx style="verb-uvml">ranking</spanx></c>

        <c>= <spanx style="verb-uvml">2HASH contest selections</spanx></c>

        <c><spanx style="verb-uvml">signature</spanx></c>

        <c>= <spanx style="verb-uvml">3HASH profile</spanx></c>

        <c>;; rating</c>

        <c></c>

        <c><spanx style="verb-uvml">target</spanx></c>

        <c>= <spanx style="verb-uvml">name</spanx></c>

        <c><spanx style="verb-uvml">score</spanx></c>

        <c>= <spanx style="verb-uvml">[undecided]valuation</spanx></c>

        <c><spanx style="verb-uvml">name</spanx></c>

        <c>= <spanx style="verb-uvml">tag *( PERIOD tag )</spanx></c>

        <c>;; ranking</c>

        <c></c>

        <c><spanx style="verb-uvml">contest</spanx></c>

        <c>= <spanx style="verb-uvml">name</spanx></c>

        <c><spanx style="verb-uvml">selections</spanx></c>

        <c>= <spanx style="verb-uvml">1*25selection</spanx></c>

        <c><spanx style="verb-uvml">selection</spanx></c>

        <c>= <spanx style="verb-uvml">*HWS HASH name [score]</spanx></c>

        <c>;; score</c>

        <c></c>

        <c><spanx style="verb-uvml">undecided</spanx></c>

        <c>= <spanx style="verb-uvml">QUESTION</spanx></c>

        <c><spanx style="verb-uvml">valuation</spanx></c>

        <c>= <spanx style="verb-uvml">quality / importance / outlook</spanx></c>

        <c><spanx style="verb-uvml">valuation</spanx></c>

        <c>=<spanx style="verb-uvml">/ support-opposition / likelihood</spanx></c>

        <c>;; signature</c>

        <c></c>

        <c><spanx style="verb-uvml">profile</spanx></c>

        <c>= <spanx style="verb-uvml">[age [HYPHEN]] gender [location]</spanx></c>

        <c><spanx style="verb-uvml">age</spanx></c>

        <c>= <spanx style="verb-uvml">1*3DIGIT</spanx></c>

        <c><spanx style="verb-uvml">gender</spanx></c>

        <c>= <spanx style="verb-uvml">iso-5218-gender</spanx></c>

        <c><spanx style="verb-uvml">location</spanx></c>

        <c>= <spanx style="verb-uvml">[country] [region] [area-code]</spanx></c>

        <c><spanx style="verb-uvml">country</spanx></c>

        <c>= <spanx style="verb-uvml">[HYPHEN] iso-3166-country</spanx></c>

        <c><spanx style="verb-uvml">region</spanx></c>

        <c>= <spanx style="verb-uvml">[HYPHEN] iso-3166-subdivision</spanx></c>

        <c><spanx style="verb-uvml">area-code</spanx></c>

        <c>= <spanx style="verb-uvml">[HYPHEN] 3*4DIGIT</spanx></c>

        <c>;; name (target, contest, option)</c>

        <c></c>

        <c><spanx style="verb-uvml">tag</spanx></c>

        <c>= <spanx style="verb-uvml">name-begin *70name-inner name-end</spanx></c>

        <c><spanx style="verb-uvml">name-begin</spanx></c>

        <c>= <spanx style="verb-uvml">LETTER / UPPER-ASCII / UNICODE</spanx></c>

        <c><spanx style="verb-uvml">name-inner</spanx></c>

        <c>= <spanx style="verb-uvml">name-begin / DIGIT</spanx></c>

        <c><spanx style="verb-uvml">name-end</spanx></c>

        <c>= <spanx style="verb-uvml">name-inner</spanx></c>

        <c>;; valuation</c>

        <c></c>

        <c><spanx style="verb-uvml">quality</spanx></c>

        <c>= <spanx style="verb-uvml">among-the-very-best / very-good</spanx></c>

        <c><spanx style="verb-uvml">quality</spanx></c>

        <c>=<spanx style="verb-uvml">/ good / fair / poor</spanx></c>

        <c><spanx style="verb-uvml">quality</spanx></c>

        <c>=<spanx style="verb-uvml">/ very-poor / among-the-very-worst</spanx></c>

        <c>;</c>

        <c></c>

        <c><spanx style="verb-uvml">importance</spanx></c>

        <c>= <spanx style="verb-uvml">highest-importance / very-important</spanx></c>

        <c><spanx style="verb-uvml">importance</spanx></c>

        <c>=<spanx style="verb-uvml">/ important / unimportant / irrelevant</spanx></c>

        <c>;</c>

        <c></c>

        <c><spanx style="verb-uvml">outlook</spanx></c>

        <c>= <spanx style="verb-uvml">never-more-optimistic / very-optimistic</spanx></c>

        <c><spanx style="verb-uvml">outlook</spanx></c>

        <c>=<spanx style="verb-uvml">/ optimistic / pessimistic</spanx></c>

        <c><spanx style="verb-uvml">outlook</spanx></c>

        <c>=<spanx style="verb-uvml">/ very-pessimistic / never-more-pessimistic</spanx></c>

        <c>;</c>

        <c></c>

        <c><spanx style="verb-uvml">support-opposition</spanx></c>

        <c>= <spanx style="verb-uvml">strongly-support / support</spanx></c>

        <c><spanx style="verb-uvml">support-opposition</spanx></c>

        <c>=<spanx style="verb-uvml">/ somewhat-support / somewhat-oppose</spanx></c>

        <c><spanx style="verb-uvml">support-opposition</spanx></c>

        <c>=<spanx style="verb-uvml">/ oppose / strongly-oppose</spanx></c>

        <c>;</c>

        <c></c>

        <c><spanx style="verb-uvml">likelihood</spanx></c>

        <c>= <spanx style="verb-uvml">almost-certain / very-likely / likely</spanx></c>

        <c><spanx style="verb-uvml">likelihood</spanx></c>

        <c>=<spanx style="verb-uvml">/ unlikely / very-unlikely / unimaginable</spanx></c>

        <c>;; ~~ quality values</c>

        <c></c>

        <c><spanx style="verb-uvml">among-the-very-best</spanx></c>

        <c>= <spanx style="verb-uvml">5*10STAR</spanx></c>

        <c><spanx style="verb-uvml">very-good</spanx></c>

        <c>= <spanx style="verb-uvml">4STAR</spanx></c>

        <c><spanx style="verb-uvml">good</spanx></c>

        <c>= <spanx style="verb-uvml">3STAR</spanx></c>

        <c><spanx style="verb-uvml">fair</spanx></c>

        <c>= <spanx style="verb-uvml">2STAR</spanx></c>

        <c><spanx style="verb-uvml">poor</spanx></c>

        <c>= <spanx style="verb-uvml">1STAR</spanx></c>

        <c><spanx style="verb-uvml">very-poor</spanx></c>

        <c>= <spanx style="verb-uvml">STAR MINUS</spanx></c>

        <c><spanx style="verb-uvml">among-the-very-worst</spanx></c>

        <c>= <spanx style="verb-uvml">STAR 2*9MINUS</spanx></c>

        <c>;; ~~ importance values</c>

        <c></c>

        <c><spanx style="verb-uvml">highest-importance</spanx></c>

        <c>= <spanx style="verb-uvml">3*10BANG</spanx></c>

        <c><spanx style="verb-uvml">very-important</spanx></c>

        <c>= <spanx style="verb-uvml">2BANG</spanx></c>

        <c><spanx style="verb-uvml">important</spanx></c>

        <c>= <spanx style="verb-uvml">BANG</spanx></c>

        <c><spanx style="verb-uvml">unimportant</spanx></c>

        <c>= <spanx style="verb-uvml">BANG MINUS</spanx></c>

        <c><spanx style="verb-uvml">irrelevant</spanx></c>

        <c>= <spanx style="verb-uvml">BANG 2*9MINUS</spanx></c>

        <c>;; ~~ outlook values</c>

        <c></c>

        <c><spanx style="verb-uvml">never-more-optimistic</spanx></c>

        <c>= <spanx style="verb-uvml">3*10CURRENCY</spanx></c>

        <c><spanx style="verb-uvml">very-optimistic</spanx></c>

        <c>= <spanx style="verb-uvml">2CURRENCY</spanx></c>

        <c><spanx style="verb-uvml">optimistic</spanx></c>

        <c>= <spanx style="verb-uvml">CURRENCY</spanx></c>

        <c><spanx style="verb-uvml">pessimistic</spanx></c>

        <c>= <spanx style="verb-uvml">CURRENCY MINUS</spanx></c>

        <c><spanx style="verb-uvml">very-pessimistic</spanx></c>

        <c>= <spanx style="verb-uvml">CURRENCY 2MINUS</spanx></c>

        <c><spanx style="verb-uvml">never-more-pessimistic</spanx></c>

        <c>= <spanx style="verb-uvml">CURRENCY 3*9MINUS</spanx></c>

        <c><spanx style="verb-uvml">CURRENCY</spanx></c>

        <c>= <spanx style="verb-uvml">DOLLAR / EURO / POUND / YUAN-YEN</spanx></c>

        <c>;; ~~ support-opposition values</c>

        <c></c>

        <c><spanx style="verb-uvml">strongly-support</spanx></c>

        <c>= <spanx style="verb-uvml">3*10PLUS</spanx></c>

        <c><spanx style="verb-uvml">support</spanx></c>

        <c>= <spanx style="verb-uvml">2PLUS</spanx></c>

        <c><spanx style="verb-uvml">somewhat-support</spanx></c>

        <c>= <spanx style="verb-uvml">PLUS</spanx></c>

        <c><spanx style="verb-uvml">somewhat-oppose</spanx></c>

        <c>= <spanx style="verb-uvml">MINUS</spanx></c>

        <c><spanx style="verb-uvml">oppose</spanx></c>

        <c>= <spanx style="verb-uvml">2MINUS</spanx></c>

        <c><spanx style="verb-uvml">strongly-oppose</spanx></c>

        <c>= <spanx style="verb-uvml">3*10MINUS</spanx></c>

        <c>;; ~~ likelihood values</c>

        <c></c>

        <c><spanx style="verb-uvml">almost-certain</spanx></c>

        <c>= <spanx style="verb-uvml">3*10PERCENT</spanx></c>

        <c><spanx style="verb-uvml">very-likely</spanx></c>

        <c>= <spanx style="verb-uvml">2PERCENT</spanx></c>

        <c><spanx style="verb-uvml">likely</spanx></c>

        <c>= <spanx style="verb-uvml">PERCENT</spanx></c>

        <c><spanx style="verb-uvml">unlikely</spanx></c>

        <c>= <spanx style="verb-uvml">PERCENT MINUS</spanx></c>

        <c><spanx style="verb-uvml">very-unlikely</spanx></c>

        <c>= <spanx style="verb-uvml">PERCENT 2MINUS</spanx></c>

        <c><spanx style="verb-uvml">unimaginable</spanx></c>

        <c>= <spanx style="verb-uvml">PERCENT 3*9MINUS</spanx></c>

        <c>;; ISO code sets</c>

        <c></c>

        <c><spanx style="verb-uvml">iso-5218-gender</spanx></c>

        <c>= <spanx style="verb-uvml">male / female</spanx></c>

        <c><spanx style="verb-uvml">iso-3166-country</spanx></c>

        <c>= <spanx style="verb-uvml">2LETTER</spanx></c>

        <c><spanx style="verb-uvml">iso-3166-subdivision</spanx></c>

        <c>= <spanx style="verb-uvml">1*2DIGIT / 2*3LETTER</spanx></c>

        <c><spanx style="verb-uvml">male</spanx></c>

        <c>= <spanx style="verb-uvml">M</spanx></c>

        <c><spanx style="verb-uvml">female</spanx></c>

        <c>= <spanx style="verb-uvml">F</spanx></c>

        <c>;; symbols</c>

        <c></c>

        <c><spanx style="verb-uvml">QUESTION</spanx></c>

        <c>= <spanx style="verb-uvml">%x3F</spanx></c>

        <c><spanx style="verb-uvml">STAR</spanx></c>

        <c>= <spanx style="verb-uvml">%x2A</spanx></c>

        <c><spanx style="verb-uvml">PLUS</spanx></c>

        <c>= <spanx style="verb-uvml">%x2B</spanx></c>

        <c><spanx style="verb-uvml">MINUS</spanx></c>

        <c>= <spanx style="verb-uvml">%x2D</spanx></c>

        <c><spanx style="verb-uvml">BANG</spanx></c>

        <c>= <spanx style="verb-uvml">%x21</spanx></c>

        <c><spanx style="verb-uvml">PERCENT</spanx></c>

        <c>= <spanx style="verb-uvml">%x25</spanx></c>

        <c><spanx style="verb-uvml">DOLLAR</spanx></c>

        <c>= <spanx style="verb-uvml">%x24</spanx></c>

        <c><spanx style="verb-uvml">EURO</spanx></c>

        <c>= <spanx style="verb-uvml">%x80</spanx></c>

        <c><spanx style="verb-uvml">POUND</spanx></c>

        <c>= <spanx style="verb-uvml">%xA3</spanx></c>

        <c><spanx style="verb-uvml">YUAN-YEN</spanx></c>

        <c>= <spanx style="verb-uvml">%xA5</spanx></c>

        <c><spanx style="verb-uvml">AMPERSAND</spanx></c>

        <c>= <spanx style="verb-uvml">%x26</spanx></c>

        <c><spanx style="verb-uvml">APOSTROPHE</spanx></c>

        <c>= <spanx style="verb-uvml">%x27</spanx></c>

        <c><spanx style="verb-uvml">HYPHEN</spanx></c>

        <c>= <spanx style="verb-uvml">%x2D</spanx></c>

        <c><spanx style="verb-uvml">HASH</spanx></c>

        <c>= <spanx style="verb-uvml">%x23</spanx></c>

        <c><spanx style="verb-uvml">UNDERSCORE</spanx></c>

        <c>= <spanx style="verb-uvml">%x5F</spanx></c>

        <c><spanx style="verb-uvml">PERIOD</spanx></c>

        <c>= <spanx style="verb-uvml">%x2E</spanx></c>

        <c><spanx style="verb-uvml">M</spanx></c>

        <c>= <spanx style="verb-uvml">"M" / "m"</spanx></c>

        <c><spanx style="verb-uvml">F</spanx></c>

        <c>= <spanx style="verb-uvml">"F" / "f"</spanx></c>

        <c>;; symbol groups</c>

        <c></c>

        <c><spanx style="verb-uvml">LETTERDIGIT</spanx></c>

        <c>= <spanx style="verb-uvml">LETTER / DIGIT</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>= <spanx style="verb-uvml">"A" / "B" / "C" / "D" / "E" / "F" / "G"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "H" / "I" / "J" / "K" / "L" / "M" / "N"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "O" / "P" / "Q" / "R" / "S" / "T" / "U"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "V" / "W" / "X" / "Y" / "Z"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "a" / "b" / "c" / "d" / "e" / "f" / "g"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "h" / "i" / "j" / "k" / "l" / "m" / "n"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "o" / "p" / "q" / "r" / "s" / "t" / "u"</spanx></c>

        <c><spanx style="verb-uvml">LETTER</spanx></c>

        <c>=<spanx style="verb-uvml">/ "v" / "w" / "x" / "y" / "z"</spanx></c>

        <c><spanx style="verb-uvml">UPPER-ASCII</spanx></c>

        <c>= <spanx style="verb-uvml">%xC0-FF</spanx></c>

        <c><spanx style="verb-uvml">UNICODE</spanx></c>

        <c>= <spanx style="verb-uvml">PLANE0</spanx></c>

        <c><spanx style="verb-uvml">PLANE0</spanx></c>

        <c>= <spanx style="verb-uvml">%x0100-D7FF / %xE000-FDCF</spanx></c>

        <c><spanx style="verb-uvml">PLANE0</spanx></c>

        <c>=<spanx style="verb-uvml">/ %xFDF0-FFFD</spanx></c>

        <c>;; NOTE: java/scala lack support for PLANE1-2</c>

        <c></c>

        <c><spanx style="verb-uvml">;; PLANE1</spanx></c>

        <c>= <spanx style="verb-uvml">%x10000-1FFFD</spanx></c>

        <c><spanx style="verb-uvml">;; PLANE2</spanx></c>

        <c>= <spanx style="verb-uvml">%x20000-2FFFD</spanx></c>
      </texttable>

      <section title="Ballot">
        <t>A UVML ballot consists of one or more UVML votes (rating
        or ranking) and optionally including a UVML voter
        demographic signature. Ballots can coexist with
        standard prose in any language.</t>

        <t>A UVML rating vote begins with a hash (<spanx
        style="strong-uvml">#</spanx>), followed immediately by a target and
        score.</t>

        <t>A UVML ranking vote begins with a double-hash
        (<spanx style="strong-uvml">##</spanx>), followed immediately by a contest
        list of selections in order preference: #first #second ... etc., up to
        25 selections. Selections may be a simple hash tag, or a UVML rating
        vote (#first+++).</t>

        <t>A UVML demographic signature begins with a
        triple-hash (<spanx style="strong-uvml">###</spanx>), followed by age,
        gender, and location (ideally, voting jurisdiction) of the voter.</t>

        <t>Ex. Lorem ipsum dolor sit <spanx style="strong-uvml">#topic***</spanx>
        amet, consectetur adipiscing elit. Nulla sed blandit felis. <spanx
        style="strong-uvml">#topic++</spanx> Ut lacinia nunc <spanx style="strong-uvml">##contest1 #candidateA #candidateB #candidateC</spanx>
        venenatis sapien <spanx style="strong-uvml">#topic%--</spanx> adipiscing
        <spanx style="strong-uvml">##contest2 #candidateD+++ #candidateE+</spanx>
        ultrices. Nulla dictum tempus <spanx style="strong-uvml">#topic$$$</spanx>
        volutpat. <spanx style="strong-uvml">###35F-USNY</spanx></t>
      </section>

      <section title="Vote">
        <t>UVML supports two types of votes: rating, and
        ranking. Rating votes represent a voters valuation of a
        specific target. Ranking votes represent a voters preferences among a
        number of options.</t>

        <t>Ex (Opinion). <spanx style="strong-uvml">#fluger****</spanx> ;; fluger
        quality is 'very good'</t>

        <t>Ex (Choice). <spanx style="strong-uvml">##president.us #Smith #Jones #Johnson</spanx>
        ;; voter preferences for president of the United States are Smith,
        then Jones, then Johnson.</t>

        <t>Ex (Choice). Choice votes may also include Opinion votes, as in:
        <spanx style="strong-uvml">##president.us #Smith+++ #Jones+ #Johnson+</spanx>
        ;; preferences for president of the United States are Smith (strongly
        support), then Jones (somewhat support), then Johnson (somewhat
        support).</t>
      </section>

      <section title="Rating">
        <t>An UVML rating vote consists of a hash (<spanx style="strong-uvml">#</spanx>)
        followed immediately by a target and score.
        Optionally, a voter may qualify a rating as provisional,
        or, subject to change, by indicating that he or she is
        undecided.</t>

        <section anchor="target" title="Target">
          <t>A UVML target is the object of the voter sentiment, optionally
          suffixed by a taxonomy of subgroups from largest to smallest
          separated by a period (<spanx style="strong-uvml">.</spanx>).</t>

          <t>Ex. <spanx style="strong-uvml">#target***</spanx></t>

          <t>Ex. <spanx style="strong-uvml">#drivers.subgroup.subsubgroup*****</spanx></t>
        </section>

        <section anchor="score" title="Score">
          <t>The score on a UVML rating vote consists of an
          optional undecided indicator followed by a valuation.</t>
        </section>

        <section anchor="provisional" title="Undecided">
          <t>A voter may indicate that he or she is undecided
          by placing a question-mark (<spanx style="strong-uvml">?</spanx>) before
          the valuation. The connotation is that the voter is not completely
          convinced of his or her opinion, but the recorded opinion is the
          voter's current inclination.</t>

          <t>Ex. <spanx style="strong-uvml">#propXYZ?++</spanx> ;; unsure, but
          tending to support propXYZ</t>

          <t>Ex. <spanx style="strong-uvml">#target?$</spanx> ;; unsure, but
          tending to be optimistic</t>
        </section>

        <section title="Valuation">
          <t>UVML supports five of the most commonly used opinion valuation
          dimensions (<xref target="Phillips2011"></xref>): <spanx
          style="emph">quality</spanx>, <spanx style="emph">importance</spanx>,
          <spanx style="emph">outlook</spanx>, <spanx style="emph">support-opposition</spanx>,
          and <spanx style="emph">likelihood</spanx>.</t>

          <section anchor="quality" title="Quality">
            <t>Quality: How good or bad someone
            thinks something is.</t>

            <t>UVML defines quality as the level of "virtue" or "positive
            effects produced" or "positive connotation of".</t>

            <texttable anchor="qualitydef" style="headers"
                       title="UVML Quality Syntax">
              <ttcol width="70%">Quality</ttcol>

              <ttcol width="">Syntax</ttcol>

              <c>Among the Very Best</c>

              <c><spanx style="strong-uvml">*****</spanx></c>

              <c>Very Good</c>

              <c><spanx style="strong-uvml">****</spanx></c>

              <c>Good</c>

              <c><spanx style="strong-uvml">***</spanx></c>

              <c>Fair</c>

              <c><spanx style="strong-uvml">**</spanx></c>

              <c>Bad (or Poor)</c>

              <c><spanx style="strong-uvml">*</spanx></c>

              <c>Very Bad (or Very Poor)</c>

              <c><spanx style="strong-uvml">*-</spanx></c>

              <c>Among the Very Worst</c>

              <c><spanx style="strong-uvml">*--</spanx></c>
            </texttable>
          </section>

          <section anchor="importance" title="Importance">
            <t>Importance: How significant or
            insignificant someone thinks something is compared to other items
            to be considered.</t>

            <texttable anchor="importancedef" style="headers"
                       title="UVML Importance Syntax">
              <ttcol width="80%">Importance</ttcol>

              <ttcol>Syntax</ttcol>

              <c>Highest Importance</c>

              <c><spanx style="strong-uvml">!!!</spanx></c>

              <c>Very Important</c>

              <c><spanx style="strong-uvml">!!</spanx></c>

              <c>Important</c>

              <c><spanx style="strong-uvml">!</spanx></c>

              <c>Unimportant</c>

              <c><spanx style="strong-uvml">!-</spanx></c>

              <c>Irrelevant</c>

              <c><spanx style="strong-uvml">!--</spanx></c>
            </texttable>
          </section>

          <section anchor="outlook" title="Outlook">
            <t>Outlook: How expectant of good
            (optimistic) or bad (pessimistic) someone is about something.</t>

            <texttable anchor="outlookdef" style="headers"
                       title="UVML Outlook Syntax">
              <ttcol width="80%">Outlook</ttcol>

              <ttcol>Syntax</ttcol>

              <c>Never More Optimistic</c>

              <c><spanx style="strong-uvml">$$$</spanx></c>

              <c>Very Optimistic</c>

              <c><spanx style="strong-uvml">$$</spanx></c>

              <c>Optimistic</c>

              <c><spanx style="strong-uvml">$</spanx></c>

              <c>Pessimistic</c>

              <c><spanx style="strong-uvml">$-</spanx></c>

              <c>Very Pessimistic</c>

              <c><spanx style="strong-uvml">$--</spanx></c>

              <c>Never More Pessimistic</c>

              <c><spanx style="strong-uvml">$---</spanx></c>
            </texttable>
          </section>

          <section anchor="support" title="Support-Opposition">
            <t>Support-Opposition: How strongly
            someone's thinking is aligned with a topic.</t>

            <texttable anchor="supportdef" style="headers"
                       title="UVML Support Syntax">
              <ttcol width="85%">Support</ttcol>

              <ttcol>Syntax</ttcol>

              <c>Strongly Agree or Strongly Support</c>

              <c><spanx style="strong-uvml">+++</spanx></c>

              <c>Agree or Support</c>

              <c><spanx style="strong-uvml">++</spanx></c>

              <c>Agree, somewhat</c>

              <c><spanx style="strong-uvml">+</spanx></c>

              <c>Disagree, somewhat</c>

              <c><spanx style="strong-uvml">-</spanx></c>

              <c>Disagree or Oppose</c>

              <c><spanx style="strong-uvml">--</spanx></c>

              <c>Strongly Disagree or Strongly Oppose</c>

              <c><spanx style="strong-uvml">---</spanx></c>
            </texttable>
          </section>

          <section anchor="likelihood" title="Likelihood">
            <t>Likelihood: How certain someone
            is that something is going to happen.</t>

            <texttable anchor="likelihooddef" style="headers"
                       title="UVML Likelihood Syntax">
              <ttcol width="85%">Likelihood</ttcol>

              <ttcol>Syntax</ttcol>

              <c>Almost Certain (&gt;99+%)</c>

              <c><spanx style="strong-uvml">%%%</spanx></c>

              <c>Very Likely (&gt;90+%)</c>

              <c><spanx style="strong-uvml">%%</spanx></c>

              <c>Likely (&gt;75%)</c>

              <c><spanx style="strong-uvml">%</spanx></c>

              <c>Unlikely (&lt;25%)</c>

              <c><spanx style="strong-uvml">%-</spanx></c>

              <c>Very Unlikely (&lt;10%)</c>

              <c><spanx style="strong-uvml">%--</spanx></c>

              <c>Unimaginable (&lt;1%)</c>

              <c><spanx style="strong-uvml">%---</spanx></c>
            </texttable>
          </section>

          <section anchor="manner" title="Emphasis">
            <t>UVML provides a means of emphasis to give voters freedom to
            emphasize the strength of their opinion, may be done by repeating
            the final symbol of the opinion. After all, three exclamation
            points are just not enough for some <spanx style="strong-uvml">#topics!!!!!!</spanx></t>

            <t>From a tabulation standpoint, these opinions do not carry more
            than the maximum consideration.</t>

            <t>Ex. <spanx style="strong-uvml">#life*********</spanx> ;; life has
            never been better</t>

            <t>Ex. <spanx style="strong-uvml">#life$$$$$$</spanx> ;; never been
            more optimistic</t>
          </section>
        </section>
      </section>

      <section title="Ranking">
        <t>A ranking consists of a contest, and
        one or more selections.</t>

        <t>A UVML contest vote is a indicated by a double-hash (<spanx
        style="strong-uvml">##</spanx>), followed by the contest name. Each selection
        takes the form of a hash tag, optionally followed by a valuation.
        Voter selections are listed in order, beginning with the voter's first
        selection, optionally followed by second, then third, etc., up to 25
        selections.</t>

        <t>Ex. <spanx style="strong-uvml">##president.us #Smith #Jones #Johnson</spanx></t>

        <t>Ex. <spanx style="strong-uvml">##president.us #Smith+++ #Jones++ #Johnson</spanx></t>

        <t>From a contest tabulation standpoint---both of the above examples
        are tabulated the same. Each candidate receives a 1/CHOICE score for
        the ballot, where CHOICE represents that candidates ordinal position,
        in this case Smith +1.0, Jones +0.5, and Johnson +0.33.</t>

        <t>The second example shows that UVML rating votes can be used as UVML
        contest selections. In such cases, the rating votes as tabulated as
        well, in this case Smith (strongly support) and Jones (support).</t>
      </section>

      <section title="Signature">
        <t>UVML enables voters to provide a demographic signature, to help
        polling stations do voter segmentation. A UVML signature is prefixed
        by triple-hashes (<spanx style="strong-uvml">###</spanx>). The voter
        signature may appear before, after, or between votes within a
        ballot.</t>

        <t>A UVML demographic signature is composed of three parts: age,
        gender, and location. Only gender is required. The location may be a
        country, country-state, or country-areacode. The country is optional,
        but recommended in cases where the polling station may not reliably
        supply a correct default.</t>

        <t>Ex. <spanx style="strong-uvml">###F</spanx> ;; female voter</t>

        <t>Ex. <spanx style="strong-uvml">###M</spanx> ;; male voter</t>

        <t>Ex. <spanx style="strong-uvml">###29F212</spanx> ;; 29 year old female
        voter from New York City</t>

        <t>Ex. <spanx style="strong-uvml">###M-CN</spanx> ;; male voter from
        China</t>

        <t>Ex. <spanx style="strong-uvml">###75F-USCA</spanx> ;; 75 year old female
        voter from California</t>

        <t>Votes are tabulated at each level where the information is provided
        or can be derived. In the case of <spanx style="strong-uvml">###M212</spanx>,
        votes would be counted for the 212 area code, the state of New York,
        and the country of the Unites States.</t>
      </section>
    </section>

    <section anchor="implementation-stds"
             title="UVML Implementation Standards">
      <t>The following standards promote consistency in voter experience
      across polling stations.</t>

      <section title="No Vote Roll-up">
        <t>For any UVML topic, contest, or selection which includes a subgroup
        delimiter (<spanx style="strong-uvml">.</spanx>), the polling station must roll up a specific topic
        to a more general one. For example, <spanx style="strong-uvml">#drivers.ny****</spanx>
        must not imply <spanx style="strong-uvml">#drivers****</spanx>.</t>
      </section>

      <section title="Multiple Votes">
        <t>If multiple votes for the same topic and valuation type are
        included in a single ballot, then a polling station must count the
        first vote only.</t>
      </section>

      <section title="Signature Location">
        <t>Signatures may appear anywhere within a ballot, though the ABNF
        grammar for a ballot indicates that a signature follows after all
        votes.</t>
      </section>

      <section title="Multiple Signatures">
        <t>If multiple demographic signatures are present in a single ballot,
        then a polling station must reference the first signature only.</t>
      </section>

      <section title="Forwarded Ballots">
        <t>Ballots which are obviously forwarded should not be counted.</t>
      </section>

      <section title="UVML Video Ballots">
        <t>UVML in video is treated as UVML in text. Whether on one frame or
        all frames, multiple UVML votes for the same topic and opinion type
        are not counted more than once.</t>
      </section>
    </section>

    <section anchor="uvml_rhetoric" title="UVML Rhetorical Guide">
      <t>A UVML vote can take two rhetorical forms: confirming
      and inline.</t>

      <t>In the confirming form, UVML restates, clarifies, or
      quantifies an opinion expressed elsewhere in the text.</t>

      <t>Ex. Came across this cool voting syntax called, UVML. <spanx
      style="strong-uvml">#uvml*****</spanx>.</t>

      <t>In the inline form, UVML both embodies the full
      semantics of opinion and plays a grammatical role in the text.</t>

      <t>Ex. Check out <spanx style="strong-uvml">#uvml*****</spanx>.</t>
    </section>

    <section anchor="uvml_fspec" title="UVML Functional Specification">
      <t>This section contains some more theoretical descriptions of the core
      motivations of the various components of UVML. Future changes to the
      UVML standard should be supported by these functional
      specifications.</t>

      <t>Author's Note: While an effort has been made to inform
      UVML's design goals with concepts from elections systems theory, the
      field is highly complex and the treatment of related topics in this
      document should only be considered superficial.</t>

      <t>The aim of UVML is to enable a high quality ubiquitous voting system
      capable of processing ballots authored in text, image, or video. The
      functional requirements for UVML are presented below. The framework for
      the below requirements benefits from <xref format="default"
      target="HospVora2010"></xref>.</t>

      <section title="Usability">
        <t>UVML must enable voters to express their opinions completely,
        clearly, and compactly, such that the voter can be confident that a
        vote cast using UVML accurately reflects his or her intentions.</t>

        <section anchor="completeness" title="Completeness">
          <t>UVML must enable voters to express their opinions using the
          principle elements of opinion semantics (<xref
          target="opinion-semantics"></xref>) and rank-order preference
          semantics (<xref target="rank-semantics"></xref>).</t>
        </section>

        <section anchor="clarity" title="Clarity">
          <t>UVML must enable voters to clearly communicate to readers the
          semantics of their opinions ( <xref format="title"
          target="completeness"></xref> ) to both human and automated-agent
          readers.</t>

          <t>The syntax for UVML votes and signatures must be defined using an
          ABNF grammar.</t>

          <t>The syntax for UVML votes and signatures should be defined so as
          to minimize conflicts with established modes of textual or visual
          communications.</t>
        </section>

        <section anchor="compactness" title="Compactness">
          <t>UVML syntax must include only the minimum number of symbols
          required to meet semantic requirements. UVML must reconcile
          conflicts between compactness and clarity in favor of
          compactness.</t>
        </section>

        <section anchor="universality" title="Universality">
          <t>UVML syntax must be a universal syntax, requiring no or only
          minimal localization.</t>
        </section>
      </section>

      <section anchor="privacy" title="Privacy">
        <t>UVML must enable voters to sign their ballots with a demographic
        signature; however, "polling stations" must not require a signature
        for a ballot to be counted.</t>
      </section>

      <section anchor="integrity" title="Integrity">
        <t>UVML must provide inference-free voting tabulation, such that the
        vote cast is the vote recorded.</t>
      </section>

      <section title="Verifiability">
        <t>UVML must enable voters to query voting results and sample
        ballots.</t>
      </section>

      <section title="Veracity">
        <t>UVML syntax must be easy enough to process such that polling
        stations can render tabulated returns in near-real-time, so that
        voters can be assured that their votes and the votes of others are
        being reported as they are counted.</t>
      </section>

      <section title="Robustness">
        <t>UVML must enable a voter to vote again if a previous vote was cast
        incorrectly or the voter's opinion changes.</t>
      </section>

      <section title="Intelligence">
        <t>UVML must enable a closed-loop voting system, where voters can
        query the full content of the ballots of other voters and re-vote as
        they learn more about the things that are important to themselves and
        other voters.</t>
      </section>
    </section>

    <section anchor="notes" title="Notes">
      <t>This section includes remarks which didn't seem to fit anywhere
      else.</t>

      <section title="Accidental Vote Rates">
        <t>Some work was done in the design of UVML to limit accidental voting.
        Accidental votes are votes which are valid UVML, but for which the
        author did not intend to vote using UVML---his or her text just
        happened to be valid UVML.</t>

        <t>This author examined a blog corpus (<xref
        target="Spinn3r2009"></xref>) totaling 62M social media documents in .
        The accidental vote rate for unique targets was 33:1,000,000. The rate
        of accidental voting for meaningful targets is much lower, perhaps
        3-5:1,000,000. Below are some examples of the false positives. Unicode
        characters in the below examples will appear as &amp;#00000; in the
        ascii format of this specification.</t>

        <t>Ex(s). #BWE08!, #ta!!!!!, #arriba-, #cbaaab+, ##BR#Showing, #top-,
        #user-, #Movies336-, #Caution!, #&#36335;&#20917;&#24066;&#21306;20%,
        #DSNYUK23789BNew!!, #er!, #YUWB7JLUQI%, #Ap+, #cutid1!, #leella!,
        ##BR#Great, #&#65087;&#65284;*, #FNT*,
        #&#1059;&#1074;&#1086;&#1083;&#1100;&#1090;&#1077;!, #g4+,
        #&#65509;&hellip;&hellip;&mdash;*, #FF6021!, #trendanalysis-,
        #&#36755;&#20986;heapdump*, #KSCS25FVSS-, #&#1091;&#1081;!, #EL+,
        #tch!!!, #fwe%, #seoad-, #outros240-, #GOBAMA!, #NR%,
        #&#1076;&#1072;&#1085;&#1091;&#1090;&#1099;&#1093;!, #osleoperd-,
        #&#32780;&#23545;&#20110;c++, #DANUNO-, ##BR#Only, #vouvotar!,
        ##BR#Jacquelyn.</t>

        <t>The language distribution of these accidental votes was more or
        less consistent with each language's representation in the corpus.
        Portuguese was a little higher than expected for some reason, and
        Chinese/Japanese/Korean accidental voting rates were a little lower
        than expected: U -&gt; 382, my -&gt; 1, de -&gt; 89, fr -&gt; 182, pl
        -&gt; 6, hr -&gt; 9, uk -&gt; 7, ta -&gt; 4, hi -&gt; 2, io -&gt; 11,
        ka -&gt; 3, ru -&gt; 178, ko -&gt; 3, th -&gt; 6, cjk -&gt; 489, ar
        -&gt; 18, no -&gt; 9, nl -&gt; 17, et -&gt; 7, pt -&gt; 317, ro -&gt;
        4, hu -&gt; 1, ja -&gt; 122, vi -&gt; 8, da -&gt; 3, sv -&gt; 19, he
        -&gt; 21, fa -&gt; 4, it -&gt; 20, zh -&gt; 31, es -&gt; 123, en -&gt;
        3006.</t>

        <t>UVML's current syntax seems to strike a useful balance between
        compactness, differentiation from conventional text, and
        expressiveness power.</t>
      </section>

      <section anchor="opinion-semantics" title="Opinion Semantics">
        <t>UVML leverages the definition of opinion semantics provided by
        <eref target="http://framenet.icsi.berkeley.edu">FrameNet</eref>:
        "topic", an "aspect", a "constancy" value, a "manner."<list
            style="hanging">
            <t anchor="topic-req" hangText="Topic">UVML must enable voters to
            define their own topics, using taxonomy if desired.</t>

            <t anchor="aspect-req" hangText="Aspect">UVML must enable voters
            to express the most common opinion types <xref format="title"
            target="Phillips2011"></xref>: quality, support (or agreement),
            importance, outlook, and likelihood.</t>

            <t anchor="constancy-req" hangText="Constancy">UVML must enable
            voters to make "provisional" votes, in cases where the voter is
            undecided.</t>

            <t anchor="manner-req" hangText="Manner">UVML must enable voters
            to emphasize the strength of their opinions beyond the limits of a
            conventional Likert-type scale.</t>
          </list></t>
      </section>

      <section anchor="rank-semantics" title="Election-Contest Semantics">
        <t>For Election-Contest semantics, UVML uses the definition of
        rank-order semantics provided by <eref
        target="http://framenet.icsi.berkeley.edu">FrameNet</eref>.
        Specifically, "the {perceived} state of occupying a certain {place}
        within a hierarchy."</t>
      </section>

      <section title="Right to Left Language Support">
        <t>At this time, the specification of UVML does not include a
        hash-right convention for right-to-left languages. To date, social
        media content of users of right-to-left languages have not worked to
        implement such a convention. If this changes, the UVML specification
        may follow.</t>
      </section>
    </section>

    <!-- This PI places the pagebreak correctly (before the section title) in the text output. -->

    <?rfc needLines="8" ?>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>This document was constructed using the xml2rfc project.</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->

    <section anchor="IANA" title="IANA Considerations">
      <t>This memo includes no request to IANA.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>UVML does not pose a security threat.</t>
    </section>
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">
      <!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->

      &RFC2119;
    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

      <reference anchor="RFC5234">
        <front>
          <title>Augmented BNF for Syntax Specifications: ABNF</title>

          <author fullname="D. Crocker" initials="D." surname="Crocker">
            <organization></organization>
          </author>

          <author fullname="P. Overell" initials="P." surname="Overell">
            <organization></organization>
          </author>

          <date month="January" year="2008" />

          <abstract>
            <t>Internet technical specifications often need to define a formal
            syntax. Over the years, a modified version of Backus-Naur Form
            (BNF), called Augmented BNF (ABNF), has been popular among many
            Internet specifications. The current specification documents ABNF.
            It balances compactness and simplicity with reasonable
            representational power. The differences between standard BNF and
            ABNF involve naming rules, repetition, alternatives,
            order-independence, and value ranges. This specification also
            supplies additional rule definitions and encoding for a core
            lexical analyzer of the type common to several Internet
            specifications. [STANDARDS-TRACK]</t>
          </abstract>
        </front>

        <seriesInfo name="STD" value="68" />

        <seriesInfo name="RFC" value="5234" />

        <format octets="26359"
                target="http://www.rfc-editor.org/rfc/rfc5234.txt" type="TXT" />
      </reference>

      <reference anchor="HospVora2010">
        <front>
          <title>An information-theoretic model of voting systems</title>

          <author fullname="Hosp, Ben">
            <organization>Department of Computer Science, George Washington
            University</organization>
          </author>

          <date month="October" year="2008" />
        </front>
      </reference>

      <reference anchor="Phillips2011">
        <front>
          <title>Multi-language Analysis of Sentiment Types in Blogs</title>

          <author fullname="Phillips, Erin M." surname="">
            <organization>(unpublished, available at
            http://uvml.org)</organization>
          </author>

          <date month="May" year="2011" />
        </front>
      </reference>

      <reference anchor="Spinn3r2009">
        <front>
          <title>The icwsm 2009 spinn3r dataset</title>

          <author fullname="K. Burton, A. Java, and I. Soboroff">
            <organization>Proceedings of the Third Annual Conference on
            Weblogs and Social Media (ICWSM 2009</organization>
          </author>

          <date month="May" year="2009" />
        </front>
      </reference>

      <!-- A reference written by by an organization not a person. -->
    </references>

    <section anchor="app-additional" title="UVML Regular Expressions">
      <t>The following basic regular expressions (from scala) express the
      above ABNF specification.</t>

      <t>Basic regular expression for the capture of UVML rating votes.</t>

      <t><spanx style="verb-uvml">(?:\x23[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd](?:\x2e[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd])*\x3f?(?:\x2a{5,10}|\x2a{4}|\x2a{3}|\x2a{2}|\x2a|\x2a\x2d|\x2a\x2d{2,9}|!{3,10}|!{2}|!|!\x2d|!\x2d{2,9}|[\x24\x80\xa3\xa5]{3,10}|[\x24\x80\xa3\xa5]{2}|[\x24\x80\xa3\xa5]|[\x24\x80\xa3\xa5]\x2d|[\x24\x80\xa3\xa5]\x2d{2}|[\x24\x80\xa3\xa5]\x2d{3,9}|\x2b{3,10}|\x2b{2}|[\x2b\x2d]|\x2d{2}|\x2d{3,10}|%{3,10}|%{2}|%|%\x2d|%\x2d{2}|%\x2d{3,9}))(?=\Z|[^\d\w])</spanx></t>

      <t>Basic regular expression for the capture of UVML ranking votes.</t>

      <t><spanx style="verb-uvml">(?:\x23{2}[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd](?:\x2e[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd])*(?:[\t\x20]*\x23[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd](?:\x2e[A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd][0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd]{0,70}[0-9A-Za-z\xc0-\ud7ff\ue000-\ufdcf\ufdf0-\ufffd])*(?:\x3f?(?:\x2a{5,10}|\x2a{4}|\x2a{3}|\x2a{2}|\x2a|\x2a\x2d|\x2a\x2d{2,9}|!{3,10}|!{2}|!|!\x2d|!\x2d{2,9}|[\x24\x80\xa3\xa5]{3,10}|[\x24\x80\xa3\xa5]{2}|[\x24\x80\xa3\xa5]|[\x24\x80\xa3\xa5]\x2d|[\x24\x80\xa3\xa5]\x2d{2}|[\x24\x80\xa3\xa5]\x2d{3,9}|\x2b{3,10}|\x2b{2}|[\x2b\x2d]|\x2d{2}|\x2d{3,10}|%{3,10}|%{2}|%|%\x2d|%\x2d{2}|%\x2d{3,9}))?){1,25})(?=\Z|[^\d\w])</spanx></t>

      <t>Basic regular expression for the capture of UVML signatures.</t>

      <t><spanx style="verb-uvml">(?:\x23{3}(?:\d{1,3}\x2d?)?[FMfm](?:(?:\x2d?[A-Za-z]{2})?(?:\x2d?(?:\d{1,2}|[A-Za-z]{2,3}))?(?:\x2d?\d{3,4})?)?)(?=\Z|[^\d\w])</spanx></t>
    </section>

    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                      v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                      other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                      Modified comments around figure to reflect non-implementation of
                      figure indent control.  Put in reference using anchor="DOMINATION".
                      Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                      added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                      images. Removed meta-characters from comments (causes problems).  -->
  </back>
</rfc>

