{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/imsc/issues/125","labels_url":"https://api.github.com/repos/w3c/imsc/issues/125/labels{/name}","comments_url":"https://api.github.com/repos/w3c/imsc/issues/125/comments","events_url":"https://api.github.com/repos/w3c/imsc/issues/125/events","html_url":"https://github.com/w3c/imsc/issues/125","id":123059737,"number":125,"title":"Unable to normatively determine non-conformance when testing content constraints.","user":{"login":"skynavga","id":377455,"avatar_url":"https://avatars.githubusercontent.com/u/377455?v=3","gravatar_id":"","url":"https://api.github.com/users/skynavga","html_url":"https://github.com/skynavga","followers_url":"https://api.github.com/users/skynavga/followers","following_url":"https://api.github.com/users/skynavga/following{/other_user}","gists_url":"https://api.github.com/users/skynavga/gists{/gist_id}","starred_url":"https://api.github.com/users/skynavga/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skynavga/subscriptions","organizations_url":"https://api.github.com/users/skynavga/orgs","repos_url":"https://api.github.com/users/skynavga/repos","events_url":"https://api.github.com/users/skynavga/events{/privacy}","received_events_url":"https://api.github.com/users/skynavga/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/w3c/imsc/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-12-19T03:55:13Z","updated_at":"2016-02-01T07:41:31Z","closed_at":null,"body":"At present, IMSC1 says the following (in Section 3) regarding non-conforming content:\r\n\r\n\"NOTE This specification does not specify presentation processor or transformation processor behavior when processing or transforming a non-conformant Document Instance.\"\r\n\r\nAt the same time, IMSC1 specifies many normative constraints on content. As a result of there being no defined behavior in the case of content non-conformance, it is effectively impossible to test these normative constraints in an interoperable manner. For example, one processor may simply ignore non-conforming content, in part or in whole, while another processor may attempt to detect non-conformance and issue a warning to the end user or abort processing.\r\n\r\nDue to this situation, one must question to what extent the IMSC1 specification is complete and testable.\r\n\r\nThis uncertainty may be eliminated by adding the following normative language:\r\n\r\n\"If a presentation or transformation processor is also a validating content processor, then when processing a non-conforming Document Instance, the following semantics shall apply:\r\n\r\n* if validation is disabled or is otherwise not performed, then subsequent processing behavior is not defined;\r\n* otherwise, processing shall depend upon the value of the application parameter *validationActionMode* as follows:\r\n  * if 'abort', then processing shall be aborted;\r\n  * if 'warn', then the end-user should be warned, with an option to abort or ignore;\r\n  * if 'ignore', then should not abort or warn end-user;\r\n\r\nThe value of the *validationActionMode* application parameter may be determined by the document processing context, and, if not set, shall assume the value 'abort'.\r\n\r\nIf processing is not aborted in the case of a non-conforming Document Instance, then further processing behavior is not defined by this specification.\r\n\r\nNote: A processor may choose to attempt to recover from a non-conforming Document Instance by discarding or ignoring content until normal processing can continue.\"\r\n\r\nand, further, revising the above cited NOTE in Section 3 to read as follows:\r\n\r\n\"NOTE This specification does not specify presentation processor or transformation processor behavior when processing or transforming a non-conformant Document Instance when the processor is not a validating content processor.\"\r\n\r\nThe above proposal is conceptually based on new features in TTML2 intended to deal with content conformance semantics, e.g., see [1][2], but does so without resorting to use of any of the new TTML2 vocabulary.\r\n\r\n[1] https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html#profile-attribute-validation\r\n[2] https://dvcs.w3.org/hg/ttml/raw-file/default/ttml2/spec/ttml2.html#profile-attribute-validationAction\r\n\r\nAs such, adding this in IMSC1 will improve our ability to verify the many normative statements in IMSC1 regarding content constraints, and do so in an interoperably testable manner. We can make available an additional set of test content that contains one or more tests for every content constraint specified in IMSC1.\r\n"},"comment":{"url":"https://api.github.com/repos/w3c/imsc/issues/comments/177827736","html_url":"https://github.com/w3c/imsc/issues/125#issuecomment-177827736","issue_url":"https://api.github.com/repos/w3c/imsc/issues/125","id":177827736,"user":{"login":"tairt","id":4597762,"avatar_url":"https://avatars.githubusercontent.com/u/4597762?v=3","gravatar_id":"","url":"https://api.github.com/users/tairt","html_url":"https://github.com/tairt","followers_url":"https://api.github.com/users/tairt/followers","following_url":"https://api.github.com/users/tairt/following{/other_user}","gists_url":"https://api.github.com/users/tairt/gists{/gist_id}","starred_url":"https://api.github.com/users/tairt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tairt/subscriptions","organizations_url":"https://api.github.com/users/tairt/orgs","repos_url":"https://api.github.com/users/tairt/repos","events_url":"https://api.github.com/users/tairt/events{/privacy}","received_events_url":"https://api.github.com/users/tairt/received_events","type":"User","site_admin":false},"created_at":"2016-02-01T07:41:31Z","updated_at":"2016-02-01T07:41:31Z","body":"Normative constraints are the core of technical specifications but to my knowledge not all of them normativly define how this constraints shall be tested. These specs are nevertheless testable. \r\n\r\nI question the usefulness of defining a normative validation behaviour for a validating IMSC 1 processor. This would make processors that do not follow this strategy (e.g. a simple XML Schema based processor) either a \"non conformant validating IMSC processor\" or may not be named a validation IMSC processor at all.\r\n\r\n "}}