80 likes | 193 Views
This document contains illustrations of six basic XDI graph patterns: Simple properties : properties that accept only a single literal value. Complex properties : properties that may accept multiple literal values as well as describe typing and ordering of those values.
E N D
This document contains illustrations of six basic XDI graph patterns: Simple properties: properties that accept only a single literal value. Complex properties: properties that may accept multiple literal values as well as describe typing and ordering of those values. Simple subjects: subjects that may contain only instances of themselves and metadata describing those instances. Complex subjects: subjects that may contain all of the above. Link contracts: subgraphs used for XDI authorization. Messages: XDI documents used in the XDI protocol. It also illustrates how versioning may be applied to any branch of the graph. Note: this document uses the XDImetagraph symbols as documented in the XDI Graph Model 2011-02-09. XDI Graph Patterns OASIS XDI TC SubmissionDrummond Reed 2011-02-09
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 Example root context literal “literal” contextual context literal contextual “literal” context contextual relational context
Simple properties (=abc) =abc +age! Simple +age property “33” +age $number Metadata describing the +age property $d! ! $! “2010-10-10T11:12:13Z” $v Versioning subgraph describing the +age property !1! “32” !2! “33” !1 $! $d! !2 “2010-09-09T10:11:12Z” $! $d! “2010-10-10T11:12:13Z”
Complex properties (=abc) +home+fax +home =abc *2 !1! +tel “+1.206.555.1111” $string !2! “+1.206.555.2222” *1 $! ! +work !1 $d! !2 “2010-11-11T11:11:11Z” $d! “2010-12-22T22:22:22Z” $v !1 Snapshot of =abc+tel graph in first version state !2 Snapshot of =abc+tel graph in second version state
Simple subjects (=abc) +country! “Canada” +number! !1 =abc “987654321” $d! +passport *1 “2005-01-01T00:00:00Z” +country! *2 “New Zealand” $ $! !2 +number! “123456789” $d! “2010-10-01T00:00:00Z” $ Metadata on complex subject instances !1 $d! !2 “2010-11-11T11:11:11Z” $d! $v “2010-12-22T22:22:22Z” !1 Snapshot of =abc+passport graph in first version state !2 Snapshot of =abc+passport graph in second version state
Complex subjects (=abc) +age! Simple property pattern (see previous page) “33” =abc +tel Complex property pattern (see previous page) +person $! +passport Simple subject pattern(see previous page) !1 First complex subject instance (subgraph not shown) … !2 Second complex subject instance (subgraph not shown) … $ Metadata on complex subject instances !1 $d! !2 “2010-11-11T11:11:11Z” $d! $v “2010-12-22T22:22:22Z” !1 Snapshot of =abc graph in first version state !2 Snapshot of =abc graph in second version state
Link contracts (=abc) +age! Simple property pattern (see previous page) “33” =abc +tel Complex property pattern (see previous page) +person $! +passport Simple subject pattern(see previous page) +age! Subgraph included in persona =abc!1 !1 +tel $do Link contract root $get (=xyz) Permitted XDI operations on the =abc!1 graph (subtrees not shown) … $() $add … Link contract assignment $for Policies under which these permissions are granted (subtrees not shown) …
Messages (=xyz) “from” – source context (=abc) $() “to” – target context “is a” message $msg $! $do root of message actions $get … message actions (verbs and subgraphs must match link contract) (subgraph not shown) $add … $for Optional description of message purpose (must match link contract) (subgraph not shown) …