[x3d-public] [x3d] Spec Comment by on 19776-2: ClassicVRML Encoding - V4.0: improved string grammar

Brutzman, Donald (Don) (CIV) brutzman at nps.edu
Wed Feb 19 08:39:39 PST 2025


Vince, thanks for your feedback on the X3D specification.

-- Submitter indicates that this comment may be public: *Yes* --

[cc: x3d-public]

I have entered your feedback in our Mantis tracking system.

  *
Mantis 1489: potential grammar improvement to SFString for special characters
  *
https://mantis.web3d.org/view.php?id=1489

To facilitate review and comment, I have also added it to the current draft 4.0 specification.

  *
X3D ClassicVRML Encoding, Annex A (normative) Grammar, A.4 Fields
  *
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html#Fields

  *
Github specification source
  *
https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19776/ISO-IEC19776-2/ISO-IEC19776-2v4.0/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html

Of note is that we have a dozen pending changes to the Classic grammar.  These are tracked together in a coordinated fashion using a "choreography" issue.

  *
Mantis 1483: Grammar annex issues (choreography)
  *
https://mantis.web3d.org/view.php?id=1483

======================================

  *
Grammar annex includes a number of problems.
* https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html

a. Much missing whitespace - fixed.

b. [PERL] is no longer an authoritative reference and should be removed from the Bibliography.

c. The actual syntax appears to be a variation of Extended Backus-Naur Form (EBNF).
- ISO/IEC 14997 https://www.iso.org/standard/26153.html (then ITTF website)
- https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form

d. In order for production rules to match EBNF grammar syntax, the construct := should likely be the definition symbol = instead.

e. Some informal inconsistencies can be found in the grammar, for example

IdFirstChar::=
    Any ISO-10646 character encoded using UTF-8 except: 0x30-0x3a, 0x0-0x20, 0x22, 0x23, 0x27, 0x2b, 0x2c, 0x2d, 0x2e, 0x5b, 0x5c, 0x5d, 0x7b, 0x7d, 0x7f ;
IdRestChars::=
    Any number of ISO-10646 characters except: 0x0-0x20, 0x22, 0x23, 0x27, 0x2c, 0x2e, 0x3a, 0x5b, 0x5c, 0x5d, 0x7b, 0x7d, 0x7f ;

f. Do each of the node names and field names need to be defined?

g. The grammar and bibliographic references need to appear at appropriate places in the rest of the document.

  *
Can this grammar be validated using a software tool?
* EBNF Evaluator https://mdkrajnak.github.io/ebnftest
* EBNF Visualizer http://dotnet.jku.at/applications/Visualizer
* ebnf parsing library https://github.com/pedroreissantos/bnf
* BNF (EBNF) Playground https://bnfplayground.pauliankline.com<https://bnfplayground.pauliankline.com/>

Note concerns in
* David A. Wheeler, Don’t Use ISO/IEC 14977:1996 Extended Backus-Naur Form (EBNF)
* https://dwheeler.com/essays/dont-use-iso-14977-ebnf.html

If we do achieve a validatable EBNF grammar, both forms will need to be carefully compared. Conceivably both prior VRML-style grammar and updated EBNF grammar might both be included.


======================================

I just cleaned up much HTML in there too.

Careful scrutiny and all comments are welcome.

Patient persistent pays, and valid content is king.  These principles were collectively adopted by the community at the first Web3D Conference in 2025.  We are working atop a tall pile of treasure.

Have fun with X3D!  🙂


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 https://faculty.nps.edu/brutzman



________________________________
From: x3d <x3d-bounces at web3d.org> on behalf of Spec Feedback <spec-comment at web3d.org>
Sent: Tuesday, February 18, 2025 6:50 PM
To: x3d at web3d.org <x3d at web3d.org>
Subject: [x3d] Spec Comment by on 19776-2: ClassicVRML Encoding - V3.3

-- Submitter indicates that this comment may be public: *Yes* --

Comment on 19776-2: ClassicVRML Encoding - V3.3
Annex A : Grammar
https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html

-----------------
I propose that for V 4.0 of the VRML encoding the grammar for sfstringValue
be defined more explicitly, in the same notation as the other grammer
definitions.

I propose 3 additional syntax elements defining single-character elements
BackslashChar ::= 0x5c
QuoteChar ::= 0x22

NonEscapedChar ::= Any ISO-10646 character except : BackslashChar , QuoteChar
  -- alternate syntax --
NonEscapedChar ::= [^\"]

and the existing grammar for sfstringValue be replaced with
sfStringValue ::= QuoteChar ((BackslashChar QuoteChar)|(BackslashChar
BackslashChar)|NonEscapedChar)* QuoteChar

No change is necessary for sfstringValues , mfstringValue


-----------------

Submitted on Tuesday, 2025,  February 18 - 6:50pm
by  (Vincent Marchetti )
IP: 76.34.206.177

See: https://www.web3d.org/node/1694/submission/12439


_______________________________________________
x3d mailing list
x3d at web3d.org
http://web3d.org/mailman/listinfo/x3d_web3d.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20250219/0cdd18f9/attachment-0001.html>


More information about the x3d-public mailing list