480 likes | 541 Views
The XDI Graph: An Overview of the Proposed XDI Schema. XDI TC Face-to-Face Meeting OASIS Symposium April 29, 2004. Drummond Reed CTO, Cordance Corporation Co-Chair, OASIS XRI and XDI TCs drummond.reed@cordance.net.
E N D
The XDI Graph:An Overview of the Proposed XDI Schema XDI TC Face-to-Face MeetingOASIS SymposiumApril 29, 2004 Drummond ReedCTO, Cordance CorporationCo-Chair, OASIS XRI and XDI TCsdrummond.reed@cordance.net
“Never doubt that a small group of thoughtful, committed citizens can change the world. Indeed, it's the only thing that ever has.” -- Margaret Mead (1901-1978)US Anthropologist, Author
"I would not give a fig for the simplicity this side of complexity, but I would give my life for the simplicity on the other side of complexity." -- Oliver Wendell Holmes, Jr.
"It’s turtles all the way down." -- Anecdotal
The Big Picture OASIS XNSORG XDI 1.0 XNS 1.0 XRI 1.0 Gestation period forDataweb technology 1993 1998 2002 2003 2004 2005
Jamie Lewis on XRIs “Today, we use a wide variety of different mechanisms for identification, including e-mail addresses, IP addresses, phone numbers, and object identifiers. But most of these are specific to one means of interaction. None of them is persistent across the many different ways that people, applications, and devices can communicate, and so they don't function well as identifiers in the long run." -- Jamie Lewis, CEO and Research Chair, Burton Group, BetaNews, 2/5/2004
His second key point “Having that persistent, unique identifier is an important predicate for any trusted relationship between nodes. Without it, the trust is much more difficult, if not impossible, to achieve. The XRI specification is an attempt to solve this problem by creating a standard for abstract identifiers." -- Jamie Lewis, BetaNews, 2/5/2004
The mission of the XDI TC • To build on the foundation of XRIs to provide a standard, generalized, extensible, domain-independent way to identify, describe, exchange, link, and synchronize data
An evolutionary step Abstraction XDI/XDI Docs SOAP/XML Docs HTTP/Web Pages IP/Packets Time
The primary value is in the delta Abstraction The primary value lies here – in what XDI can do that’s not easy using HTTP, XML, and SOAP XDI/XDI Docs SOAP/XML Docs HTTP/Web Pages IP/Packets Time
What’s in that delta? • Persistent identification and linking • The URN problem • Cross-domain data sharing • The ontology and data mapping problem • Distributed data sharing controls • The security, privacy, and trust problem • Generalized synchronization • The data concurrency problem
The Dataweb Model If every piece of data could be uniquely addressed using an XRI… …and there were a simple way to describe this in XML… …and a standard service for exchanging, linking, and synchronizing these XML documents with security and privacy controls… …you could create a trusted Web of all data… …a Dataweb.
XML/XDI XML/XDI XDI Linkcontracts XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI Dataweb siteA Dataweb siteB Websites vs. Dataweb sites HTML HTML HTML HTML HTML HTML HTML HTML HTML HTML WebsiteA WebsiteB
OASIS XDI TC Web standards vs. Dataweb standards Web Dataweb URIs XRIs 100% resourceaddressability HTML XML/XDI Common representationand linking format HTTP XDI/HTTPXDI/SOAP Common interchangeprotocol
Part 2: The XDI Graph – Understanding the Proposed XDI Metaschema
The XDI metaschema • The goal is a common representation format for all XRI-identifiable data • Essentially a cross between the function of HTML (as a common representation format for all content) and XML (as an extensible markup language for data) • A meta-schema because it is explicitly designed to describe (and optionally carry) other XML-encoded data
Inspiration for the proposed design • Nature produces complexity by iterating simplicity • Examples • DNA • Human Language • The Web • The proposed XDI metaschema applies this principle to describing data and data relationships
The XDI Graph Authority A Authority B Link Link Resources
The proposed XDI meta-schema Resource * * 1..* 0..1 XRI Data 1..* 0..1 * * Link “Turtles all the way down”
The name/value pair analogy name=value Classic view <name>value</name> XML encoding <xri>name</xri><data>value</data> XDI meta-encoding step 1 <resource> <xri>name</xri> <data>value</data> </resource> XDI meta-encoding step 2 <resource> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data>value</data> </resource> XDI meta-encoding step 3: XRI synonyms permit many-to-one mapping of “names” to data values
Nesting resources <resource> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data>value</data> <resource> <xri>name1</xri> <xri>name2</xri> <data>value</data> </resource> </resource> Nested resources have a UML compositionrelationship with the parent resource
Links <resource> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data>value</data> </resource> A resource representsthe authoritative sourceof a data value <link> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data>value</data> </link> A link represents a cached resource instantiated at another node on the XDI graph. This cache can be anything from a 100% complete replica down to a single XRI reference
Nesting links <resource> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data>value</data> <link> <xri>name1</xri> <xri>name2</xri> <data>value</data> </link> </resource> Nested links have a UML aggregationrelationship with the parent resource
Use of the XML “Any” type <resource> <xri>name1</xri> <xri>name2</xri> <xri>name3</xri> <data> <address xmlns:”xxx”> 1234 Main St. </address> <city> Seattle </city> … </address> </data> </resource> The data element can contain any well-formed XML
The XDI graph • The XDI graph is the graph of all data that is XRI-identifiable • Three node types • Data (edge nodes) • Resources (authoritative paths to data) • Links (non-authoritative paths to data copies) • Every XDI document is a “snapshot” of some subset of the XDI graph • Most importantly, any segment of the graph can be “copied-and-pasted” to any other point
Addressing nodes in the XDI graph • Every node is XRI-addressable because the XDI graph is a reflection of XRI syntactic structure • Authorities (XRI or URI) are the a-priori starting points • “/” (equivalent to “/.”) or “/:” represents a resource • “.” or “:” represents a link • Cross-reference syntax enables XRIs or URIs to be reused at any point in the graph
Mapping XRI syntax to the XDI meta-schema Note: this interpretation of XRI syntax applies ONLY to the proposed XDI metaschema, and not to XRIs used outside this context / (reassignable) or /: (persistent) Resource * * 1..* 0..1 XRI Data 1..* 0..1 * * Link . (reassignable) or : (persistent)
Navigating the XDI Graph with XRIs Authority A Authority B Link Link Resources
Web standards vs. Dataweb standards Web Dataweb URIs XRIs 100% resourceaddressability HTML XML/XDI Common representationand linking format HTTP XDI/HTTPXDI/SOAP Common interchangeprotocol
Is XDI a Web service? • Yes, XDI/SOAP is absolutely a Web service • A data-oriented service • A data mediation service • A generalized data sharing service • But XDI can also be bound to other transport protocols • XDI/HTTP is “native” REST architecture for Web purists • XDI/SMTP is a solution to structured email
XDI service definition • The Dataweb model follows classic Web “REST” architecture • Representational State Transfer • Roy Fielding’s PhD thesis • Posits that the success of the Web is based on transfer of URI-addressable resource representations • Representations may be linked using URIs • “Many nouns, few verbs”
REST operations • Four verbs • GET – read resource representation • PUT – write resource representation • DELETE – remove resource representation • POST – invoke operation on resource representation • Many nouns • Any resource that can be represented, i.e., any XRI
Proposed XDI service definition • WSDL adaptation of REST • Allows binding to HTTP, SOAP, SMTP/MIME, or any other transport protocol • All representations are XDI documents • Data • Forms (data requests) • Contracts (data sharing agreements) • Dictionaries (data definitions)
XDI forms • The Dataweb equivalent of HTML forms • HTML forms are interpreted by people • XDI forms are interpreted by machines • They are a way to request an XDI document from another XDI authority (“copy a branch of the XDI graph”) • Forms that request controlled (private) data require data control metadata
XDI link contracts • A link contract is an XDI document that governs the exchange of other XDI documents • Directly analogous to real-world contracts that govern the exchange of goods, services, or information • There is no limit to the types of controls in an XDI contract – it can describe any set of terms governing data interchange
XML/XDI XML/XDI XDI Linkcontracts XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI XML/XDI Dataweb siteA Dataweb siteB Link contracts control XDI data “flow” HTML HTML HTML HTML HTML HTML HTML HTML HTML HTML WebsiteA WebsiteB
Defining link contract controls • The role of the XDI Service Dictionary • Directly analogous to a legal dictionary • Example: privacy controls • A link contract can associate an XDI document (a set of XRI-addressable nodes) with data usage controls • Such controls can include: • References to applicable privacy policies • Opt-in and opt-out permissions • Data retention terms
Analogs to conventional directory constructs • Identity, Attributes, Groups, Roles • Identity = XRI for a resource • Attributes = resources representing nested (composed) resources • Groups = resources representing linked (aggregated) resources • Roles = resources representing typed (inheritance) resources
XDI dictionaries • XDI dictionaries are Dataweb sites designed explicitly to share “words” (XRIs) and “definitions” (XDI documents describing them) • Directly analogous to real-world dictionaries • Can be developed for any purpose • General dictionaries (Oxford English Dictionary) • Specialized dictionaries (Black’s Law Dictionary) • Domain specific “glossaries”
What’s different about XDI dictionaries? • Machine-readable • Machine-linkable (dictionaries can reference or link each other’s vocabulary) • Can significantly automate the process of cross-domain data mapping • Human-language translations • Ontology development
A different view of a “semantic web” • The descriptions and relationships between resources are all expressed as XRI paths through the XDI graph • Common semantics are established via dynamic mapping of XRI synonyms using XDI dictionaries • Vocabulary can evolve as quickly as new XRIs and XDI documents are propagated throughout the network
Web Web services Dataweb Another view – link levels Links Presentation Application Data