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: XDI TC Unofficial Telecon Notes: Tuesday 2017-01-03


XDI TC Notes


Following are the notes of the unofficial telecon of the XDI TC held on:

Date: Tuesday, 03 January 2017 USA
Time: 9:00AM - 10:00AM Pacific Time (17:00-18:30 UTC)


The TC operates under a standing rule approved 17 July 2008 under which the TC does not hold regular official meetings and conducts all business by electronic ballot only. Unofficial weekly meetings are held to enable discussion among members but no business is conducted nor actions taken.

ATTENDING

Markus Sabadello
Drummond Reed
Phil Windley

NOTES

XDI Link Contracts

This is the first draft of the Link Contract spec that we went over during the last call:


http://xdi.org/xdi-spec-docbook/xdi/xdi-link-contracts-1.0/xdi-link-contracts-1.0-wd01.xml


We talked about the following topics related to link contracts:

Link Contract Expiration

Markus noted that the current working draft contains the following example:

($contract$if/$true){$msg}<$t>/$lesser/...$contract#expiration<$t>
$contract#expiration<$t>/&/"2012-12-12"

We expanded this example as follows, in order to cover a "start date", an "end date", and an "active" flag for the link contract:

(=markus/=drummond)$contract<#start><$t>/&/"2017-01-01"
(=markus/=drummond)$contract<#end><$t>/&/"2017-12-31"
(=markus/=drummond)$contract<#active>/&/true
(=markus/=drummond)($contract$if$and/$true){$msg}<$t>/$greater/(=markus/=drummond)$contract<#start><$t>
(=markus/=drummond)($contract$if$and/$true){$msg}<$t>/$lesser/(=markus/=drummond)$contract<#end><$t>
(=markus/=drummond)($contract$if$and/$true)(=markus/=drummond)$contract<#active>/&/true

The policy enforces that a message's timestamp must be between the "start date" and "end date", and the "active" flag must be set to "true".

$words Vs. #words

We had a good discussion about whether we should use #start and #end, or $start and $end—in other words, what should be the criteria for when we specify a $word (which can only be assigned by the XDI TC) and when we use a #words which represents a generic class that is only defined by consensus (like generic words in a natural language dictionary).

See the list of $words we have maintained on the XDI TC wiki:

https://wiki.oasis-open.org/xdi/XdiDollarDictionary

We came up with the following criteria:

  1. A term should be a $word if it has special semantics that must be supported in XDI processing code. This is the direct analog of keywords in a programming language.

  2. A term should also be a $word even if it is a literal (i.e., not a keyword), but its semantics are universal enough and common enough that it will significantly promote interoperability to define it in the $space.

    1. Example of this kind of universal meaning of a literal: $true

    2. Example of more contextual meaning of a literal: #active

  3. The third general rule, suggested by Phil, was that we should define as little as possible in the $ space because:

    1. It’s less work

    2. It makes everything more flexible

    3. It doesn’t break anything

Drummond agreed with this third rule because the goal has always been to keep the XDI $ space as small as possible. He used the analogy of the $ space being more like a grammar than a full vocabulary.

We also talked about assigning $words for date and time primitives. Currently have only defined $t for timestamps. But we agreed that we need a uniform, universal vocabulary for date and time primitives is an example of rule #1 above.

# ACTION: ALL - Develop a proposal for the full suite of $words needed for date and time primitives.

Link Contract Branches

Markus then suggested that sometimes link contracts should be deleted (e.g. when expired). This could also be modeled as a policy under a new $del$if branch, e.g.:

(=markus/=drummond)($contract$del$if/$true){$msg}<$t>/$greater/(=markus/=drummond)$contract<#end><$t>

Drummond then did an inventory of the different link contract “branches” that will be covered in the link contract spec::


Markus then wondered if the $del$if idea could be generalized to apply any kind of operation to a link contract (e.g. just deactivate it) if a certain policy is fulfilled. This could be done using a $msg$if branch and a $msg$do branch, e.g.:


To delete a link contract on expiration:


(=markus/=drummond)($contract$msg$if/$true){$msg}<$t>/$greater/(=markus/=drummond)$contract<#end><$t>

(=markus/=drummond)$contract$msg$do/$del/(=markus/=drummond)$contract


To deactivate a link contract on expiration:


(=markus/=drummond)($contract$msg$if/$true){$msg}<$t>/$greater/(=markus/=drummond)$contract<#end><$t>

(=markus/=drummond)($contract$msg$do/$set)(=markus/=drummond)<#active>/&/false

Usage Permissions

The WD mentions the $for keyword, but this has never been defined in detail. Drummond explained that this branch of the link contract is used to specify the purpose(s) for which the authorizing authority is granting the data access permissions under the link contract. This would contain human-readable (legal) text or references to human-readable text—for example provisions in a trust framework.


We discussed the $use keyword as an alternative to the $for keyword and agreed it made more sense. This branch needs further discussion.

NEXT REGULAR CALL

The next call will be next week at the usual time (9AM PT). The link where agenda items can be posted for the next meeting is: https://docs.google.com/document/d/19oDl0lbb56Grehx2a5flZnhrgnua5l8cVvC_dJ8fTXk/edit?usp=sharing




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