[x3d-public] X3D4 finalization endgame: Field naming reconciliation as synonyms

Don Brutzman brutzman at nps.edu
Sun Nov 29 07:10:28 PST 2020


Thank you for considering the implications.

On 11/28/2020 8:30 PM, John Carlson wrote:
> 
> I believe I can make appropriate changes to various shims, fieldTypes.js, mapToMethod.js, mapToMethod2.js to support aliasing in X3D4, as long as X3DUOM also changes.  I do not know how X3DUOM is going to support multiple versions (in a single file?). I can also rename methods in the serializers, I've done a lot of that.

Agreed that X3DUOM would need to reflect and represent this.  Here is current plan, improvements always welcome.

For each of the 1-2 dozen affected fields that gain a synonym, I'd add something simple like a nameSynonym attribute as an annotation in X3D Schema and X3DUOM.

This designation would allow us to provide flexibility when parsing model files - either name is accepted.  We can also add synonym acccessor methods that allow getting/setting field values.

So the insight and functional power that a synonym approach provides is that _both_ names are accepted, rather than one replacing another.

I think this means that model files and even source code will all become completely portable and interoperable, for X3D3 or X3D4 models.  Interesting.

> It would be good to have some sample translations (or enough samples to cover all cases) to see if people translate to the appropriate target.
> 
> John


Also agreed that example conversions and mappings will be good for documenting this capability.  We can do a couple when testing X3DUOM refinements, then the X3D Example Archives provide us with a good set of unit-test examples as well.

So this enhancement seems to address backwards/forwards compatibility concerns quite well... perhaps there are more issues, if so then we'll certainly see when testing implementations and examples.  Seems promising, and implementation/testing steps won't be overly difficult.

Hmmm I guess, in one sense, when we refactor and add synonym names to provide better architectural consistence, then we are working on design extensibility of X3D itself.  Interesting.

Apropos saying by Yogi Berra: "when you come to a fork in the road, take it."  Reportedly he said this when giving directions to his house, which was at the end of a loop... either path led to the same place.



> On Sat, Nov 28, 2020 at 2:14 PM Don Brutzman <brutzman at nps.edu <mailto:brutzman at nps.edu>> wrote:
> 
>     Summary: further description of tradeoffs and a request for determining consensus follows.
> 
>     On 11/20/2020 8:56 AM, Don Brutzman wrote:
>      > Meeting minutes for Friday November 20, 0800-0900 Pacific.
>      > [...]
>      > 3. X3D4 finalization
>      >
>      > a. Prose in Lighting and Shape components
>      > b. Lighting values greater than 1, should we explain?
>      > c. outlining then drafting Annex M, HTML5 Integration Guidelines
>      > d. XSLT cleanup to remove all editorial markup and create pristine votable CD text
>      >
>      > and...
>      >
>      > e. Field naming reconciliation for similar/identical fields with different names
>      > https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges <https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges>
>      >
>      > Tradeoff: whether streamlining and consistency outweighs backwards symmetry.  This is not a functional compatibility issue, rather where is the burden placed.  Some work is always needed to create an X3D4 player, some understanding is always needed for authors who want to use X3D3 models with X3D4.
>      >
>      > Perhaps related: do we need to create a set of guidelines for X3D4 support of X3D3 loading (or X3D3 browser upgrade to X3D4 support)?  We are hoping this will be minimalist or nonexistent (for example, X3D3 models cannot load X3D4 models).
>      >
>      > Good topic for mailing list - any opinions out there?
>     Further insight: the essence of this issue is whether we ask browser implementers to support field flexibility (a one-time effort) or else ask HTML5/X3D4 authors to remember idiosyncratic differences in naming that, if not honored, typically fail silently (within the DOM).
> 
>     This issue decides how to shift a necessary burden one way or another: either additional software effort to support X3D4, versus simplified authoring of future content.
> 
>     Dick had an excellent suggestion that we might formalize the relationships but declaring that original/revised field names are "synonyms" in the X3D4 specification.  Seems do-able, and also ensures that updated specification-compliant software avoids any compatibility problems.  This avoids any effect on existing X3D3 models or software.
> 
>     Based on implementation experience, I think that synonyms are implementable without much difficulty in XML schemas/DTDs, X3DJSAIL, X3DPSAIL, X3D Validator, and a number of other converters that we maintain in Web3D open source.  I can work with the proposed change.  So the additional level of one-time effort when upgrading is not expected to be great in other emerging X3D4 tools.
> 
>     Emphasis on diagnostics, converters and validation, in combination with formal "synonym" status, will likely minimize any backwards compatibility issues.  The number of affected scenes in the X3D Example Archives is relatively small (perhaps dozens, definitely not hundreds, sample space 4000).  These are all diverse edge cases that can be regularized effectively, avoiding mysterious content failures in the future.  No functional changes to X3D scene graph rendering are involved.
> 
>     If indeed "content is king" then favoring authorability over a one-time software refinement seems like a clear priority.
> 
>     I continue to request and recommend this change because now is the right time for us to execute, as part of major update to X3D4.
> 
>     To ensure all parties are heard from, I hereby request determination of X3D working group consensus.
> 
>     Feedback choices for determining consensus:
>     a. I can    work with the proposed change to refactor and normalize certain field names as synonyms in X3D4.
>     a. I cannot work with the proposed change to refactor and normalize certain field names as synonyms in X3D4, because ___.
> 
>     Please submit all responses and rationales prior to next Friday's X3D Working Group meeting.  Thanks for considering the tradeoffs


all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman



More information about the x3d-public mailing list