[x3d-public] id attribute proposal

Leonard Daly web3d at realism.com
Sun Mar 20 19:14:01 PDT 2016


On 3/20/2016 6:08 PM, John Carlson wrote:
> My limited understanding is that DEF defines an individual, and once a 
> USE is used for that DEF, the string becomes a class of individuals 
> (not in the class attribute).  I speak in more mathematical terms than 
> precise definition in HTML/XML/X3D.

Of course it depends on the implementation, but the spec says (19775-1 
4.4.3 - 
http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#DEFL_USESemantics) 
"The USE statement does not create a copy of the node. Instead, the same 
node is inserted into the scene graph a second time, resulting in the 
node having multiple parents."

So it's not a class of individuals, but multiple references to a single 
individual. X3D does not provide a mechanism to have a subclass (in the 
OOP sense) where different subclasses exhibit similar but not identical 
behavior.


Leonard Daly





>
> John
>> On Mar 20, 2016, at 8:50 PM, Leonard Daly <web3d at realism.com 
>> <mailto:web3d at realism.com>> wrote:
>>
>> DEF/USE is not like id/class. DEF and id are alike in that both 
>> define a string that references exactly one node (element). USE tells 
>> the parse to insert the defined node into the X3D scene-graph at that 
>> location. The class attribute defines a collection of classes that 
>> the node belongs to. It is similar to adding (non-X3D) metadata to 
>> the node for creating a compact reference to similar (but generally 
>> not identical) nodes.
>>
>> X3DOM generates an 'id; for each DEF as per the XML encoding 
>> specification (4.3.4). If the node is Inlined, then each DEF is 
>> copied to 'id' with the provided prefix and a separator (__ - double 
>> underscore). There is an obvious advantage of have DEF == id in that 
>> normal DOM referencing and other libraries (jQuery, etc.) can use the 
>> same syntax and coding structure. The USE field is an instruction to 
>> the parse and scene builder to insert the previously defined node at 
>> the current location in the scene graph.
>>
>>
>> Leonard Daly
>>
>>
>>
>>> Class and id are separate ideas in HTML, and you can address id and class separately without addressing them together.  It seems to me that DEF/USE are intermixed ideas  that should be separated into class and id.   Thus the USEs reference a class of DEF, but then there’s no way of addressing the DEF individually.  I’ll let the experts decide.  I just would like the ability to use # and . and various CSS selectors for referencing X3D node w/o JavaScript necessarily.  If ROUTES had toNodes and fromNodes that would work.  Maybe there’s another way of doing it.  IDK.  We could add fromCSSSelectorNodes and toCSSSelectorNodes in ROUTEs for backward compatibility.  Seems like this is the prototype versus archetype argument, and prototypes win (DEF/USE), even though it may be more convoluted.  If the DEF can further be hidden without hiding the USEs, then we essentially have archetypes.
>>>
>>> Basically, I find it difficult to read the spec and easier to read email in a conversational style.
>>>
>>> I’m also okay, with allowing DEF to be a replacement for id, and using the class attribute for other stuff.  We’ll have figure out how to use a CSS selector to reference a DEF.  (probably with tag[DEF=…]
>>>
>>> How do XSL selectors work?  Can we reference XSL selectors in X3D?  Thanks!
>>>
>>> John
>>>> On Mar 20, 2016, at 5:33 PM, Don Brutzman<brutzman at nps.edu>  wrote:
>>>>
>>>> Obvious questions:
>>>>
>>>> a. can DEF/USE simply be utilized instead?  First law of engineering: "if it isn't broken, don't fix it."
>>>>
>>>> b. if DEF/USE cannot or ought not to be utilized, then how is is backwards compatibility handled?  This includes Inline content loaded into a parent scene.
>>>>
>>>> c. what does X3DOM currently do?
>>>>
>>>> d. what does Cobweb currently do?
>>>>
>>>>
>>>> On 3/20/2016 10:09 AM, John Carlson wrote:
>>>>> I'll second the proposal.  Also I'd like to propose adding CSS selectors for values of the fromNode and toNode attributes on ROUTEs if not already in the standard.  Thus if you have a node with id="foo"  you could use a route with toNode="#foo".  Class attributes would work similarly for fan in fan out.
>>>>>
>>>>> John
>>>>>
>>>>> On Mar 20, 2016 11:23 AM, "Andreas Plesch" <andreasplesch at gmail.com  <mailto:andreasplesch at gmail.com>> wrote:
>>>>>
>>>>>     Since Don mentioned that nobody has proposed introducing an 'id' attribute, let me then propose adding an 'id' SFString attribute to all nodes for x3d 4.0.
>>>>>
>>>>>     The reason is simply compatibility with the DOM on web pages in the case where x3d nodes are interpreted as DOM elements.
>>>>>
>>>>>     Andreas
>>>>> [...]
>>>> all the best, Don
>>>> -- 
>>>> Don Brutzman  Naval Postgraduate School, Code USW/Brbrutzman at nps.edu
>>>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
>>>> X3D graphics, virtual worlds, navy roboticshttp://faculty.nps.edu/brutzman
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>
>>
>> -- 
>> *Leonard Daly*
>> X3D Co-Chair
>> Cloud Consultant
>> President, Daly Realism - /Creating the Future/
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org <mailto:x3d-public at web3d.org>
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>


-- 
*Leonard Daly*
X3D Co-Chair
Cloud Consultant
President, Daly Realism - /Creating the Future/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20160320/3ee5c28c/attachment.html>


More information about the x3d-public mailing list