|
|
(74 intermediate revisions by the same user 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 "/" [ xri-segment ]
| + | |
− | contextHXRI = proxy-resolver "/" contextQXRI
| + | |
− | proxy-resolver = ( "http://" / "https://" ) proxy-reg-name
| + | |
− | proxy-reg-name = "xri." ireg-name
| + | |
− | | + | |
− | subjectId = ifragment / xri-segment
| + | |
− | | + | |
− | subjectRelation = subjectRelationURI / subjectRelationXRI
| + | |
− | subjectRelationURI = contextURI "#" ifragment
| + | |
− | subjectRelationXRI = contextXRI "/" xri-segment
| + | |
− | | + | |
− | 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]
| + | |