OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

xdi message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: Minutes: XDI TC Telecon Friday 2014-08-29

XDI TC Minutes

Following are the minutes of the unofficial telecon of the XDI TC at:

Date:  Friday, 29 August 2014 USA
Time:  09:00AM - 10:30AM Pacific Time (16:00-17:30 UTC)


Les Chasen
Hubert Le Van Gong
Joseph Boyle
Markus Sabadello
Ning Zhang
Phil Windley
Drummond Reed
Courtney Brown
William Dyson

André Martins


Dan Blum



Report from XDI editors subcommittee


Drummond noted the following progess with XDI Core:

xdi-graph               = xdi-statement *( CRLF xdi-statement )

xdi-statement           = contextual / relational / literal

contextual              = peer-context / inner-context / sub-context

peer-context            = *peer-root "//" peer-root

peer-root               = "(" subgraph ")"

inner-context           = *peer-root *inner-root "//" inner-root

inner-root              = "(" subgraph "/" subgraph ")"

sub-context             = entity-context / entity-member-context /

                         attr-context / attr-member-context / value-context

entity-context          = *peer-root *inner-root *entity // *entity

entity-member-context   = *peer-root *inner-root *entity entity-collection "//" entity-member

attr-context            = *peer-root *inner-root *entity *attr // *attr

attr-member-context     = *peer-root *inner-root *entity attr-collection "//" attr-member

value-context           = *peer-root *inner-root *entity *attr attr-instance // &

supergraph              = *peer-root *inner-root subgraph

subgraph                = *entity *attr

relational              = supergraph "/" subgraph "/" supergraph

literal                 = supergraph attr-instance "&/&/" json-value

attr-instance           = ( ( attr-collection attr-member ) / attr-singleton )

entity                  = ( entity-collection [ entity-member ] ) / entity-singleton

attr                    = ( attr-collection [ attr-member ] ) / attr-singleton

Drummond stated that at present the inverse of a contextual statement is $is(). Joseph would like to chose a different representation of a context other than ().

Joseph also noted that we haven’t been using the ABNF for parsing, so the ABNF is primarily for specification.

XDI Deep Dive Learnings

Several members and friends of the XDI TC have met for a 3 day face-to-face “deep dive” to go over a wide range of XDI topics, including link contracts, templates, and instantiation.

See the following documents for notes and examples from the meeting:



Drummond gave a detailed overview of the link contract example document which covers a use case where a single phone number is requested.

Markus asked why a link contract template in a collection would use the form [{$do}]!:uuid:1122 rather than [{$do}]{!:uuid:1122}, pointing out that an attribute member in an attribute collection uses the form [<#email>]<!:uuid:1122>. Drummond’s answer was that the rationale was that a collection of variables is already a variable.

In order to specify whether a certain operational permission would be required or optional, the following pattern could be used:


The <$required> attribute on the variable might however need to be revised, since its meaning could be ambiguous.

We noted that the {<#email>} variable in the link contract template means that the RA is asking for any e-mail address (work, home, etc).

Drummond next explained “template attributes”, such as {<$label>} and {<$t>}, which would be “carried over” from the link contract template to the link contract instance as <$label> and <$t>.

A new keyword on a link contract template is $for. This is used to specify “usage permissions”, which is a way for a RA to specify the purpose(s) that a link contract would be used for. These permissions may be required or optional, and an AA would be able to individually accept or reject them.

We had the interesting insight that these usage permissions might be closely related to the “Consent Receipt” project by the Open Notice Foundation.

Drummond also introduced a useful pattern for the policy part of a link contract template which would establish the required sender of a message: {{$from}}/$is/{$from}, which in a link contract instance becomes {$from}/$is/=ra

After Drummond left the call, Markus recounted Drummond’s explanations and his understanding of the new {<$opt>} and $for constructs.


The next call is next week at the regular time.

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]