Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Context UDI"

Line 8: Line 8:
 
* The value of a [[ContextId Data Range]] MUST conform to the ABNF defined below
 
* The value of a [[ContextId Data Range]] MUST conform to the ABNF defined below
  
== Syntax ==
+
== Definition ==
The following [http://en.wikipedia.org/wiki/Augmented_Backus-Naur_form ABNF] defines a Higgins [[ContextId]]. All rules not defined in this ABNF are defined in the [http://wiki.oasis-open.org/xri/XriCd02/Xri2dot0Abnf ABNF for XRI 2.0] (which includes the IRI ABNF from [http://www.ietf.org/rfc/rfc3987.txt RFC 3987]) except:
+
* An [[Context UDI]] is defined in [http://www.parity.com/spec/udi/udi-syntax.html UDI Syntax]
* '''xri2-authority''' and '''xri2-subseg''' are the '''xri-authority''' and '''xri-subset''' rules defined in the [http://wiki.oasis-open.org/xri/XriCd02/Xri2dot0Abnf ABNF for XRI 2.0]
+
* '''xri3-authority''' and '''xri3-subseg''' are the '''xri-authority''' and '''xri-subset''' rules defined in the [http://wiki.oasis-open.org/xri/XriThree/SyntaxAbnf proposed ABNF for XRI 3.0]
+
 
+
<pre>
+
contextId_Data_Range  = contextURI / contextXRI
+
 
+
contextURI            = contextfileURI / contexthttpURI
+
contextfileURI        = [ "file://" ] ipath-abempty descriptor-ext
+
descriptor-ext        = ".xrds" / ".xdi"                                      ;see note 1
+
contexthttpURI        = ( "http://" / "https://" ) iauthority
+
                        ipath-abempty [ descriptor-ext ] [ "?" iquery ]
+
 
+
contextXRI            = contextQXRI /                                        ;see note 2
+
                        contextHXRI                                          ;see note 3
+
contextQXRI          = ( [ "xri://" ] xri2-contextQXRI ) /
+
                        ( [ "xri:" ] xri3-contextQXRI )
+
xri2-contextQXRI      = xri2-authority [ "/($context)" *xri2-subseg ]
+
xri3-contextQXRI      = xri3-authority [ "/$context" *xri3-subseg ]
+
contextHXRI          = proxy-URI "/" (xri2-contextQXRI / xri3-contextQXRI )
+
proxy-URI            = ( "http://" / "https://" ) proxy-reg-name
+
proxy-reg-name        = "xri." ireg-name
+
</pre>
+
 
+
== Notes ==
+
 
+
# ".xrds" and ".xdi" are formats designed expressly for discovery and description of resources using HTTP(S) URIs and/or XRIs. XRDS format is defined by [http://www.oasis-open.org/committees/download.php/24286/xri-resolution-v2.0-wd-11-ed-02.doc XRI Resolution Working 2.0]. XDI format is being defined by the [http://www.oasis-open.org/committees/xdi OASIS XDI Technical Committee]. Other resource description file types can be supported by extending this ABNF rule.
+
# QXRI (Query XRI) is an XRI in URI-normal form without the "xri://" prefix (XRI 2.0) or "xri:" prefix (XRI 3.0). See Section 11.2 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0].
+
# HXRI (HTTP(S) XRI) is the format for encapsulating an XRI within an HTTP(S) URI for purposes of resolution by an XRI proxy resolver. See Section 6 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0].
+
 
+
== IdAS Related Nodes ==
+
* The Identity Attribute Service [[IdAS]] can be used as a service to access a Context given a ContextId.
+
* If two ContextId's values are equal, they refer to the same underlying Context, although not necessarily the same Context "container" instance returned by IdAS. This means that, as a requester of information, different clients of IdAS may see different subsets of the Context based on the authorization passed in during authentication.
+
== Examples ==
+
 
+
=== contextURI ===
+
 
+
==== contextfileURI ====
+
 
+
file://system/config/openid.xrds
+
file://system/config/openid.xdi
+
file://system/config/ldap.xrds
+
file://system/config/ldap.xdi
+
 
+
==== contexthttpURI ====
+
 
+
http://example.com
+
https://example.com
+
http://example.com/user
+
https://example.com/user
+
http://example.com/higgins/openid.xrds
+
https://example.com/higgins/openid.xdi
+
http://example.com/higgins/ldap.xrds
+
https://example.com/higgins/ldap.xdi
+
 
+
=== ContextQXRI ===
+
 
+
==== contextQXRI – XRI 2.0 Form ====
+
 
+
=drummond
+
=drummond/($context)
+
=drummond/($context)*($openid)
+
=drummond/($context)*($ldap)
+
=!F83.62B1.44F.2813
+
=!F83.62B1.44F.2813/($context)*($openid)
+
=!F83.62B1.44F.2813/($context)*($ldap)
+
=drummond*mom
+
=drummond*mom/($context)*($openid)
+
=drummond*mom/($context)*($ldap)
+
@example
+
@example/($context)
+
@example/($context)*($openid)
+
@example/($context)*($ldap)
+
@free*example
+
@free*example/($context)*($openid)
+
@free*example/($context)*($ldap)
+
 
+
==== contextQXRI – Proposed XRI 3.0 Form ====
+
 
+
=drummond
+
=drummond/$context
+
=drummond/$context$openid
+
=drummond/$context$ldap
+
=!F83.62B1.44F.2813
+
=!F83.62B1.44F.2813/$context$openid
+
=!F83.62B1.44F.2813/$context$$ldap
+
=drummond*mom
+
=drummond*mom/$context$openid
+
=drummond*mom/$context$ldap
+
@example
+
@example/$context
+
@example/$context$openid
+
@example/$context$ldap
+
@free*example
+
@free*example/$context$openid
+
@free*example/$context$ldap
+
 
+
=== contextHXRI ===
+
A contextHXRI is a ContextQXRI that uses an HXRI proxy resolver prefix. "xri.net" is a public HXRI proxy resolver operated by XDI.org. All others are examples.
+
 
+
==== contextHXRI – XRI 2.0 Form ====
+
 
+
http://xri.net/=drummond
+
http://xri.net/=drummond/($context)
+
https://xri.net/=drummond/($context)*($openid)
+
https://xri.net/=drummond*mom/($context)*($openid)
+
http://xri.example.com/@example/($context)*($openid)
+
http://xri.example.com/@free*example/($context)*($openid)
+
https://xri.example.org/@1000.a1b2.c3d4.9999!1234/($context)*($ldap)
+
 
+
==== contextHXRI – Proposed XRI 3.0 Form ====
+
 
+
http://xri.net/=drummond
+
http://xri.net/=drummond/$context
+
https://xri.net/=drummond/$context$openid
+
https://xri.net/=drummond*mom/$context$openid
+
http://xri.example.com/@example/$context$openid
+
http://xri.example.com/@example*free/$context$openid
+
https://xri.example.org/@1000.a1b2.c3d4.9999!1234/$context$ldap
+
 
+
== Context Discovery Rules ==
+
A key property of a [[ContextId]] is that it can be resolved into the metadata necessary open a [[Context]]. The complete process for doing this is described in [[Context Discovery]]. Following are the discovery rules that apply to each form of ContextId.
+
 
+
=== contextURI Discovery ===
+
Since URIs do not offer the structured identifier features of XRIs, they must resolve directly to an XRDS or XDI document containing the Higgins context configuration metadata for a specific context type.
+
 
+
==== contextfileURI ====
+
# Open the identified file.
+
# For an XRDS file, select the highest priority service endpoint that conforms to the [[Higgins XRDS Service Endpoint]] requirements.
+
# For an XDI X3 file, parse the Higgins context configuration metadata from the X3 document as described in [[Higgins XDI Context Descriptor]].
+
 
+
==== contexthttpURI ====
+
# Resolve the URI to a discovery document as specified in Section 6 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0].
+
## If the contexthttpURI ends in the context descriptor extension '''.xrds''' for an XRDS document, use the MIME type '''application/xrds+xml'''.
+
## If the contexthttpURI ends in the context descriptor extension '''.xdi''' for an XDI document, use the MIME type '''text/x3'''.
+
## If the contexthttpURI does not end in a context descriptor extension, use either or both of these MIME types as preferred in content negotiation with the server.
+
# If the MIME type of the discovery document is '''application/xrds+xml''', select the highest priority service endpoint that conforms to the [[Higgins XRDS Service Endpoint]] requirements.
+
# If the MIME type is '''text/x3''', parse the Higgins context configuration metadata from the X3 document as described in [[Higgins XDI Context Descriptor]].
+
 
+
=== contextXRI Discovery ===
+
Since XRIs are abstract structured identifiers intended designed explicitly for resource discovery and description, they offer more flexiblity in the discovery process.
+
 
+
==== Using XRDS ====
+
# Resolve the authority component of the XRI as specified in [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]. Trusted resolution is RECOMMENDED.
+
# From this XRDS document, select the [[Higgins XRDS Service Endpoint]] as defined in Section 13 of [http://docs.oasis-open.org/xri/2.0/specs/cd02/xri-resolution-V2.0-cd-02.pdf XRI Resolution 2.0]. Note that this provides a number of ways for ContextXRI authors to control service endpoint selection. Using the path component of the XRI to match a [[Higgins XRDS Service Endpoint]] is RECOMMENDED.
+
# Parse the Higgins context metadata as defined in [[Higgins XRDS Service Endpoint]].
+
 
+
==== Using XDI ====
+
# Resolution of the authority component of the XRI may use either XRDS resolution or XDI context discovery.
+
## For XRDS resolution, follow the same steps as described above, except that in the final XRDS document, the highest priority SEP of type '''xri://$xdi''' MUST be selected, and an XDI X3 document MUST be requested from that service endpoint URI.
+
## For XDI context discovery, resolve the authority component of the XRI as specified in the XDI Contexts section of [http://wiki.oasis-open.org/xdi/XdiRdfModel XDI RDF Model]] document.
+
# In both cases, from the final XDI document, parse the XDI context description as defined in [[Higgins XDI Context Descriptor]].
+
  
 
== Relationship to OpenID ==
 
== Relationship to OpenID ==

Revision as of 12:50, 13 June 2008

{{#eclipseproject:technology.higgins}}

Version

This page describes the Higgins ContextId Data Range UDI used in the Higgins Global Graph 1.1.

Definition

Definition

Relationship to OpenID

Any OpenID 2.0 identifier as defined by OpenID Authentication 2.0 may function as a Higgins ContextId. OpenID 2.0 supports both URLs and XRIs. All of the examples of contexthttpURI and contextXRI above are valid OpenID 2.0 identifiers.

The only caveat to keep in mind is that if an OpenID 2.0 URL is used as a Higgins ContextId, the XRDS or XDI document to which it resolves must EITHER contain:

  • Only one XRDS service endpoint or XDI context reference describing the target Context, OR
  • The consuming application must know how to select the XRDS service endpoint or XDI context descriptor it requires (i.e., it must know which Higgins Context Type it is seeking).

Used as a Value Data Range By

See Also

Back to the top