<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Vince, thanks for your feedback on the X3D specification.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
-- Submitter indicates that this comment may be public: *Yes* --</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
[cc: x3d-public]</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I have entered your feedback in our Mantis tracking system.</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">Mantis 1489: potential grammar improvement to SFString for special characters </div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://mantis.web3d.org/view.php?id=1489" id="LPlnk764676" class="OWAAutoLink">https://mantis.web3d.org/view.php?id=1489</a></div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
To facilitate review and comment, I have also added it to the current draft 4.0 specification.</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">X3D ClassicVRML Encoding, Annex A (normative) Grammar, A.4 Fields</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html#Fields" id="OWA39d961f7-567e-c38c-d187-f0ded9921a24" class="OWAAutoLink">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html#Fields</a></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><br>
</div>
</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">Github specification source</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19776/ISO-IEC19776-2/ISO-IEC19776-2v4.0/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html" id="LPlnk459348" class="OWAAutoLink">https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19776/ISO-IEC19776-2/ISO-IEC19776-2v4.0/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html</a></div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
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.</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">Mantis 1483: Grammar annex issues (choreography)</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof"><a href="https://mantis.web3d.org/view.php?id=1483" id="OWA149f30d4-c2e3-318f-f01f-b2382f0a32a9" class="OWAAutoLink">https://mantis.web3d.org/view.php?id=1483</a></div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
======================================</div>
<ul data-editing-info="{"applyListStyleFromLevel":false,"unorderedStyleType":1}" style="list-style-type: disc;">
<li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<div class="elementToProof">Grammar annex includes a number of problems.</div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<table class="elementToProof" style="text-align: left; border-radius: 0px; margin-bottom: 0px; width: 1240.87px; max-width: 100%; color: rgb(57, 57, 57); box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;">
<tbody>
<tr>
<td colspan="5" style="width: 748.594px; height: 597.208px; text-align: left; line-height: 1.42857; border-top: 1px solid rgb(221, 221, 221); border-bottom: 1px solid rgb(221, 221, 221); border-radius: 0px; padding: 5px; vertical-align: top; box-sizing: border-box;">
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">*
</span><span style="color: rgb(51, 122, 183);"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html" id="OWA40448ccb-d45a-4b90-471b-0ffe64258c73" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-2v4.0-WD1/Part02/grammar.html</a></span></div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);"><br>
a. Much missing whitespace - fixed.<br>
<br>
b. [PERL] is no longer an authoritative reference and should be removed from the Bibliography.<br>
<br>
c. The actual syntax appears to be a variation of Extended Backus-Naur Form (EBNF).<br>
- ISO/IEC 14997 </span><span style="color: rgb(51, 122, 183);"><a href="https://www.iso.org/standard/26153.html" id="OWA3cdaae94-3d7f-54bb-7609-82ffb63cb262" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://www.iso.org/standard/26153.html</a></span><span style="color: rgb(57, 57, 57);"> (then
ITTF website)</span></div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">-
</span><span style="color: rgb(51, 122, 183);"><a href="https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form" id="OWAa0961dda-7c11-f990-dd04-f7f84fc71b13" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://en.wikipedia.org/wiki/Extended_Backus%E2%80%93Naur_form</a></span></div>
<div style="text-align: left; line-height: 1.42857; color: rgb(57, 57, 57);"><br>
d. In order for production rules to match EBNF grammar syntax, the construct := should likely be the definition symbol = instead.<br>
<br>
e. Some informal inconsistencies can be found in the grammar, for example<br>
<br>
IdFirstChar::=<br>
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 ;<br>
IdRestChars::=<br>
Any number of ISO-10646 characters except: 0x0-0x20, 0x22, 0x23, 0x27, 0x2c, 0x2e, 0x3a, 0x5b, 0x5c, 0x5d, 0x7b, 0x7d, 0x7f ;<br>
<br>
f. Do each of the node names and field names need to be defined?<br>
<br>
g. The grammar and bibliographic references need to appear at appropriate places in the rest of the document.</div>
</td>
</tr>
</tbody>
</table>
<div class="elementToProof"><br>
</div>
</div>
</li><li style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<table class="elementToProof" style="text-align: left; border-radius: 0px; margin-bottom: 0px; width: 1240.87px; max-width: 100%; color: rgb(57, 57, 57); box-sizing: border-box; border-collapse: collapse; border-spacing: 0px;">
<tbody>
<tr>
<td colspan="5" style="width: 748.594px; height: 282.99px; text-align: left; line-height: 1.42857; border-top: 1px solid rgb(221, 221, 221); border-bottom: 1px solid rgb(221, 221, 221); border-radius: 0px; padding: 5px; vertical-align: top; box-sizing: border-box;">
<div style="text-align: left; line-height: 1.42857; color: rgb(57, 57, 57);">Can this grammar be validated using a software tool?</div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">* EBNF Evaluator
</span><span style="color: rgb(51, 122, 183);"><a href="https://mdkrajnak.github.io/ebnftest" id="OWA6f66783b-3fcc-eec4-4119-c3510b1f742c" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://mdkrajnak.github.io/ebnftest</a></span></div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">* EBNF Visualizer
</span><span style="color: rgb(51, 122, 183);"><a href="http://dotnet.jku.at/applications/Visualizer" id="OWA71a4f6da-d4fd-579f-4c67-ff671875d731" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">http://dotnet.jku.at/applications/Visualizer</a></span></div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">* ebnf parsing library
</span><span style="color: rgb(51, 122, 183);"><a href="https://github.com/pedroreissantos/bnf" id="OWA9b5efec1-41a1-7d58-477e-716a0e6ea63b" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://github.com/pedroreissantos/bnf</a></span><span style="color: rgb(57, 57, 57);"><br>
* BNF (EBNF) Playground </span><span style="color: rgb(51, 122, 183);"><a href="https://bnfplayground.pauliankline.com/" id="OWA865f8ab7-e633-e630-849f-16e94806db61" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://bnfplayground.pauliankline.com</a></span><span style="color: rgb(57, 57, 57);"><br>
<br>
Note concerns in<br>
* David A. Wheeler, Don’t Use ISO/IEC 14977:1996 Extended Backus-Naur Form (EBNF)</span></div>
<div style="text-align: left; line-height: 1.42857;"><span style="color: rgb(57, 57, 57);">*
</span><span style="color: rgb(51, 122, 183);"><a href="https://dwheeler.com/essays/dont-use-iso-14977-ebnf.html" id="OWAce604d1c-6ce4-f973-590f-caa14b9c95e0" class="OWAAutoLink" rel="noopener" style="color: rgb(51, 122, 183);">https://dwheeler.com/essays/dont-use-iso-14977-ebnf.html</a></span></div>
<div style="text-align: left; line-height: 1.42857; color: rgb(57, 57, 57);"><br>
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.</div>
</td>
</tr>
</tbody>
</table>
<div class="elementToProof"><br>
</div>
</li></ul>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
======================================</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
I just cleaned up much HTML in there too.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Careful scrutiny and all comments are welcome.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
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.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Have fun with X3D! 🙂</div>
<div class="elementToProof" id="Signature">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"><br>
</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">all the best, Don</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">--</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"> </span></p>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div id="divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><b>From:</b> x3d <x3d-bounces@web3d.org> on behalf of Spec Feedback <spec-comment@web3d.org><br>
<b>Sent:</b> Tuesday, February 18, 2025 6:50 PM<br>
<b>To:</b> x3d@web3d.org <x3d@web3d.org><br>
<b>Subject:</b> [x3d] Spec Comment by on 19776-2: ClassicVRML Encoding - V3.3</span>
<div> </div>
</div>
<div class="elementToProof" style="font-size: 11pt;">-- Submitter indicates that this comment may be public: *Yes* --<br>
<br>
Comment on 19776-2: ClassicVRML Encoding - V3.3<br>
Annex A : Grammar<br>
<a href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html" id="OWAa0e77048-c521-f77f-a998-d0530b59821a" class="OWAAutoLink" data-auth="NotApplicable">https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html</a><br>
<br>
-----------------<br>
I propose that for V 4.0 of the VRML encoding the grammar for sfstringValue <br>
be defined more explicitly, in the same notation as the other grammer <br>
definitions.<br>
<br>
I propose 3 additional syntax elements defining single-character elements<br>
BackslashChar ::= 0x5c<br>
QuoteChar ::= 0x22<br>
<br>
NonEscapedChar ::= Any ISO-10646 character except : BackslashChar , QuoteChar<br>
-- alternate syntax --<br>
NonEscapedChar ::= [^\"]<br>
<br>
and the existing grammar for sfstringValue be replaced with<br>
sfStringValue ::= QuoteChar ((BackslashChar QuoteChar)|(BackslashChar <br>
BackslashChar)|NonEscapedChar)* QuoteChar<br>
<br>
No change is necessary for sfstringValues , mfstringValue<br>
<br>
<br>
-----------------<br>
<br>
Submitted on Tuesday, 2025, February 18 - 6:50pm<br>
by (Vincent Marchetti )<br>
IP: 76.34.206.177<br>
<br>
See: <a href="https://www.web3d.org/node/1694/submission/12439" id="OWAa21ecbdb-5d89-45a8-9eaa-be9ee85d14a0" class="OWAAutoLink" data-auth="NotApplicable">
https://www.web3d.org/node/1694/submission/12439</a><br>
<br>
<br>
_______________________________________________<br>
x3d mailing list<br>
x3d@web3d.org<br>
<a href="http://web3d.org/mailman/listinfo/x3d_web3d.org" id="OWA2c978bc5-e0fa-81f3-09c5-5fa743d4ac33" class="OWAAutoLink" data-auth="NotApplicable">http://web3d.org/mailman/listinfo/x3d_web3d.org</a></div>
</body>
</html>