-
Notifications
You must be signed in to change notification settings - Fork 132
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
define "independent" #167
Comments
Indeed, are two implementations that don't share code, were written by different engineers, but are from the same company, 'independent'? (We have this case in WebVTT). If the same consultant wrote different implementations for two different companies, are they 'independent'? And so on. Saying a little what the goal of 'independence' is would be good (presumably, that the spec. is clear enough that implementations by people who merely read the spec. and didn't talk much to each other nonetheless interoperate). |
A feature of the process is to allow the Director to apply judgment rather than rigorously defining every term. The problem with the latter is that it sometimes locks you in to a definition - and then a new case arrives which "should" be viewed as independent, but is somewhat different in its details. Before we change this it would be useful to have some use cases where this has been a problem in the past. |
@jeffjaffe This should be an objective determination, rather than being one person's subjective decision. Members may not be comfortable with the Director (or any other person) making an individual determination regarding IP rights that will affect all members. I agree that it would help to look at use cases to help define the parameters of an independent implementation. |
The term is used in a series of non-exhaustive examples and as a description of the goal, to show that a specification is sufficiently clear, complete, and relevant to market needs, to ensure that independent interoperable implementations of each feature of the specification will be realized." On which of those do you want more clarity? |
Hi @wseltzer I was thinking about the independence of implementations mainly. If the definition for that differs from the definition of other usages of the term, then that's another good reason for adding further clarification. |
Has this been a problem in practice? if you can share a pointer to that discussion, it might help to indicate what clarity would help in the future. |
@dwsinger wrote:
That is exactly the goal, and why "independent" is hard to define here. It is probably not even a useful term, but it came with the old language that was even less about relevance to reality and more about being able to check some boxes and say "we met the criteria". |
I think I've made this point before, maybe in another thread. This language is a legacy of the "waterfall" era when the accepted work mode was to collaborate on an authoritative spec, then independently develop proprietary implementations. If the spec wasn't clear enough for at least 2 independent implementations of a feature to interoperate, that is evidence that the spec is not good enough. That's still a useful criterion in situations where there are independent implementations, but we can't let it get in the way of the more common collaboration mode these days to collaborate on code and then document and standardize the "interoperability surface" APIs/protocols/formats. Even when there are multiple open source implementations such as the browser engines, they tend to look at each others code so demanding "independent" implementation experience would inhibit standardization. So I agree with Chaals; it's probably not a useful term in the process document anymore. Or it is a useful abstract goal, but it's not a useful constraint on proving standards readiness. We've moved from a philosophy of "tests prove whether the spec is clear enough to implement" to "tests prove whether the spec is a good description of what interoperates across implementations". |
This is a case-by-case determination for the Director, who is willing to discuss it with WG participants as needed, but we don't think adding more to the Process will be helpful. |
@nigelmegitt I am preparing a Disposition of Comments for this year's iteration on the Process. It was decided not to address this in Process 2019. Since you raised the initial issue, I would appreciate if you can let us know if this is something you can live with, or if you wish to object to. |
Hi @frivoal clearly it is possible to live with this, since W3C has been doing so for some time. So an objection seems too strong and I won't object. I would like to register that the issue has not been resolved however. Indeed, given the recent announcement by Microsoft about Edge, the question of independence of implementation seems more relevant than ever. Perhaps this is a wider topic that should be raised with the AC or the AB: what is important to W3C here? |
Thanks for the clarification. You make a good point, and I have raised an issue in the private AB tracker to think through what the decreasing diversity in browser engines meant for us. |
For the record, the labels "Closed: rejected" and "Commenter satisfied" do a very bad job at reflecting the status of this issue and of my response. I am not satisfied, I just don't want to object to Process 2019 on that basis. I would prefer that we consider it to be deferred pending further discussion, i.e. moved away from Process 2019, to reflect the purpose noted in #167 (comment). |
Point taken. Separately from whether this should be deferred rather than rejected,
I was just labeling issues after the fact, and this was just closed. I wasn't following this when the decision to close was taken (and I am not chair). @dwsinger with your chair hat on, is this deferred or rejected? |
I believe that Wendy maintained, and the process CG agreed, that defining 'independent' clearly in the process would be hard, and take too much text. But indeed somewhere we need explanation or guidance. |
I think the problem is with the Or the issue could be closed with a reference to a new issue specifically opened against a future process milestone, in which case closing this issue would be acceptable because the problem itself is still being tracked and worked on. I don't really like tracing through histories that span issues though. |
I'm fine with leaving this open until such time as we understand how/where this is documented and defined. re-opening. |
@datbossg31030 Please could you elaborate a little more? I don't understand this comment as it is. |
So there are a few characteristics of standards that I think are valuable that I think the independence of the implementations helps verify. But those different characteristics depend on different definitions:
I'm sure there are also more that I haven't listed here. We seem to have settled on two independent implementations as the threshold for advancement to Proposed Recommendation. It's a clear threshold, but at the same time, for many of these things, three is better than two, etc. But if needed, more can also come after a specification advances to Proposed Recommendation. |
@dbaron I agree with your list, and that for many of these criteria, 3 or more is better than two. The harder (to me) question is what to do when something has many deployments and broad adoption but only one implementation, such as the case where a single open source library is used by everybody to implement a particular feature. This gives evidence to your point 3: even if they didn't implement it independently, multiple organizations found it worth shipping, and multiple organizations may have been willing to spend resources on developing / bugfixing the shared implementation. The fact that it is adopted in multiple products also gives some evidence for point 2: if the spec and library could be used in multiple products, then that gives some assurance about too strong assumptions about a particular product architecture. For point 1, it's fuzzy: while it's a single open source library, its various contributors, who may not be strongly coordinated, have settled on one interpretation of the spec. It may be by accident, the spec may still be ambiguous, etc, but it's better than nothing. In particular, if there are tests and the test have either been authored or reviewed by someone other than the implementer, this could have given the chance to notice any discrepancy between the spec and the implementation. It's not as strong as multiple implementations, but it's better than what a single closed-source implementation without a shared test suite would be. For point 4, it's pretty bad: if that particular implementation turns out to have some bad security flaw, there's nothing you can switch to, without starting a new implementation at that point. That ought to be doable thanks to point 1 through 3, but it's not as good as knowing something already is available and could be adopted. To, what this means is that for a standalone product implementing on its own a spec, we absolutely need more than one implementation to be able to graduate to PR and beyond. But for when a spec corresponds to a feature inside a product rather than to the entirety of the product, multiple independent implementations are still desirable, but multiple integrations of a single implementation (or of several implementations which aren't fully independent) may be tolerable, even if it is not as good. |
will work on a guidlines document as an intermediate document |
See also #522 |
In particular: #522 (comment) |
Breakout session at TPAC 2022: https://www.w3.org/2022/09/14-iii-minutes.html |
Thanks for the link to the breakout session. There seems to have been at least 3 different views expressed about what it should take to get to Recommendation:
Is that a reasonable summary? |
from https://www.w3.org/2023/01/11-w3process-minutes.html |
I don't think so, no, specifically because of the conjunction of "implemented" and "deployed in the real world" at step 3. Deployment should be broken out into a separate bullet, since it is independent from "implementation". There are many examples where standards work precedes deployment, and this is the reality of the commercial world: folk don't want to commit to something that it not yet standardised (whatever that means to them), even if they would support that standardisation activity and agree that the result would be beneficial. |
I've recently had cause to discuss what the Process's use of the term "independent" means, as applying to implementation experience.
The term is not defined in the Process, and some folk might want to bend what I consider to be a common sense interpretation to meet their own objectives. (Or maybe they have the common sense and I'm the one bending the interpretation!) There's room for clarification in relation to the following aspects:
I'm sure that the Director has some meaning of "independent" in mind; it would be helpful at least to set out some guidance, even if not to lock it down to a tight definition.
The text was updated successfully, but these errors were encountered: