XDI (Extensible Data Interchange) and Semantic Dictionaries (an update on XDI Core I.O and XDI.org)
XDI and Semantic Dictionaries
Tuesday 4D
Convener: Drummond Reed
Notes-taker(s): Drummond Reed
Tags for the session - technology discussed/ideas considered:
Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps:
This session, given by Drummond Reed and Markus Sabadello, co-chairs of the the OASIS XDI Technical Committee https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xdi , was in 3 parts.
In the first part, Drummond covered an update on the status of XDI Core 1.0, the foundational specification for XDI (Extensible Data Interchange), under development for the last 11 years.
The update was that XDI Core 1.0 is finally finished and currently in ballot to become a Committee Specification Draft (technically the vote has already passed, but formally it closes on Thursday morning Oct 29). The link to the draft is:
http://www.xdi.org/xdi-spec-docbook/xdi/xdi-core-1.0/xdi-core-1.0-wd06.xml
We reviewed that the spec covers 3 main topics:
- The XDI graph model and how it differs from RDF.
- The formal XDI ABNF grammar.
- The JSON serialization.
In the second part, Markus covered the XDI server, client, and tools code available from the XDI2 open source project, of which Markus is the lead:
Markus gave a tour of the XDI2 utilities that are available on the site and also of the Github repository for XDI2.
The third part covered XDI dictionaries and the role they play in semantic data interchange. Drummond explained how XDI dictionaries differ from RDF ontologies and XML schemas because they define reusable "words" that can be specialized in different XDI contexts just like natural language words in languages like English.
The example used was the term "flow". Flow has meaning in multiple contexts, e.g.:
blood flow sap flow traffic flow
In XDI dictionaries, <#flow> could be defined once, and then specializations can be defined. The definition context role is indicated by pipe characters, so the following are the addresses for different XDI dictionary entries:
|<#flow>| |#blood||<#flow>| |#sap||<#flow>| |#traffic||<#flow>|
The specialized dictionary definitions can specialize the generic dictionary definition of #flow by extending or overriding the dictionary statements. For example, if the generic definition of <#flow> said it was an integer:
|<#flow>|/$is#/<$integer>
The a specialized definition can override the $is# statement, e.g.:
|#blood||<#flow>|/$is#/<$real><$number>
More information on XDI dictionary entries is available both in the Dictionary section of the XDI Core 1.0 spec (see link above) and also this page of the XDI TC wiki: