New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Need algorithm to determine profile in absence of ttp:profile property. #111
Comments
What use case do you have in mind? |
All processing. If you don't know whether text or image profile applies, On Sun, Dec 6, 2015 at 12:06 AM, Pierre-Anthony Lemieux <
|
Also, I would suggest a simple algorithm: if tts:profile is not specified, then the text profile applies. |
This may be a silly question but if there's no ttp:profile attribute AND no ebuttm:conformsToStandard element, then how do you know you're dealing with an IMSC document at all? Is this in the case that a validator for example is configured to validate a provided document against IMSC [any profile]? If so, what would be the impact of requiring that the validator be configured to validate more specifically against either IMSC Text Profile or IMSC Image Profile? |
In the case of TTV, the user specifies a parameter that tells it to <tt ... xmlns:ttva="http://skynav.com/ns/ttv/annotations" ttva:model= This tells TTV (a generic TTML processor) to behave as a generic IMSC However, that is not sufficient information to perform validation. And, A [presentation processor which effectively requires answering the question "which profile applies?" Without a well defined algorithm to answer this question, then we end up
This would be a very bad design indeed. My proposal for an algorithm is quite simple: "If no ttp:profile attribute is present, then the text profile applies." This nicely handles the case of an EBU-TT targeted document (that may use On Mon, Dec 7, 2015 at 1:43 AM, nigelmegitt notifications@github.com
|
I see what you mean, however I think there remains another interpretation: that it is reasonable to have a [ presentation | transformation ] processor that conforms to just one of the profiles, which is my interpretation of the phrase "conforms to a profile". In other words, there's no real concept of a generic IMSC 'any profile' processor, and there's no wording that defines the conformance of a processor that can handle any document in either profile. It's clear that there are 2 separate profiles in IMSC. Having said that, if you really want to derive the profile as the first step in generic IMSC processing, then I support the algorithm you've described. |
As I said, absent the algorithm, one cannot create a generic IMSC processor IMO, defining such an algorithm is not an option. As for the concept of a generic IMSC processor, although not explicitly A [ presentation processor does not restrict a processor to conforming to only one of the defined It is useful to note as well that nowhere in the IMSC specification is it On Mon, Dec 7, 2015 at 8:49 AM, nigelmegitt notifications@github.com
|
I'm reading the text you've quoted differently from you @skynavga . I think the text you've quoted says exactly that an IMSC processor is required to conform to at least one IMSC profile, though I do agree that it does not say that it must conform to any (i.e. "all") profiles. If there's an issue here it is that the one:one vs one:two mapping between processor and profiles is unclear. I do support the idea that a processor should ideally be able to derive the profile from the document, which is e.g. Cyril's use case. I just don't believe that there's a requirement that every IMSC processor be able to handle both profiles. So in conclusion I don't object to adding the proposed algorithm, but I do object to requiring the existence of generic IMSC processors, and I think it's valid to create a workflow for documents of a single profile, with processors that only know how to deal with that profile. |
On Mon, Dec 7, 2015 at 9:59 AM, nigelmegitt notifications@github.com
|
@skynavga apologies if I'm being slow but I'm struggling to spot the point you're making here. Is it that in:
the terms are not preceded by "IMSC"? My reasoning is that a processor that supports neither profile is by definition not a processor that conforms to the IMSC specification and is therefore not something with which we need to be concerned.
Okay, that was the only interpretation I could think of for the issue you described, but happy that's not what you meant.
You described the use case where you have a "generic IMSC processor" - as far as I can tell that's not something that the specification defines anywhere or is intended to support. Furthermore the two profiles are mutually incompatible in the sense that the only documents that conform to both profiles have no content in them. An image profile document that contains/references an image cannot conform to the text profile and a text profile document that contains text cannot conform to the image profile. |
On Tue, Dec 8, 2015 at 4:48 AM, nigelmegitt notifications@github.com
IMSC Processor A presentation or transformation processor that
|
On Tue, Dec 8, 2015 at 4:48 AM, nigelmegitt notifications@github.com
|
I'd like @palemieux 's view here. The issue I'm seeing is (as raised) whether we need 1) to define an algorithm for a processor that is configured to expect "IMSC" documents to deduce which profile to use, as opposed to 2) if we can reasonably expect processors to be configured either for "IMSC Text" or "IMSC Image". I'm comfortable with the option 2) right now, and in a broadcast workflow I would strongly prefer it because I would not want for example a supplier to switch between profiles used for delivered subtitle documents on an ad hoc basis and for validators to pass documents of either profile in the same workflow. Others may take a different view. |
On Tue, Dec 8, 2015 at 8:52 AM, nigelmegitt notifications@github.com
|
From where does your expectation that there should be a generic IMSC processor derive? If we'd split IMSC in two separate documents one for each profile would you still be implementing a single validator for both? I'm not seeing the logical distinction between what we have now and that scenario. Having said all that, I'm still happy with the algorithm you've proposed! |
On Wed, Dec 9, 2015 at 2:31 AM, nigelmegitt notifications@github.com
I find it very odd that anyone would question the existence of such a
|
The specification does not define a generic IMSC1 processor: it defines an IMSC1 Image Profile processor and an IMSC1 Text Profile processor. In absence of
I do not see a single solution fitting all scenarios. We could describe a few examples if it helps. |
It is very simple, override the language in TTML1: If neither ttp:profile That is, repeat the same text as above except substitute "IMSC1 Text On Wed, Dec 9, 2015 at 7:24 PM, Pierre-Anthony Lemieux <
|
You will need to do further edits to this, but you get the idea. On Wed, Dec 9, 2015 at 7:50 PM, Glenn Adams glenn@skynav.com wrote:
|
Well... the proposed approach is not always appropriate IMHO: for instance, an authoring program might simply refuse to consider a document to be an IMSC1 Text or Image Profile document (and instead process it using the DFXP Transformation processor profile) unless explicitly instructed to. In other words, fallback to IMSC1 Text Profile is not always the right approach if the processor cannot determine conformance to either IMSC1 Text or Image Profile. |
On Wed, Dec 9, 2015 at 8:23 PM, Pierre-Anthony Lemieux <
Consider it a formal objection on the behalf of SKYNAV if no fallback is
|
Do you have an objection to the TTML1 fallback mechanism applying, i.e. DFXP Transformation processor profile, if no determination is made on whether the document conforms to IMSC1? |
On Thu, Dec 10, 2015 at 6:52 AM, Pierre-Anthony Lemieux <
|
The specification does not specify "an IMSC1 document", only an IMSC1 Text Profile document and an IMSC1 Image Profile document. An algoriithm using the presence of |
Examples are not sufficient, a normative algorithm is required. And it I'm getting a little tired arguing this point. Please just do as I ask and On Thu, Dec 10, 2015 at 9:34 AM, Pierre-Anthony Lemieux <
|
The proposed text at #111 (comment) ? If so, the proposed text is inadequate since a fallback to Text Profile is not appropriate in all circumstances, and cannot be compelled by "SHALL" language. What situation are you trying to prevent by proposing this language? Perhaps you have another proposal? |
On Thu, Dec 10, 2015 at 10:36 AM, Pierre-Anthony Lemieux <
If the ttp:profile attribute is not present in a Document Instance, and If so, the proposed text is inadequate since a fallback to Text Profile is
|
In fact, IMSC1 cannot define the fallback as Text Profile since a Document Instance that does not conform to Image and Text Profile can in fact conform to another specification, e.g. EBU-TT-D. In other words, this specification applies only if the Instance Document is determined to be Text Profile or Image Profile.
You will need to be more specific. In what interchange scenario would the absence of a fallback be harmful? |
On Thu, Dec 10, 2015 at 11:57 AM, Pierre-Anthony Lemieux <
|
Here's an alternative proposal, not fleshed out as a pull request, but just to test the concept before going to a load of effort for something that will be rejected a priori:
This would be two algorithms, one for each profile. There is no such grouping as generic IMSC - any processor being told to process a document as "IMSC" has been mis-configured. |
No, this isn't adequate or desirable. See more below. On Tue, Dec 15, 2015 at 10:35 AM, nigelmegitt notifications@github.com
|
Well you seem to be stuck on the idea that a generic "IMSC processor" must exist. And you seem to be the only person on this discussion with this viewpoint. There's nothing in the IMSC specification that defines a generic IMSC concept, and I would object to adding it. I don't have any problem with the idea that a processor can support both IMSC text profile and IMSC image profile documents, and agree that such a processor would need somehow to know what it is processing, but that construct (a processor that supports both) is not a matter for the specification.
At some level every algorithm is a variant on a heuristic, since what the document claims may not match the reality - you can construct a document that claims to be a text profile document but that includes images; in reality it would not be valid against either IMSC profile but you would only know that by attempting to validate it fully. Since all the proposed mechanisms other than 'external context' involve examining the document they're all sniffers.
You can iterate through each 'profile identification algorithm' in turn until you have sufficient confidence in the outcome. Each profile has its own algorithm in this case, based on specific values of e.g. My proposal was designed to provide some mechanisms for processors to identify profile by examining the document, which is what I understand the requirement to be. If that doesn't help you then I suggest we take no action and reluctantly carry your objection forward as unresolved. We have no consensus right now on any resolution to this issue, and we do not even have consensus on the predicate of the issue. |
On Wed, Dec 16, 2015 at 4:22 AM, nigelmegitt notifications@github.com
As for the existence or expectation of existence of a multiple-profile IMSC If you don't mind going to the director with a Formal Objection I don't have any problem with the idea that a processor can support both
Why are you assuming that a single-profile processor is defined (when it is
"If no tts:profile is specified, then the text profile applies." All you have offered is a more complex approach that may require parsing
|
In the interest of moving this process forward, I will offer a revised Add to Section 3: Single-Profile Processor. A Processor that supports one and only one of the Multiple-Profile Processor. A Processor that supports both of the profiles Add to Section 5.1 (or wherever deemed appropriate): A Single-Profile Processor shall process a Document Instance in accordance A Multiple-Profile Processor shall process a Document Instance in Note: A Document Interchange Context can obtain profile metadata by On Wed, Dec 16, 2015 at 9:13 AM, Glenn Adams glenn@skynav.com wrote:
|
Thanks for the revised proposal. The following drawbacks remain in my opinion:
Overall, a single algorithm will not fit all applications. IMSC1 could nevertheless:
See also #111 (comment) and #111 (comment) |
see inline below; overall, none of these comments suggest technical On Thu, Dec 17, 2015 at 10:52 PM, Pierre-Anthony Lemieux <
the goal of defining a fallback default is not to correctly answer the
NOTE This specification does not specify presentation processor
IMSC1 could nevertheless:
requiring ttp:profile for image profile documents would never conflict with
|
Status update: this issue has not been concluded and remains open; in the meantime we have requested a transition of IMSC 1 to a new Candidate Recommendation, with Skynav's formal objection carried up to the Director. We can continue to work on this issue to reach a solution that everyone can accept. In fact by the Process we must do that since we cannot move to Proposed Recommendation with any unresolved issues remaining. |
Based on further discussions, I propose a resolution to this issue as indicated below. I wish I could express in a more simple fashion; however, without delineating the various forks in the decision tree, the result would remain ambiguous. I am not entirely certain that I've take care of all ambiguity here, so if you find something questionable, please say so. Note that this new proposed language does not make use of any of the terms previously proposed, such as Single- or Multiple-Profile IMSC Processor, and is written in a generic fashion to handle all foreseeable implementation options. The only external terms referenced are "Document Interchange Context" and "Document Processing Context", both of which are defined in TTML1 2Ed. I would note that the terms "interoperable", "feasibly interoperable", and "compatible" remain undefined. I don't propose that we attempt to pin these down more precisely, as it would be time consuming and probably error prone. Notwithstanding a precise definition, these terms should have a reasonable operational interpretation in the mind of the reader. Add new section 6.10 "Profile Resolution Semantics" containing the following:
_ |
Below is an edited proposal intended to:
The Processor SHOULD determine the profiles to which the Instance Document conforms ("resolved profiles") using, in order of preference:
If one of the resolved profile is a profile supported by the Processor, then the Processor SHOULD process the document instance according to the resolved profile. If none of the resolved profiles are supported by the Processor but one resolved profile is feasibly interoperable with the Text Profile, then the Processor SHOULD process the document instance as if it conforms to the Text Profile. If none of the resolved profiles are supported by the Processor but one resolved profile is feasibly interoperable with the Image Profile, then the Processor SHOULD process the document instance as if it conforms to the Image Profile. If the resolved profiles are undetermined or none of the resolved profiles is supported by the processor, then the Processor SHOULD nevertheless process the document instance using one of its supported profile, with a preference for the Text Profile over the Image Profile. As a last resort, the Processor SHOULD abort processing. |
Below is a revised proposal based on 20160204 TTWG meeting and further input from @nigelmegitt and @skynavga PROFILE RESOLUTION SEMANTICS For the purpose of content processing, the determination of resolved profile SHOULD take into account both the signaled profile, as defined by Section 6.9, and profile metadata, as designated by either (or both) the Document Interchange Context or (and) the Document Processing Context, which MAY entail inspecting document content. If the resolved profile is a not a profile supported by the Processor but is feasibly interoperable with the Text Profile, then the resolved profile is the Text Profile; otherwise, if the resolved profile is a not a profile supported by the Processor but is feasibly interoperable with the Image Profile, then the resolved profile is the Image Profile. If the resolved profile is a profile supported by the Processor, then the Processor SHOULD process the document instance according to the resolved profile. If the resolved profile is neither Text Profile nor Image Profile, processing is outside the scope of this specification. If the resolved profile is undetermined or not supported by the processor, then the Processor SHOULD nevertheless process the document instance using one of its supported profiles, with a preference for the Text Profile over the Image Profile; otherwise, processing MAY be aborted. |
LGTM On Thu, Feb 4, 2016 at 10:38 AM, Pierre-Anthony Lemieux <
|
LGTM |
Would really appreciate your views on #111 (comment), @TairT and @cconcolato (as well as everyone else of course). |
Fine with me. |
Addresses #111 ("Need algorithm to determine profile in absence of ttp:profile property")
An algorithm is necessary to be able to deterministically which profile applies to an IMSC conformant document in the absence of a ttp:profile attribute.
The text was updated successfully, but these errors were encountered: