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"

(See Also)
(Redirecting to ContextId)
 
(33 intermediate revisions by 3 users not shown)
Line 1: Line 1:
== Introduction ==
+
#REDIRECT [[ContextId]]
This page describes the Higgins [[ContextIdDatatype]] [[Attribute Value Datatype]]
+
 
+
== Definition ==
+
* A [[ContextIdDatatype]] MUST conform to the ABNF defined below.
+
 
+
== Syntax ==
+
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:
+
* '''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          = 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].
+
 
+
== 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
+
https://example.com
+
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 Reference]].
+
 
+
==== 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 Reference]].
+
 
+
=== 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 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 Reference]].
+
 
+
== See Also ==
+
* [[ContextId]]
+

Latest revision as of 22:50, 9 November 2010

Redirect to:

Back to the top