- From: Jan-Ivar Bruaroey <jib@mozilla.com>
- Date: Mon, 04 Aug 2014 13:45:04 -0400
- To: Martin Thomson <martin.thomson@gmail.com>
- CC: "public-media-capture@w3.org" <public-media-capture@w3.org>
- Message-ID: <53DFC6A0.4020605@mozilla.com>
On 8/1/14 2:29 AM, Martin Thomson wrote: > On 31 July 2014 17:13, Jan-Ivar Bruaroey <jib@mozilla.com> wrote: >> A plain value literally is mutually exclusive with {}, almost exactly like >> specifying a value is mutually exclusive with providing ranges and/or hints >> for that value. To me it reads as "just this value please", yet users may >> get cameras that are not 1280 wide or 1.78 aspect here, even though these >> values are specified in the top "required" section. > The top section is not "required". Well, min, max and "exact" values only take on the meaning of being required when used in the top section, whereas in the advanced array they are optional: Constraint modifier: Top-level: Advanced-array: Min mandatory optional Max mandatory optional Exact mandatory optional Ideal ideal undefined I believe In other words, our constraint-modifiers have different semantics in different places. We need meaningful ways to talk about this locative difference or our semantics are going to be hard to describe. I agree with you that I cannot now call it the "required" section, indeed that is my complaint. I'm bemoaning the lack of consistency we bring by effectively inverting the intuitive meaning of plain values. Surely it follows that this complicates our semantics when we cannot refer to the top-level as something functionally informative like the "required" section. > And "please" is the perfect way to phrase a request (as opposed to a demand). I find it works for demands as well. It never hurts to be polite. ;-) >> Add to this that plain values in the advanced array are not ideal, and it's >> a semantic mess. > I think that bare values could equal anything and we get the same. Hopefully I've disproved this above (i.e. follow pattern = less mess), but if not: That the "exact" keyword would disappear from the vocabulary if we followed the pattern, should be a simplification in itself, as today it exists solely to support the inversion. And this needlessly complicates enum series: Whereas a range of scalar values are implicitly mandatory, a series of multiple enumerated values are now not: foo: { min: 3, max: 5}, // is implicitly mandatory bar: ["third", "fourth", "fifth" ], //is implicitly ideal which is confusing I think. > Besides, anything in the advanced array is closer to ideal than a hard > requirement, since if the set of values can't be achieved, it moves on > to the next option. Ideal and optional are not the same thing. In the "min distance" algorithm recently posted, ideal does not act like a constraint or interact locally with other constraint-modifiers around it, and is instead considered globally as a property at the very end of everything, after the advanced array has completed. I think of it as gravy rather than a constraint, as in: narrow down sources by all (real) constraints first, and, gravy!, more than one, cherry-pick the best of all. In the advanced array on the other hand, all rules are local to the entry being considered and all constraints interact equally, whether they are min, max, or plain values. This is important because all constraints within a single entry must be satisfied for that entry to be applied, so thinking about plain values as ideal would be a mistake here. Example: advanced: [ { width: { min: 100, max: 1000 },frameRate: 0 } ] Would never apply the width constraint. FrameRate=0 is an equal requirement, not a would-be-nice. So while optional and ideal may have similar outcomes, they have different semantics. Lastly, there's the wort that exact and ideal have no meaning in the advanced array while their siblings min and max do. >> Is it truly too late to rectify this? > It's never too late to fix actual problems. We just have to agree > that there is an actual problem. I don't see an actual problem here. I'd feel better if we could get to: yes we agree the semantics are harder, but we think the benefits outweigh the complexity. Just to rule out miscommunication. .: Jan-Ivar :.
Received on Monday, 4 August 2014 17:45:36 UTC