XDI (short for "eXtensible Data Interchange") is a semantic data interchange format and protocol under development by the OASIS XDI Technical Committee. The name comes from the addressable graph model XDI uses: every node in the XDI graph is its own RDF graph that is uniquely addressable.
The main features of XDI are: the ability to link and nest RDF graphs to provide context; full addressability of all nodes in the graph at any level of context; representation of XDI operations as graph statements so authorization can be built into the graph (a feature called XDI link contracts); a standard JSON serialization format; and a simple ontology language for defining shared semantics using XDI dictionary services.
The XDI protocol is based on an exchange of XDI messages which themselves are XDI graphs. Since the semantics of each message is fully contained within the XDI graph of that message, the XDI protocol can be bound to multiple transport protocols. The XDI TC is defining bindings to HTTP and HTTPS, however it is also exploring bindings to XMPP and potentially directly to TCP/IP.
XDI also provides a standardized portable authorization format called XDI link contracts. Link contracts are XDI subgraphs that express the permissions that one XDI authority (person, organization, or thing) grants to another for access to and usage of an XDI data graph. XDI link contracts enable these permissions to be expressed in a standard machine-readable format understood by any XDI endpoint.
This approach to globally distributed data sharing models the real-world mechanism of social contracts and legal contracts that bind civilized people and organizations in the real world today. Thus XDI can be a key enabler of a distributed Social Web. It has also been cited as a mechanism to support a new legal concept, Virtual Rights, which are based on a new legal entity, the "virtual identity", and a new fundamental right: "to have or not to have virtual identities".
- OASIS XDI Technical Committee
- OASIS XDI TC wiki page with links to documents explaining the XDI graph model
- JSON serialization format
- XDI reference implementation in Java Site has live utilities for experimenting directly with XDI