120 likes | 247 Vues
This document provides an overview of XDI graph notation, focusing on the representation of various nodes, including root, context, literal, and the different types of arcs connecting them. It explains how these elements uniquely identify contexts and link various subjects or objects. By analyzing properties such as single-valued and multi-valued attributes, as well as multi-instance subjects, we demonstrate their significance in the structure of XDI graphs. Furthermore, we explore link contracts, their implications for permission management, and examples illustrating persona-based access rights.
E N D
XDI Graph Patterns V16 2010-12-07
XDI graph notation Root node: Represents the root of an XDI graph Context node: Represents an XDI subject or non-literal XDI object Literal node: Represents a literal XDI object Contextual arc: Uniquely identifies a context node Relational arc: Links two context nodes Literal arc: Uniquely identifies a literal node
Applied Notation root context literal “literal” contextual context literal contextual “literal” context contextual relational contextual context
Root context (=abc) =abc =xyz
Relations vs.subcontexts (=abc) =abc =abc+friend=xyz +friend =xyz =xyz +friend =abc/+friend/=xyz
Single-valued properties (=abc) =abc +age “33” +age$d “2010-09-20T10:11:12Z” =abc/+age =abc/+age$d
Multi-valued properties (=abc) +home+fax +home =abc *2 +tel !1 “+1.206.555.1111” !2 “+1.206.555.2222” *1 +work
Multi-valued properties (=abc) +home+fax +home =abc *2 +tel !1 “+1.206.555.1111” !2 =abc+tel/!1 “+1.206.555.2222” =abc+tel/!2 *1 =abc+tel/*1/!2 +work =abc+tel/*2/!1 =abc+tel/+home/!1 =abc+tel/+home+fax/!1 =abc+tel/+work/!2
Multi-instance subjects (=abc) =abc $ *2 $1 +home *1 $2 +work
Multi-instance subjects (=abc) =abc $ =abc$/+home/=abc$1 *2 $1 +home =abc$/+work/=abc$2 =abc$/*1/=abc$2 *1 $2 =abc$/*2/=abc$1 +work =abc$1/$+home/=abc$ =abc$2/$+work/=abc$ =abc$1/$*2/=abc$ =abc$2/$*1/=abc$
Multi-instance subjects (=abc) =abc $ =abc$/+home/=abc$1 *2 $1 +home =abc$/+work/=abc$2 =abc$/*1/=abc$2 *1 $2 =abc$/*2/=abc$1 +work =abc$1/$+home/=abc$ =abc$2/$+work/=abc$ =abc$1/$*2/=abc$ =abc$2/$*1/=abc$
Link contracts (=abc) $do is the root of all link contracts $nsubcontexts identify $do instances (as with any other XDI subject) =abc $() identifies the parent contexts for this $do instance $do These subcontexts identify the XDI subjects authorized under this link contract $1 $1 $() $do =efg Personas of =abc $() $2 =xyz Example 1: a link contract for the =abc$1 persona that DOES NOT grant permission to $get the list of authorizees $get $do $(()) $() =xyz $get Example 2: a link contract for the =abc$2 persona that DOES grant permission to $get the list of authorizees $(()) $(()) identifies the parent context of the parent context, i.e., this is permission to do an XDI $get on =abc$2