<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 6, 2010, at 7:53 PM, John Carlson wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On May 5, 2010, at 10:54 PM, Paul Aslin wrote:</div><blockquote type="cite"><div><font class="Apple-style-span"><br></font>ps: An opensource MU X3D server just isn't a viable idea, it would never attract enough interest from programmers or other developers.<br>Lots of complex and time consuming code is needed, for avatars/gestures, storage, shared events, editing and admin. I can't see the consortium or other groups paying key developers for what is needed to make anything half decent.<br></div></blockquote></div><br><div>Ah, I was mostly talking about what clients are doing. Sorry for the confusion. &nbsp;I wasn't talking about a server, I was talking about infrastructure required to do CRUD on a scenegraph anywhere on the net.(whether it's peer to peer or client server doesn't matter--I'm not concerned with server implementations). &nbsp;Ids are useful for global identity, when cooperating servers share clients. &nbsp;I'm not talking about personal identity, I'm talking about node identity.</div></div></blockquote></div><br><div>Perhaps I left out some context here. &nbsp;Back in 1992-3, when we were designing a DUI (distributed user interface), we were transmitting class-ids and object-ids in the protocol. &nbsp;We discovered a problem. &nbsp;How can two communicating entities both create objects w/o trampling over each others object-ids? &nbsp;Our solution was to limit the server to creating even object-ids and the client to creating odd object-ids. &nbsp;Obviously, we did not have to global perspective provided by the WWW at that point, with its URLs URIs and URNs. SGML was in existence--and even promoted within the same program I was in. &nbsp;One thing nice about the DUI, the user interface libraries were written in C++, however debugging was a pain, exactly because we used class ids and object ids in the protocol. &nbsp;SGML and HTML provide a much cooler way of using tag names instead of class ids. &nbsp;The code was already in place before I got a chance to provide input about using class names instead of class-ids We never got to the idea of rich text or hypertext--we were pretty forms oriented at the time. &nbsp;I did not have the vision of disconnecting the session between form submits (or the problems with maintaining sessions).</div><div><br></div><div>I believe that we chose the class-id object-id approach because we had used it on a previous project where we were persisting objects to flat files in an ISAM way. &nbsp;Unfortunately we did not combine the approaches, and we couldn't persist the state of the GUI (only the form contents in a database)--there was an attempt at a GUI Builder that emitted C++, but it was never finished. &nbsp;I guess the SGML/HTML/Interface Builder/HyperCard lead the way in persisting user interfaces in declarative form. &nbsp;The intention of DUI was to provide a higher level of abstraction than the X11 protocol. &nbsp;Initially, there were Windows and tty interfaces. &nbsp;Later, X11, and an attempt at porting to Qt and the web. &nbsp;The web port failed just because it did not provide ids back to the server. &nbsp;Perhaps if we had embedded id's in URI's, we could have accomplished it (maybe someone has). &nbsp;My contribution to the project was to create factories for different user interface libraries to make the system more cross platform. &nbsp;Essentially, I made it a distributed and non-distributed user interface (DANDUI), written in C++. &nbsp;I really learned the lesson of using a factory for porting across different toolkits--each toolkit needs it's own factory.</div><div><br></div><div>So what if we could address stuff within a virtual world by a URI combined with XPath. &nbsp;Would that be a good enough identifier to work in a multi-client, multi-server environment? &nbsp;Is that a good enough combination for data manipulation? &nbsp;Why do I want to do this? &nbsp;My use case is creating an multiuser interactive dynamic 3D hypergraph of nodes and edges (no not interactive by writing code-I want to CRUD nodes from the browser/player). &nbsp;Simple, right? &nbsp;Try to do it in X3D in a browser portable fashion, and see where you end up. &nbsp;I know, this is not the niche that X3D (as a player) is trying to fill (yes, I realize that Vivaty can probably do it). &nbsp;Unfortunately real world applications do this all the time (what supports standard authoring in the standard?)</div><div><br></div><div>Given a C++ X3D toolkit, how hard would it be to create a forms interface library on top of it?</div><div><br></div><div>John</div></body></html>