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 "ContextId"

(ABNF)
m
 
(68 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 ==
 +
* An identifier of a [[Context]]
 +
* A ''Context UDI'' as defined in [http://www.azigo.com/udi/udi-syntax.html UDI Syntax]
  
* A [[ContextId]] is a URI or XRI that identifies one [[Context]].
+
[[Category:Context Data Model 2.0]]
* A [[ContextId]] MUST conform to the ABNF defined below.
+
* [[ContextId]]s either directly or indirectly (e.g. by resolution) provide sufficient information to identify a [[Context]].
+
* 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, and, based on the authorization of the [[Digital Identity]] passed in during authentication, may only be permitted to see a subset of its contents.
+
* A given [[ContextId]] may be used against multiple [[Context Factory | Context Factories]] 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 ==
+
Note that this [http://en.wikipedia.org/wiki/Augmented_Backus-Naur_form ABNF] also defines a Higgins [[SubjectId]] and [[Subject Relation]].
+
 
+
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 ]
+
contextHXRI        = proxy-resolver "/" contextQXRI
+
proxy-resolver    = ( "http://" / "https://" ) proxy-reg-name
+
proxy-reg-name    = "xri." ireg-name
+
 
+
subjectId          = ifragment / xri-segment
+
 
+
relation          = relationURI / relationXRI
+
relationURI        = contextURI ["#" subjectId]
+
relationXRI        = contextXRI ["//" subjectId]
+
 
+
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].
+
 
+
== 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.
+
# Do we need a method in IdAS to test that two given ContextIds actually resolve to the same [[Context]]?
+
 
+
== See Also ==
+
* [[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