diff --git a/doc/RFC_XR_Fragments.md b/doc/RFC_XR_Fragments.md
index 1fd560c..1902b8a 100644
--- a/doc/RFC_XR_Fragments.md
+++ b/doc/RFC_XR_Fragments.md
@@ -291,63 +291,103 @@ sub-delims = "," / "="
We still think and speak in simple text, not in HTML or RDF.
The most advanced human will probably not shout `
NOTE: The chapters in this document are ordered from highlevel to lowlevel (technical) as much as possible -
"When a car breaks down, the ones without turbosupercharger are easier to fix" -
Humans first, machines (AI) later. -
| fragment | -type | -example | -info | -
|---|---|---|---|
| #pos | -vector3 | -#pos=0.5,0,0 | -positions camera to xyz-coord 0.5,0,0 | -
| #rot | -vector3 | -#rot=0,90,0 | -rotates camera to xyz-coord 0.5,0,0 | -
| #t | -vector2 | -#t=500,1000 | -sets animation-loop range between frame 500 and 1000 | -
| #...... | -string | -#.cubes #cube | -object(s) of interest (fragment to object name or class mapping) | -
xyz coordinates are similar to ones found in SVG Media Fragments -
| key | -type | -example (JSON) | -info | -
|---|---|---|---|
| name | -string | -"name": "cube" | -available in all 3D fileformats & scenes | -
| class | -string | -"class": "cubes" | -available through custom property in 3D fileformats | -
| href | -string | -"href": "b.gltf" | -available through custom property in 3D fileformats | -
| src | -string | -"src": "#q=cube" | -available through custom property in 3D fileformats | -
NOTE: XR Fragments are file-agnostic, which means that the metadata exist in programmatic 3D scene(nodes) too. -
-For example: #q=.foo is a shorthand for #q=class:foo, which will select objects with custom property class:foo. Just a simple #q=cube will simply select an object named cube. -
| operator | -info | -
|---|---|
| * | -select all objects (only useful in src custom property) | -
| - | -removes/hides object(s) | -
| : | -indicates an object-embedded custom property key/value | -
| . | -alias for "class" :".foo" equals class:foo | -
| > < | -compare float or int number | -
| / | -reference to root-scene. -Useful in case of (preventing) showing/hiding objects in nested scenes (instanced by src) (*) |
-
* = #q=-/cube hides object cube only in the root-scene (not nested cube objects) -
- #q=-cube hides both object cube in the root-scene <b>AND</b> nested skybox objects |
An example query-parser (which compiles to many languages) can be -found here
Example: ://foo.com/my3d.gltf#pos=1,0,0&prio=-5&t=0,100 -
| Demo | -Explanation | -
|---|---|
| pos=1,2,3 | -vector/coordinate argument e.g. | -
| pos=1,2,3&rot=0,90,0&q=.foo | -combinators | -
- hashtagbibs allows the enduser to add 'postit' connections (compressed BibTex) by speaking/typing/scanning text, 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.
| scope | -matching algo | -
|---|---|
| <b id="textual-tagging">textual</b> | -text containing 'baroque' is now automatically tagged with 'house' (incl. plaintext src child nodes) | -
| <b id="spatial-tagging">spatial</b> | -spatial object(s) with name baroque or "class":"house" are now automatically tagged with 'house' (incl. child nodes) | -
| <b id="supra-tagging">supra</b> | -text- or spatial-object(s) (non-descendant nodes) elsewhere, (class)named 'baroque' or 'house', are automatically tagged with 'house' (current node to root nodes) | -
| <b id="omni-tagging">omni</b> | -text- or spatial-object(s) (non-descendant nodes) elsewhere, (class)named 'baroque' or 'house', are automatically tagged with 'house' (too node to all nodes) | -
| <b id="infinite-tagging">infinite</b> | -text- or spatial-object(s) (non-descendant nodes) elsewhere, (class)named 'baroque' or 'house', are automatically tagged with 'house' (too node to all nodes) | -
-NOTE: infinite matches both 'baroque' and 'style'-occurences in text, as well as spatial objects with "class":"style" or name "baroque". This multiplexing of id/category is deliberate because of -the core principle .
-The simplicity of appending BibTeX (and leveling the metadata-playfield between humans and machines) is also demonstrated by -visual-meta in greater detail.
for more info on this mimetype see -bibs
This significantly expands expressiveness and portability of human tagged text, by postponing machine-concerns to the end of the human text in contrast to literal interweaving of content and markupsymbols (or extra network requests, webservices e.g.). -
additional tagging using -bibs : to tag spatial object note_canvas with 'todo', the enduser can type or speak @note_canvas@todo
"When a car breaks down, the ones without turbosupercharger are easier to fix" -
| characteristic | -UTF8 Plain Text (with BibTeX) | -RDF | -
|---|---|---|
| perspective | -introspective | -extrospective | -
| structure | -fuzzy (sensemaking) | -precise | -
| space/scope | -local | -world | -
| everything is text (string) | -yes | -no | -
| voice/paper-friendly | -no | -|
| leaves (dictated) text intact | -yes | -no | -
| markup language | -just an appendix | -~4 different | -
| polyglot format | -no | -yes | -
| easy to copy/paste content+metadata | -yes | -up to application | -
| easy to write/repair for layman | -yes | -depends | -
| easy to (de)serialize | -yes (fits on A4 paper) | -depends | -
| infrastructure | -selfcontained (plain text) | -(semi)networked | -
| freeform tagging/annotation | -yes, terse | -yes, verbose | -
| can be appended to text-content | -yes | -up to application | -
| copy-paste text preserves metadata | -yes | -up to application | -
| emoji | -yes | -depends on encoding | -
| predicates | -free | -semi pre-determined | -
| implementation/network overhead | -no | -depends | -
| used in (physical) books/PDF | -yes (visual-meta) | -no | -
| terse non-verb predicates | -yes | -no | -
| nested structures | -no (but: BibTex rulers) | -yes | -
To keep XR Fragments a lightweight spec, BibTeX is used for rudimentary text/spatial tagging (not JSON, RDF or a scripting language because they're harder to write/speak/repair.). -
-above can be used as a startingpoint for LLVM's to translate/steelman to a more formal form/language. -
when an XR browser updates the human text, a quick scan for nonmatching tags (@book{nonmatchingbook e.g.) should be performed and prompt the enduser for deleting them. -
| definition | -explanation | -
|---|---|
| human | -a sentient being who thinks fuzzy, absorbs, and shares thought (by plain text, not markuplanguage) | -
| scene | -a (local/remote) 3D scene or 3D file (index.gltf e.g.) | -
| 3D object | -an object inside a scene characterized by vertex-, face- and customproperty data. | -
| metadata | -custom properties of text, 3D Scene or Object(nodes), relevant to machines and a human minority (academics/developers) | -
| XR fragment | -URI Fragment with spatial hints like #pos=0,0,0&t=1,100 e.g. | -
| src | -(HTML-piggybacked) metadata of a 3D object which instances content | -
| href | -(HTML-piggybacked) metadata of a 3D object which links to content | -
| query | -an URI Fragment-operator which queries object(s) from a scene like #q=cube | -
| visual-meta | -|
| requestless metadata | -metadata which never spawns new requests (unlike RDF/HTML, which can cause framerate-dropping, hence not used a lot in games) | -
| FPS | -frames per second in spatial experiences (games,VR,AR e.g.), should be as high as possible | -
| introspective | -inward sensemaking ("I feel this belongs to that") | -
| extrospective | -outward sensemaking ("I'm fairly sure John is a person who lives in oklahoma") | -
| ◻ | -ascii representation of an 3D object/mesh | -
| (un)obtrusive | -obtrusive: wrapping human text/thought in XML/HTML/JSON obfuscates human text into a salad of machine-symbols and words | -
| BibTeX | -simple tagging/citing/referencing standard for plaintext | -
| BibTag | -a BibTeX tag | -
| (hashtag)bibs | -an easy to speak/type/scan tagging SDL ( |
-