Skip to main content
Jump to: navigation, search

Difference between revisions of "ContextId"

m (ABNF: typo)
m
 
(57 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== Introduction ==
+
[[Image:Higgins_logo_76Wx100H.jpg|right]]
This page describes and defines a Higgins [[ContextId]].
+
== Version ==
See also: [[Context Discovery]] and [[Context Discovery Components]].
+
This page describes the concept of a [[ContextId]] as used in [[Context Data Model 2.0]].
  
 
== Definition ==
 
== Definition ==
A '''ContextId''' is a URI or XRI that identifies one [[Context]].
+
* An identifier of a [[Context]]  
* A [[ContextId]] MUST conform to the ABNF defined below.
+
* A ''Context UDI'' as defined in [http://www.azigo.com/udi/udi-syntax.html UDI Syntax]
* [[ContextId]]s either directly or indirectly (e.g. by resolution) provide sufficient information to both identify and open a [[Context]]. See [[Context Discovery]].
+
* Two different [[ContextId]]s may refer to the same [[Context]].
+
* If two [[ContextId]]s are equal, they refer to the same underlying [[Context]] dataset, although not necessarily the same [[Context]] "container" instance. This means a different [[Digital Identity]], based on the authorization passed in during authentication, may see different subsets of the [[Context]]. A given [[ContextId]] may be used against multiple [[Context Provider]]s to produce the same [[Context]] (although, as mentioned, different [[Context]] instances).
+
* The [[Identity Attribute Service (IdAS)]] can be used as a service to access a [[Context]] given a [[ContextId]]
+
  
== ABNF ==
+
[[Category:Context Data Model 2.0]]
This [http://en.wikipedia.org/wiki/Augmented_Backus-Naur_form ABNF] defines a Higgins [[ContextId]]. 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]).
+
 
+
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        = [ "xri://" ] contextQXRI /                                                  ;see note 2
+
                      contextHXRI                                                                ;see note 3
+
contextQXRI        = xri-authority ( "/($context) [ "*" / "!" ] / "/$context" ) [ xri-segment ]  ;see note 4
+
contextHXRI        = proxy-resolver "/" contextQXRI
+
proxy-resolver    = ( "http://" / "https://" ) proxy-reg-name
+
proxy-reg-name    = "xri." ireg-name
+
 
+
Notes:
+
 
+
# These are the first two file types are 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 OASIS XDI Technical Committee. Future file types can be supported by extending this ABNF rule.
+
# QXRI (Query XRI) is an XRI in URI-normal form without the "xri://" prefix. See [http://www.oasis-open.org/committees/download.php/24286/xri-resolution-v2.0-wd-11-ed-02.doc 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 8 of [http://www.oasis-open.org/committees/download.php/24286/xri-resolution-v2.0-wd-11-ed-02.doc XRI Resolution 2.0].
+
# The two different forms of QXRI path shown here -- '''/($context)''' and '''/$context''' -- are to accommodate both [http://wiki.oasis-open.org/xri/XriCd02/Xri2dot0Abnf XRI 2.0 syntax] and the [http://wiki.oasis-open.org/xri/XriThree/SyntaxAbnf simplified syntax proposed for XRI 3.0].
+
 
+
== Examples ==
+
 
+
=== ContextURI ===
+
A ContextId in ContextURI form can be either a file or HTTP(S) URI. In either case it must end with either ".xrds" or ".xdi".
+
 
+
file://system/config/higgins.xrds
+
file://system/config/higgins.xdi
+
http://example.com/higgins/ldap.xrds
+
https://example.com/higgins/ldap.xdi
+
 
+
=== ContextQXRI ===
+
A ContextQXRI (Query XRI) is a pure XRI in XRI-normal form that does not include the "xri://" prefix.
+
 
+
=drummond/
+
=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+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.
+
 
+
http://xri.net/=drummond/
+
https://xri.net/=drummond/$context+openid
+
http://xri.example.com/@example/$context+openid
+
https://xri.example.org/@1000.a1b2.c3d4.9999/$context+ldap
+
 
+
== Open Issues ==
+
# Should the contextId ABNF support IRI (Internationalized Resource Identifiers) and not just URIs? Note that the ABNF above uses IRI rules; this needs to be changed if only URIs will be supported.
+
 
+
== See Also ==
+
* [[SubjectId]]
+
* [[Relation]]
+
* [[Concepts]]
+
 
+
== Links ==
+
* [http://eclipse.org/higgins Higgins Home]
+

Latest revision as of 11:35, 31 May 2021

Higgins logo 76Wx100H.jpg

Version

This page describes the concept of a ContextId as used in Context Data Model 2.0.

Definition

Back to the top