From 0f7f482a3d13c4609d2f5dfa4f846c91d2514f15 Mon Sep 17 00:00:00 2001 From: Leon van Kammen Date: Fri, 12 Jul 2024 15:12:40 +0200 Subject: [PATCH] pages: work in progress [might break] --- doc/RFC_XR_Fragments.html | 227 ++---------- doc/RFC_XR_Fragments.md | 222 ++---------- doc/RFC_XR_Fragments.txt | 724 +++++++++++++------------------------- doc/RFC_XR_Fragments.xml | 278 ++++----------- example/assets/index.glb | Bin 8904928 -> 8896840 bytes 5 files changed, 392 insertions(+), 1059 deletions(-) diff --git a/doc/RFC_XR_Fragments.html b/doc/RFC_XR_Fragments.html index 8ea227b..dac9417 100644 --- a/doc/RFC_XR_Fragments.html +++ b/doc/RFC_XR_Fragments.html @@ -1120,67 +1120,42 @@ Perhaps the following question is related: why is HTML adopted less in games out
  • XR Fragments promotes (de)serializing a scene to a (lowercase) XRWG (example)
  • XR Fragments primes the XRWG, by collecting words from the tag and name-property of 3D objects.
  • XR Fragments primes the XRWG, by collecting words from optional metadata at the end of content of text (see default mimetype & Data URI)
  • +
  • XR Fragments primes the XRWG, by collecting tags/id’s from linked hypermedia (URI fragments for HTML e.g.)
  • The XRWG should be recalculated when textvalues (in src) change
  • HTML/RDF/JSON is still great, but is beyond the XRWG-scope (they fit better in the application-layer, or as embedded src content)
  • Applications don’t have to be able to access the XRWG programmatically, as they can easily generate one themselves by traversing the scene-nodes.
  • The XR Fragment focuses on fast and easy-to-generate end-user controllable word graphs (instead of complex implementations that try to defeat word ambiguity)
  • -
  • Tags are the scope for now (supporting https://github.com/WICG/scroll-to-text-fragment will be considered)
  • +
  • Instead of exact lowercase word-matching, levensteihn-distance-based matching is preferred
  • -

    Example of generating BiBTex out of the XRWG and textdata with hashtags:

    +

    Example of generating XRWG out of the XRWG and textdata with hashtags:

    -
      http://y.io/z.fbx                                                           | Derived XRWG (expressed as BibTex)
    +
      http://y.io/z.fbx                                                           | Derived XRWG (expressed as JSON)
       ----------------------------------------------------------------------------+--------------------------------------
    -                                                                              | @house{castle,
    -  +-[src: data:.....]----------------------+   +-[3D mesh]-+                  |   url = {https://y.io/z.fbx#castle}
    -  | Chapter one                            |   |    / \    |                  | }
    -  |                                        |   |   /   \   |                  | @baroque{castle,
    -  | John built houses in baroque style.    |   |  /     \  |                  |   url = {https://y.io/z.fbx#castle}
    -  |                                        |   |  |_____|  |                  | }
    -  |                                        |   +-----│-----+                  | @baroque{john}
    +                                                                              | Chapter: ['#mydoc']
    +  +-[src: data:.....]----------------------+   +-[3D mesh]-+                  | one:     ['#mydoc']
    +  | Chapter one                            |   |    / \    |                  | houses:  ['#castle','#mydoc','#house']
    +  |                                        |   |   /   \   |                  | baroque: ['#mydoc','#castle']
    +  | John built houses in baroque style.    |   |  /     \  |                  | castle:  ['#baroque','#house']
    +  |                                        |   |  |_____|  |                  | john:    ['#john','#mydoc']
    +  |                                        |   +-----│-----+                  | mydoc:   ['#mydoc']
       |                                        |         │                        |
       |                                        |         ├─ name: castle          | 
       |                                        |         └─ tag: house baroque    | 
       +----------------------------------------+                                  |
    -                                               [3D mesh ]                     |
    +                 └─ name: mydoc                [3D mesh-+                     |
                                                    |    O   ├─ name: john         |                           
                                                    |   /|\  |                     |
    -                                               |   / \  |                     |
    -                                               +--------+                     |
    +                                               |   / \  |                     |    ^ ^ ^
    +                                               +--------+                     |    | | |  
    +                                                                              |         
    +           [remotestorage.io]+  [ localstorage]-+                             | <- the XR Fragment-compatible 
    +           | XRWG (JSON)     |  | XRWG (JSON    |                             | <- 3D hypermedia viewer should
    +           |                 |  |               |                             | <- be able to select the active XRWG
    +           +-----------------+  +---------------+                             |
     
    -
    -

    the #john@baroque-bib associates both text John and objectname john, with tag baroque

    -
    - -

    Another example of deriving a graphdata from the XRWG:

    - -
      http://y.io/z.fbx                                                           | Derived XRWG (expressed as BibTex)
    -  ----------------------------------------------------------------------------+--------------------------------------
    -                                                                              | 
    -  +-[src: data:.....]----------------------+   +-[3D mesh]-+                  | @house{castle,
    -  | Chapter one                            |   |    / \    |                  |   url = {https://y.io/z.fbx#castle}
    -  |                                        |   |   /   \   |                  | }
    -  | John built houses in baroque style.    |   |  /     \  |                  | @baroque{castle,
    -  |                                        |   |  |_____|  |                  |   url = {https://y.io/z.fbx#castle}
    -  | #john@baroque                          |   +-----│-----+                  | }
    -  | @baroque{john}                         |         │                        | @baroque{john}
    -  |                                        |         ├─ name: castle          | 
    -  |                                        |         └─ tag: house baroque    | 
    -  +----------------------------------------+                                  | @house{baroque}
    -                                               [3D mesh ]                     | @todo{baroque}
    -  +-[remotestorage.io / localstorage]------+   |    O   + name: john          | 
    -  | #baroque@todo@house                    |   |   /|\  |                     | 
    -  | ...                                    |   |   / \  |                     | 
    -  +----------------------------------------+   +--------+                     | 
    -
    - -
    -

    both #john@baroque-bib and BibTex @baroque{john} result in the same XRWG, however on top of that 2 tages (house and todo) are now associated with text/objectname/tag ‘baroque’.

    -
    - -

    As seen above, the XRWG can expand bibs (and the whole scene) to BibTeX.
    -This allows hasslefree authoring and copy-paste of associations for and by humans, but also makes these URLs possible:

    +

    This allows hasslefree authoring and copy-paste of associations for and by humans, but also makes these URLs possible:

    @@ -1193,12 +1168,12 @@ This allows hasslefree authoring and copy-paste of associations for and - + - + @@ -1209,10 +1184,10 @@ This allows hasslefree authoring and copy-paste of associations for and
    https://my.com/foo.gltf#baroquedraws lines between mesh john, 3D mesh castle, text John built(..)draws lines between 3D mesh castle, and mydoc’s text baroque
    https://my.com/foo.gltf#johndraws lines between mesh john, and the text John built (..)draws lines between mesh john, and the text John of mydoc
    -

    hashtagbibs potentially allow the enduser to annotate text/objects by speaking/typing/scanning associations, which the XR Browser saves to remotestorage (or localStorage per toplevel URL). As well as, referencing BibTags per URI later on: https://y.io/z.fbx#@baroque@todo e.g.

    +

    the URI fragment #john&mydoc&house would draw a connection between these 3 meshes.

    -

    The XRWG allows XR Browsers to show/hide relationships in realtime at various levels:

    +

    The XRWG allows endusers to show/hide relationships in realtime in XR Browsers at various levels: