Skip to content
Markus Sabadello edited this page Apr 24, 2015 · 11 revisions

Introduction

This branch implements the "Notation Shift".

This refers to a change to the XDI graph model in which the following rules about inner roots and their serializations change:

  • There are no more restrictions on how the source and target of a relational arc may be inside or outside an inner root (previously the source and target of a relational arc had to be inside the same inner root). This affects the structure of all constructs based on inner roots, i.e. messages, link contracts, and policies.
  • The XDI DISPLAY "short notation" is abolished.
  • The XDI/JSON "normal notation" is abolished.
  • The "inner" serialization parameter is abolished.

Examples

XDI DISPLAY "short notation" (abolished after the shift):

[=]!:uuid:1111/[=]!:uuid:1111/($do$if$and$or/$true/({$msg}<$secret><$token><$valid>&/&/true))
[=]!:uuid:1111/[=]!:uuid:1111/($do$if$and$or/$true/({$msg}<$sig><$valid>&/&/true))
[=]!:uuid:1111/[=]!:uuid:1111/($do/$all/)
[=]!:uuid:1111/[=]!:uuid:1111/($do$if$and/$true/({$from}/$is/[=]!:uuid:1111))

XDI DISPLAY "normal notation" (only valid notation after the shift):

([=]!:uuid:1111/[=]!:uuid:1111)$do/$all/
([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and/$true){$from}/$is/[=]!:uuid:1111
([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and$or/$true){$msg}<$secret><$token><$valid>&/&/true
([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and$or/$true){$msg}<$sig><$valid>&/&/true

XDI/JSON "short notation" (only valid notation after the shift):

{
  "[=]!:uuid:1111/[=]!:uuid:1111": [
    {
      "$do/$all": [
        ""
      ],
      "$do$if$and/$true": [
        {
          "{$from}/$is": [
            "[=]!:uuid:1111"
          ]
        }
      ],
      "$do$if$and$or/$true": [
        {
          "{$msg}<$secret><$token><$valid>&/&": true,
          "{$msg}<$sig><$valid>&/&": true
        }
      ]
    }
  ]
}

XDI/JSON "normal notation" (abolished after the shift):

{
  "([=]!:uuid:1111/[=]!:uuid:1111)$do/$all": [
    "([=]!:uuid:1111/[=]!:uuid:1111)"
  ],
  "([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and/$true){$from}/$is": [
    "([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and/$true)[=]!:uuid:1111"
  ],
  "([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and$or/$true){$msg}<$secret><$token><$valid>&/&": true,
  "([=]!:uuid:1111/[=]!:uuid:1111)($do$if$and$or/$true){$msg}<$sig><$valid>&/&": true
}

Status

Merged per 2224dd1 on 5th Jul 2014 after snapshot-0.5-pre-notation-shift.

Sample deployment before merge: https://server.xdi2.org/pre-notation-shift

Code Migration

The XdiInnerRoot class encapsulates most of the functionality affected by the Notation Shift.

Graph Migration

Graphs can be migrated using the xdi2-tools.

Clone this wiki locally