[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Minutes: XDI TC Telecon Friday 2014-08-29
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
Dan Blum
Drummond noted the following progess with XDI Core:
He and Joseph met to go over the ABNF
We had a long discussion about the fact that the Display Format and the JSON Flat serialization need different top-level ABNF due to the differing serialization rules. Joseph would prefer a single unified ABNF covering both; Drummond did not feel that was important.
In the end, we developed a simplified ABNF for the display format that captured all the key structural rules in a more compact format than we have ever had.
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.
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:
https://www.oasis-open.org/committees/download.php/53986/xdi%20deep%20dive%202014-8-27.pdf
https://www.oasis-open.org/committees/download.php/53985/linkcontractExamples.pdf
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:
(+ta[{$do}]!:uuid:1122/$get){$to}{<#email>}<$required>&/&/false
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]