Copyright © 2012 W3C® (MIT , ERCIM , Keio), All Rights Reserved. W3C liability, trademark, document use rules apply.
The EmotionML Specification entered the Candidate Recommendation period on 10 May 2012.
Preparation of an Implementation Report is a key criterion for moving beyond the Candidate Recommendation phase. This document describes the requirements for the Implementation Report and the process that the Multimodal Working Group will follow in preparing the report.
An implementation report must indicate the outcome of evaluating the implementation with respect to each of the test assertions. Possible outcomes are "pass", "fail" or "not-impl". Criteria for Producers and Consumers of EmotionML for determining the outcome of each test assertion are defined as follows.
If a consumer:
If a producer:
During the CR period, the Working Group will carry out the following activities:
You are invited to contribute to the assessment of the W3C EmotionML 1.0 Specification by participating in the Implementation Report process.
The Multimodal Working Group established the following entrance criteria for the Proposed Recommendation phase in the Request for CR:
pass
", "fail
" or
"not-impl
". "EmotionML Implementation Report will not cover:
Note: The testimonials with pink background from "Acme Labs" and "Beta Inc." are just examples and will be replaced with the actually submitted testimonials.
The W3C EmotionML 1.0 Specification is well-written, easily implementable and extremely useful. Acme Labs used it to describe the recipe for haggis.
The W3C EmotionML 1.0 Specification is the best thing since sliced bread, extremely useful, easily implementable and well-written. Beta Inc. used it to build a new generation of interactive services, establish world peace, build a new chianti-spaghetti hybrid vehicle, and mix a perfect martini.
The aim of this section is to describe the range of test assertions developed for the EmotionML 1.0 Specification. The table lists all the assertions that were derived from the EmotionML 1.0 Specification.
The Assert ID column uniquely identifies the assertion. The Feature column indicates the specific elements or attributes which the test assertion applies to. The Spec column identifies the section of the EmotionML 1.0 Specification from which the assertion was derived. The REQ column is a Y/N value indicating whether the test assertion is for a feature which is required. The SUB column is a Y/N value indicating whether the test assertion is a subconstraint which is dependent on the implementation of the preceding non subconstraint feature test assertion. The Semantics column specifies the semantics of the feature or the constraint which must be met. The Result column will be annotated with the number of 'pass', 'fail', and 'not implemented' (P/F/NI) in the set of implementation reports.
Test assertions are classified into two types, basic test assertions which test for the presence of each feature, and sub constraints which only apply if that particular feature is implemented. Generally, sub constraints encode structural constraints that could not be expressed in the EmotionML schema. Sub constraints are marked with 'SUB CONSTRAINT:' in the Semantics field.
The most fundamental test of a conforming EmotionML implementation is that the EmotionML documents it utilizes must successfully validate with respect to the EmotionML XML Schema.
Assert ID | Feature | Spec | Req | Sub | Semantics | Results | ||
---|---|---|---|---|---|---|---|---|
P | F | NI | ||||||
Document structure | ||||||||
100 | [2.1.1] | Y | N | All EmotionML documents must validate against the XML schema. | ||||
101 | emotionml | [2.1.1] | Y | N | The root element of standalone EmotionML documents MUST be <emotionml>. | |||
102 | emotionml | [2.1.1] | Y | N | The <emotionml> element MUST define the EmotionML namespace: "http://www.w3.org/2009/10/emotionml". | |||
103 | emotion | [2.1.1] | N | N | The <emotionml> element MAY contain one or more <emotion> elements. | |||
104 | vocabulary | [2.1.1] | N | N | The <emotionml> element MAY contain one or more <vocabulary> elements. | |||
105 | info | [2.1.1] | N | N | The <emotionml> element MAY contain a single <info> element. | |||
110 | version | [2.1.1] | Y | N | The root element of a standalone EmotionML document MUST have an attribute "version". | |||
111 | version | [2.1.1] | Y | N | The "version" attribute of <emotionml> MUST have the value "1.0" | |||
112 | category-set | [2.1.1] | N | N | The <emotionml> element MAY contain an attribute "category-set". | |||
113 | category-set | [2.1.1] | Y | N | The "category-set" attribute of <emotionml>, if present, MUST be of type xsd:anyURI. | |||
114 | [2.1.1] | Y | Y | SUB CONSTRAINT: The "category-set" attribute of <emotionml>, if present, MUST refer to the ID of a <vocabulary> element with type="category". | ||||
115 | dimension-set | [2.1.1] | N | N | The <emotionml> element MAY contain an attribute "dimension-set". | |||
116 | dimension-set | [2.1.1] | Y | N | The "dimension-set" attribute of <emotionml>, if present, MUST be of type xsd:anyURI. | |||
117 | [2.1.1] | Y | Y | SUB CONSTRAINT: The "dimension-set" attribute of <emotionml>, if present, MUST refer to the ID of a <vocabulary> element with type="dimension". | ||||
118 | appraisal-set | [2.1.1] | N | N | The <emotionml> element MAY contain an attribute "appraisal-set". | |||
119 | appraisal-set | [2.1.1] | Y | N | The "appraisal-set" attribute of <emotionml>, if present, MUST be of type xsd:anyURI. | |||
120 | [2.1.1] | Y | Y | SUB CONSTRAINT: The "appraisal-set" attribute of <emotionml>, if present, MUST refer to the ID of a <vocabulary> element with type="appraisal". | ||||
121 | action-tendency-set | [2.1.1] | N | N | The <emotionml> element MAY contain an attribute "action-tendency-set". | |||
122 | action-tendency-set | [2.1.1] | Y | N | The "action-tendency-set" attribute of <emotionml>, if present, MUST be of type xsd:anyURI. | |||
123 | [2.1.1] | Y | Y | SUB CONSTRAINT: The "action-tendency-set" attribute of <emotionml>, if present, MUST refer to the ID of a <vocabulary> element with type="action-tendency". | ||||
124 | emotionml | [2.1.1] | N | N | The <emotionml> element MAY contain arbitrary plain text. | |||
150 | category | [2.1.2] | N | N | The <emotion> element MAY contain one or more <category> elements. | |||
151 | dimension | [2.1.2] | N | N | The <emotion> element MAY contain one or more <dimension> elements. | |||
152 | appraisal | [2.1.2] | N | N | The <emotion> element MAY contain one or more <appraisal> elements. | |||
153 | action-tendency | [2.1.2] | N | N | The <emotion> element MAY contain one or more <action-tendency> elements. | |||
154 | reference | [2.1.2] | N | N | The <emotion> element MAY contain one or more <reference> elements. | |||
155 | info | [2.1.2] | N | N | The <emotion> element MAY contain a single <info> element. | |||
156 | emotion | [2.1.2] | Y | N | The <emotion> element MUST contain at least one <category> or <dimension> or <appraisal> or <action-tendency> element. | |||
157 | emotion | [2.1.2] | N | N | The allowed child elements of <emotion> MAY occur in any order. | |||
158 | emotion | [2.1.2] | N | N | The allowed child elements of <emotion> MAY occur in any combination. | |||
159 | category-set | [2.1.2] | N | N | The <emotion> element MAY contain an attribute "category-set". | |||
160 | category-set | [2.1.2] | Y | N | The "category-set" attribute of <emotion>, if present, MUST be of type xsd:anyURI. | |||
161 | [2.1.2] | Y | Y | SUB CONSTRAINT: The "category-set" attribute of <emotion>, if present, MUST refer to the ID of a <vocabulary> element with type="category". | ||||
162 | dimension-set | [2.1.2] | N | N | The <emotion> element MAY contain an attribute "dimension-set". | |||
163 | dimension-set | [2.1.2] | Y | N | The "dimension-set" attribute of <emotion>, if present, MUST be of type xsd:anyURI. | |||
164 | [2.1.2] | Y | Y | SUB CONSTRAINT: The "dimension-set" attribute of <emotion>, if present, MUST refer to the ID of a <vocabulary> element with type="dimension". | ||||
165 | appraisal-set | [2.1.2] | N | N | The <emotion> element MAY contain an attribute "appraisal-set". | |||
166 | appraisal-set | [2.1.2] | Y | N | The "appraisal-set" attribute of <emotion>, if present, MUST be of type xsd:anyURI. | |||
167 | [2.1.2] | Y | Y | SUB CONSTRAINT: The "appraisal-set" attribute of <emotion>, if present, MUST refer to the ID of a <vocabulary> element with type="appraisal". | ||||
168 | action-tendency-set | [2.1.2] | N | N | The <emotion> element MAY contain an attribute "action-tendency-set". | |||
169 | action-tendency-set | [2.1.2] | Y | N | The "action-tendency-set" attribute of <emotion>, if present, MUST be of type xsd:anyURI. | |||
170 | [2.1.2] | Y | Y | SUB CONSTRAINT: The "action-tendency-set" attribute of <emotion>, if present, MUST refer to the ID of a <vocabulary> element with type="action-tendency". | ||||
171 | version | [2.1.2] | N | N | The <emotion> element MAY have an attribute "version". | |||
172 | version | [2.1.2] | Y | N | The "version" attribute of <emotion>, if present, MUST have the value "1.0". | |||
173 | id | [2.1.2] | N | N | The <emotion> element MAY contain an attribute "id". | |||
174 | id | [2.1.2] | Y | N | The "id" attribute of <emotion>, if present, MUST be of type xsd:ID. | |||
175 | start | [2.1.2] | N | N | The <emotion> element MAY have an attribute "start". | |||
176 | end | [2.1.2] | N | N | The <emotion> element MAY have an attribute "end". | |||
177 | duration | [2.1.2] | N | N | The <emotion> element MAY have an attribute "duration". | |||
178 | time-ref-uri | [2.1.2] | N | N | The <emotion> element MAY have an attribute "time-ref-uri". | |||
179 | time-ref-anchor-point | [2.1.2] | N | N | The <emotion> element MAY have an attribute "time-ref-anchor-point". | |||
180 | offset-to-start | [2.1.2] | N | N | The <emotion> element MAY have an attribute "offset-to-start". | |||
181 | expressed-through | [2.1.2] | N | N | The <emotion> element MAY have an attribute "expressed-through". | |||
182 | emotion | [2.1.2] | N | N | The <emotion> element MAY contain arbitrary plain text. | |||
Representations of emotions and related states | ||||||||
210 | category | [2.2.1] | Y | N | If the <category> element is used, a category vocabulary MUST be declared using a "category-set" attribute on either the enclosing <emotion> element or the root element <emotionml>. | |||
211 | name | [2.2.1] | Y | N | A category element MUST contain a "name" attribute. | |||
212 | [2.2.1] | Y | Y | SUB CONSTRAINT: The value of the "name" attribute of the <category> element MUST be contained in the declared category vocabulary. If both the <emotionml> and the <emotion> element has a "category-set" attribute, then the <emotion> element's attribute defines the declared category vocabulary. | ||||
213 | name | [2.2.1] | Y | N | For any given category name in the set, zero or one occurrence is allowed within an <emotion> element, i.e. a category with name "x" MUST NOT appear twice in one <emotion> element. | |||
214 | value | [2.2.1] | N | N | A <category> MAY contain a "value" attribute. | |||
215 | trace | [2.2.1] | N | N | A <category> MAY contain a <trace> element. | |||
216 | value / trace | [2.2.1] | Y | N | A <category> MUST NOT contain both a "value" attribute and a <trace> element. | |||
217 | confidence | [2.2.1] | N | N | A <category> element MAY contain a "confidence" attribute. | |||
220 | dimension | [2.2.2] | Y | N | If the <dimension> element is used, a dimension vocabulary MUST be declared using a "dimension-set" attribute on either the enclosing <emotion> element or the root element <emotionml>. | |||
221 | name | [2.2.2] | Y | N | A <dimension> element MUST contain a "name" attribute. | |||
222 | [2.2.2] | Y | Y | SUB CONSTRAINT: The value of the "name" attribute of the <dimension> element MUST be contained in the declared dimension vocabulary. If both the <emotionml> and the <emotion> element has a "dimension-set" attribute, then the <emotion> element's attribute defines the declared dimension vocabulary. | ||||
223 | name | [2.2.2] | Y | N | For any given dimension name in the set, zero or one occurrence is allowed within an <emotion> element i.e. a dimension with name "x" MUST NOT appear twice in one <emotion> element. | |||
224 | value / trace | [2.2.2] | Y | N | A <dimension> MUST contain either a "value" attribute or a <trace> element. | |||
225 | confidence | [2.2.2] | N | N | A <dimension> element MAY contain a "confidence" attribute. | |||
230 | appraisal | [2.2.3] | Y | N | If the <appraisal> element is used, an appraisal vocabulary MUST be declared using an "appraisal-set" attribute on either the enclosing <emotion> element or the root element <emotionml>. | |||
231 | name | [2.2.3] | Y | N | An <appraisal> element MUST contain the "name" attribute. | |||
232 | [2.2.3] | Y | Y | SUB CONSTRAINT: The value of the "name" attribute of the <appraisal> element MUST be contained in the declared appraisal vocabulary. If both the <emotionml> and the <emotion> element has an "appraisal-set" attribute, then the <emotion> element's attribute defines the declared appraisal vocabulary. | ||||
233 | name | [2.2.3] | Y | N | For any given appraisal name in the set, zero or one occurrence is allowed within an <emotion> element, i.e. an appraisal with name "x" MUST NOT appear twice in one <emotion> element. | |||
234 | value | [2.2.3] | N | N | An <appraisal> element MAY contain a "value" attribute. | |||
235 | trace | [2.2.3] | N | N | An <appraisal> element MAY contain a <trace> element. | |||
236 | value / trace | [2.2.3] | Y | N | An <apraisal> element MUST NOT contain both a "value" attribute and a <trace> element. | |||
237 | confidence | [2.2.3] | N | N | An <appraisal> element MAY contain a "confidence" attribute. | |||
240 | action-tendency | [2.2.4] | Y | N | If the <action-tendency> element is used, an action tendency vocabulary MUST be declared using an "action-tendency-set" attribute on either the enclosing <emotion> element or the root element <emotionml>. | |||
241 | name | [2.2.4] | Y | N | An <action-tendency> element MUST contain the "name" attribute. | |||
242 | [2.2.4] | Y | Y | SUB CONSTRAINT: The value of the "name" attribute of the <action-tendency> element MUST be contained in the declared action tendency vocabulary. If both the <emotionml> and the <emotion> element has an "action-tendency-set" attribute, then the <emotion> element's attribute defines the declared action tendency vocabulary. | ||||
243 | name | [2.2.4] | Y | N | For any given action tendency name in the set, zero or one occurrence is allowed within an <emotion> element, i.e. an action tendency with name "x" MUST NOT appear twice in one <emotion> element. | |||
244 | value | [2.2.4] | N | N | An <action-tendency> element MAY contain a "value" attribute. | |||
245 | trace | [2.2.4] | N | N | An <action-tendency> element MAY contain a <trace> element. | |||
246 | value / trace | [2.2.4] | Y | N | An <action-tendency> element MUST NOT contain both a "value" attribute and a <trace> element. | |||
247 | confidence | [2.2.4] | N | N | An <action-tendency> element MAY contain a "confidence" attribute. | |||
Meta-information | ||||||||
300 | confidence | [2.3.1] | Y | N | The value of the "confidence" attribute MUST be a floating point number in the closed interval [0, 1]. | |||
301 | expressed-through | [2.3.2] | Y | N | The attribute "expressed-through" of the <emotion> element, if present, MUST be of type xsd:nmtokens. | |||
302 | info | [2.3.3] | N | N | The <info> element MAY contain any elements with a namespace different from the EmotionML namespace, "http://www.w3.org/2009/10/emotionml". | |||
303 | info | [2.3.3] | N | N | The <info> element MAY contain arbitrary plain text. | |||
304 | info | [2.3.3] | Y | N | The <info> element MUST NOT contain any elements in the EmotionML namespace, "http://www.w3.org/2009/10/emotionml". | |||
305 | id | [2.3.3] | N | N | The <info> element MAY contain an attribute "id". | |||
306 | id | [2.3.3] | Y | N | The "id" attribute of the <info> element, if present, MUST be of type xsd:ID. | |||
References and time | ||||||||
410 | uri | [2.4.1] | Y | N | The <reference> element MUST contain a "uri" attribute. | |||
411 | uri | [2.4.1] | Y | N | The "uri" attribute of <reference> MUST be of type xsd:anyURI. | |||
412 | [2.4.1] | N | Y | SUB CONSTRAINT: The URI in the "uri" attribute of a <reference> element MAY be extended by a media fragment. | ||||
413 | role | [2.4.1] | N | N | The <reference> element MAY contain a "role" attribute. | |||
414 | role | [2.4.1] | Y | N | The value of the "role" attribute of the <reference> element, if present, MUST be one of "expressedBy", "experiencedBy", "triggeredBy", "targetedAt". | |||
415 | media-type | [2.4.1] | N | N | The <reference> element MAY contain a "media-type" attribute. | |||
416 | media-type | [2.4.1] | Y | N | The value of the "media-type" attribute of the <reference> element, if present, MUST be of type xsd:string. | |||
417 | [2.4.1] | Y | Y | SUB CONSTRAINT: The value of the "media-type" attribute of the <reference> element, if present, MUST be a valid MIME type. | ||||
420 | start | [2.4.2] | Y | N | The value of the "start" attribute of <emotion>, if present, MUST be of type xsd:nonNegativeInteger. | |||
421 | end | [2.4.2] | Y | N | The value of the "end" attribute of <emotion>, if present, MUST be of type xsd:nonNegativeInteger. | |||
422 | duration | [2.4.2] | Y | N | The value of "duration" attribute of <emotion>, if present, MUST be of type xsd:nonNegativeInteger. | |||
423 | time-ref-uri | [2.4.2] | Y | N | The value of the "time-ref-uri" attribute of <emotion>, if present, MUST be of type xsd:anyURI. | |||
424 | time-ref-anchor-point | [2.4.2] | Y | N | The value of the "time-ref-anchor-point" attribute of <emotion>, if present, MUST be either "start" or "end". | |||
425 | offset-to-start | [2.4.2] | Y | N | The value of the "offset-to-start" attribute of <emotion>, if present, MUST be of type xsd:integer. | |||
Scale values | ||||||||
500 | value | [2.5.1] | Y | N | The value of a "value" attribute, if present, MUST be a floating point value from the closed interval [0, 1]. | |||
501 | freq | [2.5.2] | Y | N | The <trace> element MUST have a "freq" attribute. | |||
502 | freq | [2.5.2] | Y | N | The value of the "freq" attribute of <trace> MUST be a positive floating point number followed by optional whitespace followed by "Hz". | |||
503 | samples | [2.5.2] | Y | N | The <trace> element MUST have a "samples" attribute. | |||
504 | samples | [2.5.2] | Y | N | The value of the "samples" attribute of <trace> MUST be a space-separated list of floating point values from the closed interval [0, 1]. | |||
Defining vocabularies for representing emotions | ||||||||
600 | item | [3.1.1] | Y | N | A <vocabulary> element MUST contain one or more <item> elements. | |||
601 | info | [3.1.1] | N | N | A <vocabulary> element MAY contain a single <info> element. | |||
602 | type | [3.1.1] | Y | N | A <vocabulary> element MUST contain a "type" attribute. | |||
603 | type | [3.1.1] | Y | N | The value of the "type" attribute of the <vocabulary> element MUST be one of "category", "dimension", "action-tendency" or "appraisal". | |||
604 | id | [3.1.1] | Y | N | A <vocabulary> element MUST contain an "id" attribute | |||
605 | id | [3.1.1] | Y | N | The value of the "id" attribute of the <vocabulary> element MUST be of type xsd:ID . | |||
606 | info | [3.1.2] | N | N | An <item> element MAY contain a single <info> element. | |||
607 | name | [3.1.2] | Y | N | An <item> element MUST contain a "name" attribute. | |||
608 | name | [3.1.2] | Y | N | An <item> MUST NOT have the same name as any other <item> within the same <vocabulary>. | |||
Conformance | ||||||||
700 | [4.1] | Y | N | All EmotionML elements MUST use the EmotionML namespace, "http://www.w3.org/2009/10/emotionml". |
The following XML should be used as a template for providing an implementation report.
<system-report name="YOUR-SYSTEM-NAME-HERE"> <testimonial>YOUR-WELL-FORMED-TESTIMOMIAL-CONTENT-HERE</testimonial> <assert id="100" res="pass|fail|not-impl">OPTIONAL-NOTES-HERE</assert> </system-report>
The Multimodal Working Group would like to acknowledge the contributions of several individuals: