<div dir="ltr">Here's my attempt to develop a "version space algebra" for card games. I asked Tessa Lau for help, but she just said to write down my rules. So I have the rules to solitaire, which an automated player uses to play. But I wanted the computer to determine what the rules were by me playing the nascent game! I'm not getting it! I have the basic actions on cards and stacks. Can I turn that into a version space algebra program humans play based on a game designer's interactive game playing? Or automated playing?<div><br>Note, I have not opened this file or used it for a long time.<br><div><br></div><div><a href="https://github.com/coderextreme/lircom/blob/master/src/main/java/solitaire/VersionSpace.java">https://github.com/coderextreme/lircom/blob/master/src/main/java/solitaire/VersionSpace.java</a> <br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 16, 2020 at 3:41 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I am reminded of Version Space Algebra for creating macros/programs in an editor (human intervention required).</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jul 16, 2020 at 2:43 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Very interesting, Don.<div><br></div><div>I watched the video, and looked at the slides, well much of it. This reminds me of "Model Transformation by Demonstration (MTBD)" or "Model-to-Model Transformation by Demonstration," protocol/log/trace analysis, and finally "Programming by Demonstration (PbD)."</div><div><br></div><div>While this looks like a "continuous" demonstration, I wonder if OpenDIS contains vectors/curves or points (events) for paths, it appears like this work compresses motion into tracks. I would be curious if the whole SUV path could be described in a few equations, instead of X3D. I am thinking of Kalman filters, too.</div><div><br></div><div>Relative to PbD and MTBD, I wonder if multiple alternate paths could be recorded in OpenDIS, and then a Switch could be employed, to alternate between paths. And then paths could also be composed in a variety of ways. C&C could manually switch select paths at appropriate times during a simulation.</div><div><br></div><div>I have not checked recent literature, but I haven't seen alternate paths handled (except in protocol analysis, perhaps? I am thinking of Estelle. That's not recent literature, though). Having optional or alternate paths determined automatically would be a great boon to automated driving, I would think, so that the car can select from the best of several paths. I have seen where this work and MTBD can inference out and simplify sequential vehicle/mouse moves. I am also reminded of Richard Feynman's "All possible paths." Inferencing on alternate paths may be more difficult? Surely one can detect identical alternatives? Would something from git or svn source code help?</div><div><br></div><div>Also, another interesting thing is to do this in HAnim to record multiple sessions for medical use (treatment analysis). I do not know if HAnim is in DIS or not, but it would be interesting to do multiple mocaps, and compare them, compress them, etc.</div><div><br></div><div>The idea would be of course, to compress alternate and recursive streams into a single compressed program. I'm thinking of recording a person "dancing" to program a computer. <a href="https://www.cbsnews.com/news/dancelogic-innovative-youth-program-combines-coding-and-dance-2019-06-20/" target="_blank">https://www.cbsnews.com/news/dancelogic-innovative-youth-program-combines-coding-and-dance-2019-06-20/</a></div><div><br></div><div>Obviously, if an exception is thrown, the question would be how to handle it. I have not thought how to record exceptions in X3D or a data stream. But I know people are very interested in exceptions. Also, recovering dropped data.</div><div><br></div><div>Finally, if we have data streams of OpenDIS or and the "single compressed program" it would be interesting to issue SPARQL queries.</div><div><br>I have not really gotten into "analysis" of "programs" or streams, but it's been on my mind. I am thinking of BAYOU and TransCoder recently in the news. What if we could make X3D much quicker to program by hand?</div><div><br></div><div>I am however, very excited that we can turn X3D both into streams and hierarchies! Now let's git DIS input/output/compression into a hierarchy!</div><div><br></div><div>Maybe we can sit down at a lunch or conference sometime and discuss such things.</div><div><br>What's my use case? Game programming by demonstration (card games, primarily, but something more complex than RoShamBo, which was shown) and one-shot imitation game learning by demonstration, the primary purpose being to generate the rules to the game for computer-mediated multiplayer games. These rules are also the "Why?" in XAI</div><div><br></div><div>John</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jul 15, 2020 at 11:36 PM Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Am happy to report that the following thesis has been published, code is checked in, and we will be testing it further as part of our MV3500 Networked Simulation course at NPS this quarter. Recording of diverse Live Virtual Constructive (LVC) data streams, recording DIS and converting streams to X3D playback is powerful.<br>
<br>
Thanks for all insights and support. Looking forward to continued progress.<br>
<br>
----------------------------------------------------<br>
<br>
REPEATABLE UNIT TESTING OF DISTRIBUTED INTERACTIVE SIMULATION (DIS) PROTOCOL BEHAVIOR STREAMS USING WEB STANDARDS<br>
<br>
Tobias Brennenstuhl Lieutenant Colonel, German Army<br>
Masters Thesis, Modeling Virtual Environments Simulation (MOVES), Naval Postgraduate School (NPS), Monterey California USA, June 2020<br>
<br>
Abstract. The IEEE Distributed Interactive Simulation (DIS) protocol is used for high-fidelity real-time information sharing among simulations and trainers across the entire international Modeling and Simulation (M&S) community. If archivally saved and replayed, DIS streams have the potential to become a valuable source of Big Data. The availability of archived prerecorded behavior streams for replay, adaptation, and analysis can benefit an immense variety of application areas. The computer science principle "a stream is a stream" indicates that data in motion is equivalent to data at rest. This characteristic can enable powerful capabilities for DIS.<br>
<br>
This thesis presents prototypes to demonstrate how various forms of repeatability are key to gaining improved benefits from DIS stream analysis. Unit testing of DIS behavior streams allows confirmation of both repeatability and correctness when testing all manner of applications, exercises, simulations, and training sessions. A related use case is automated after-action review (AAR) from recorded DIS streams. This thesis also shows how a DIS stream is converted into autogenerated code that can animate an X3D Graphics model. Many obstacles were overcome during this work, and so various best practices are provided. Of note is that unit testing might even become a contract requirement for incrementally developing and stably maintaining Live Virtual Constructive (LVC) code bases. This progress provides many opportunities for future work.<br>
<br>
* README<br>
<a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/README.md" rel="noreferrer" target="_blank">https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/README.md</a><br>
<br>
* Presentation<br>
<a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingBriefingJune2020.pptx" rel="noreferrer" target="_blank">https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingBriefingJune2020.pptx</a><br>
<br>
* Thesis<br>
<a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingThesisJune2020.pdf" rel="noreferrer" target="_blank">https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingThesisJune2020.pdf</a><br>
<br>
* Demonstration Video (20 minutes)<br>
<a href="https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingX3dInterpolation.mp4" rel="noreferrer" target="_blank">https://gitlab.nps.edu/Savage/NetworkedGraphicsMV3500/-/blob/master/documentation/theses/brennenstuhl/BrennenstuhlOpenDIS7UnitTestingX3dInterpolation.mp4</a><br>
<br>
* Twitter<br>
<a href="https://twitter.com/Web3DConsortium/status/1283506818262552577" rel="noreferrer" target="_blank">https://twitter.com/Web3DConsortium/status/1283506818262552577</a><br>
<br>
* YouTube<br>
<a href="https://www.youtube.com/watch?v=B_ARFsRFgRk&t=54s" rel="noreferrer" target="_blank">https://www.youtube.com/watch?v=B_ARFsRFgRk&t=54s</a><br>
<br>
----------------------------------------------------<br>
<br>
all the best, Don<br>
-- <br>
Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a><br>
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman" rel="noreferrer" target="_blank">http://faculty.nps.edu/brutzman</a><br>
<br>
_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div>
</blockquote></div>
</blockquote></div>