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 ( |
-