← Prev in month ← Prev in thread
Next in thread → Next in month →

XDI TC Unofficial Telecon Notes: Tuesday 2017-01-03

From
=Drummond Reed <>
Date
2017-01-04T06:37:45+00:00
ID
Thread
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 USATime: 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 SabadelloDrummond ReedPhil Windley
NOTESXDI 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:

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.

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.

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

Example of more contextual meaning of a literal: #active

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

It’s less work

It makes everything more flexible

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::

$do$if - the execution branch

$use$if - the usage branch

$del$if - the termination branch

$defer$if - the deferred condition branch

$defer$push$if - the deferred action branch

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
← Prev in month ← Prev in thread
Next in thread → Next in month →