Skip to main content
Jump to: navigation, search

Higgins XRDS Service Endpoint

{{#eclipseproject:technology.higgins}} This page describes the XRDS convention Higgins uses to discover metadata about a ContextId necessary to resolve and access its Context. The mechanism itself is described in Context Discovery

Introduction

A Higgins XRDS Service Endpoint is a Higgins convention on the use of service endpoints (SEPs) in an XRDS document. XRDS documents and SEP construction and selection are fully defined in XRI Resolution 2.0. A Higgins SEP is obtained either from a ContextURI (using standard "Yadis" discovery, defined in Section 6 of XRI Resolution 2.0) or from a ContextXRI (using standard XRI resolution), and contains all information needed to instantiate a Higgins Context (i.e. a datastore containing identity information such as an LDAP directory or a Facebook account).

Higgins SEPs are therefore a key enabling building block for the Context Data Model and specifically the Higgins Global Graph: They act as discoverable "pointers" into contexts containing slices of your identity.

Note: see also Higgins XDI Context Reference – these contain identical data/metadata as in a Higgins XRDS Service Endpoint, but in XDI format.

Higgins XRDS Service Endpoint

The information in a Higgins XRDS Service Endpoint can be summarized as follows:

  • One or more Context Types: This is a string that identifies the underlying technology of the Context. Based on this string, a suitable Context Provider is selected to instantiate the context.
  • (Optional) The schema of the context: This is a URL pointing to a HOWL file describing the context's schema (i.e. the kind of subjects and attributes in the context). For example, a context may contain "people" who have "names", "e-mail addresses" and "friends". This schema is based on the Higgins Data Model. It is optional, because for privacy reasons it may not always be desirable to publicly advertise the schema without first authenticating to the context.
  • (Optional) Context authentication type: The type of authentication materials needed to open the context (e.g. a password).
  • (Optional) Context configuration: Arbitrary information required to instantiate the Higgins Context (e.g. the address of a server to connect to).

Examples

Facebook account

Consider a Higgins Node Relation pointing to a facebook account: @higgins*contexts/$context@facebook//2345673826

  • @higgins*contexts/$context@facebook is the ContextId XRI that resolves to the SEP below.
  • 2345673826 is the relative NodeId, i.e. the unique identifier in the context that can be instantiated using the metadata in the SEP below.
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context@facebook</Path>
 
 	<Type select="true">$context@facebook</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.higgins-project.org/schemas/facebook.owl</hconf:Schema>
 
 	<hconf:Configuration>
 
 		<Setting Name="apikey" Type="xsd:string">FB8189237498</Setting>
 
 	</hconf:Configuration>
 
 </Service>

LDAP directory

Consider a Higgins Relation pointing to a user in an LDAP directory. In this example, the relation can be expressed as both an XRI or a URI:

  1. XRI: @parity*contexts/$context$ldap//msabadello
  2. URI: http://ldap.parityinc.inc#msabadello

In this XRI:

  • @parity*contexts/$context$ldap is the ContextId that resolves to the SEP below within the XRDS document. Note that the @parity*contexts XRDS document may contain multiple SEPs – it is the XRI path $context$ldap that is used to select the SEP below (see the Service Endpoint Selection rules in section 13 of XRI Resolution 2.0.
  • msabadello is the SubjectId, i.e. the unique identifier in the context.

In this URI:

  • http://ldap.parityinc.inc resolved directly to an XRDS document as defined in section 6 of XRI Resolution 2.0.
  • This XRDS document must contain only the SEP below (OR the consuming application must know to select this type of SEP).
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context$ldap</Path>
 
 	<Type select="true">$context$ldap</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.parityinc.net/schemas/ldap.owl</hconf:Schema>
 
 	<hconf:Configuration>
 
 		<Setting Name="Connection" Type="htf:map">
 			<Setting Name="ConnectionType" Type="xsd:string">LDAP</Setting>
 			<Setting Name="AddressList" Type="htf:list">
 				<Setting Name="Address" Type="xsd:string">ldap://ldap.parityinc.net:389</Setting>
 			</Setting>
 			<Setting Name="jndiProvider" Type="xsd:string">com.sun.jndi.ldap.LdapCtxFactory</Setting>
 		</Setting>
 		<Setting Name="env" Type="htf:map">
 			<Setting Name="java.naming.security.authentication" Type="xsd:string">simple</Setting>
 		</Setting>
 
 	</hconf:Configuration>
 
 </Service>

XDI endpoint

Example Higgins Relation pointing to a subject at an XDI endpoint: @parity*contexts/$context$xdi+ldap//=markus

  • =markus is the SubjectId, i.e. the unique identifier in the context.
  • @parity*contexts/$context$xdi+ldap is the ContextId, it resolves to the following SEP:
 <Service priority="10" xmlns:hconf="http://higgins.eclipse.org/Configuration">
 
 	<Path select="true">$context$xdi+ldap</Path>
 
 	<Type select="true">$context$xdi+ldap</Type>
 	<Type>$context</Type>
 
 	<hconf:Schema>http://www.parityinc.net/schemas/xdi-test.owl</hconf:Schema>
 
 	<URI>http://graceland.parityinc.net/xdi-endpoint/idas</URI>
 
 </Service>

See Also

Links

Back to the top