Skip to content

Directory

The Directory provides structured, discoverable, and machine-readable metadata about Members (Organizations) and Applications registered in the Trust Framework, and the Data Catalog of Datasets and Data Services (APIs) provided by the members. It provides query endpoints for use by applications and humans.

Directory contents are queryable via:

  • RDF representations with content negotiation
  • Parameterized JSON endpoints
  • SPARQL queries

User Interface

The Directory provides a user interface for interactive exploration and querying. Result pages have stable URLs that do not change, and are suitable for inclusion in documentation.

Access control

All information in the Directory is public. The Directory APIs and RDF resources do not require authentication.

RDF Prefixes

This specification uses the following prefixes:

  dcterms: http://purl.org/dc/terms/
  schema:  http://schema.org/
  ib1:     https://registry.trust.ib1.org/ns/1.0#

RDF Representations

The Directory publishes RDF representations of:

  • Members at /m/<id>
  • Applications at /a/<id>

These resources respond to content negotiation, supporting text/turtle, application/ld+json, and application/rdf+xml.

Member

Each Member is represented in an RDF resource as a schema:Organization. The following terms are included:

schema:legalName
The full registered legal name of the organization.
schema:legalAddress
The organization's registered address, as a schema:PostalAddress bnode. Includes country, region (county, state), and street address.
schema:email
A general contact email address for the organization.
schema:companyRegistration
A bnode with type schema:Certification and terms schema:certificationIdentification, usually the registration number, and schema:issuedBy, the Registry URL of the issuing organisation.
ib1:role
The roles of the Member, as URLs of Role definitions in the Registry.
schema:logo
A URL pointing to a hosted logo image file for the Member.
ib1:assuranceLevel
A URI indicating the assurance level granted to the organization by the Trust Framework.
ib1:privacyPolicy
URL of the Member's privacy policy.

Example

@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix schema: <http://schema.org/> .
@prefix ib1: <https://registry.trust.ib1.org/ns/1.0#> .

<https://directory.core.trust.ib1.org/m/827252>
    a schema:Organization ;
    schema:legalName "Example Company Ltd" ;
    schema:email "contact@example.com" ;
    schema:address [
        a schema:PostalAddress ;
        schema:addressCountry "GB" ;
        schema:postalCode "SE1 1AA" ;
        schema:addressRegion "Greater London" ;
        schema:addressLocality "London" ;
        schema:streetAddress "123 High Street" ;
    ] ;
    schema:companyRegistration [
        a schema:Certification ;
        schema:certificationIdentification "1234567" ;
        schema:issuedBy "https://registy.trust.ib1.org/organization/companies-house" ;
    ] ;
    schema:logo <https://example.com/media/logos/example.png> ;
    ib1:role <https://registry.core.trust.ib1.org/scheme/energy/role/data-provider> ,
             <https://registry.core.trust.ib1.org/scheme/energy/role/auditor> ;
    ib1:assuranceLevel https://registry.trust.ib1.org/organization-assurance-level/Level2 ;
    ib1:privacyPolicy <https://example.com/privacy> ;
.

Application

Each Application is represented in an RDF resource as an ib1:Application. The following terms are included:

dcterms:publisher
The Directory URL of the Member publishing this Application.
dcterms:title
The human-readable name of the application.
dcterms:description
A longer description of the application's function or capabilities.
ib1:scheme
URL of the Scheme this Application is a member of.
ib1:role
The roles of the application, as URLs of Role definitions in the Registry.
ib1:homePageURL
URL of the application's homepage.
ib1:supportURL
URL for user or developer support.

Example

@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix schema: <http://schema.org/> .
@prefix ib1: <https://registry.trust.ib1.org/ns/1.0#> .

<https://directory.core.trust.ib1.org/a/883391>
    a ib1:Application ;
    dcterms:publisher <https://directory.core.trust.ib1.org/m/827252> ;
    dcterms:title "ExampleApp" ;
    dcterms:description "ExampleApp provides energy data." ;
    ib1:scheme <https://registry.core.trust.ib1.org/scheme/energy> ;
    ib1:role <https://registry.core.trust.ib1.org/scheme/energy/role/data-provider> ,
             <https://registry.core.trust.ib1.org/scheme/energy/role/auditor> ;
    ib1:homePageURL <https://exampleapp.com> ;
    ib1:supportURL <https://support.exampleapp.com>
.

SPARQL Endpoint

Endpoint: /sparql

Supports complex queries across:

  • Directory content (Members, Applications, etc.)
  • Registry metadata (Roles, Licenses, etc.)
  • Data Catalog entries (Datasets and Data Services (APIs))

This endpoint supports GET with URL-encoded queries and POST for large or complex queries. Standard SPARQL result formats (application/sparql-results+json, application/sparql-results+xml) are supported.

JSON queries

The Directory provides convenient APIs returning results as JSON data structures for common queries. Using the SPARQL endpoint provides the full query capabilities and access to the entire data managed by the Directory and Registry.

Members with Role

Endpoint: /query/members-with-role?role=<role registry URL>

Returns an array in the members property of Members, as JSON objects with properties:

id
The Member's Directory URL.
legalName
The full registered legal name of the organization.
legalAddress
The organization's registered address as a JSON object with properties country, postalCode, region, locality, and streetAddress.
email
A general contact email address for the organization.
companyRegistration
A JSON object with properties identifier, usually the registration number, and issuedBy, the Registry URL of the issuing organisation.
roles
An array of Registry Role URLs.
logo
A URL pointing to a hosted logo image file for the Member.
assuranceLevel
A URI indicating the assurance level granted to the organization by the Trust Framework.
privacyPolicy
URL of the Member's privacy policy.

Example

GET /query/members-with-role?role=https://registry.trust.ib1.org/scheme/electricity/role/generator
{
  "members": [
    {
      "id": "https://directory.core.trust.ib1.org/m/827252",
      "legalName": "Example Company Ltd",
      "email": "contact@example.com",
      "address" : {
          "country": "GB",
          "postalCode": "SE1 1AA",
          "region": "Greater London",
          "locality": "London",
          "streetAddress": "123 High Street"
      },
      "companyRegistration": {
          "identifier": "1234567",
          "issuedBy": "https://registy.trust.ib1.org/organization/companies-house"
      },
      "logo": "https://example.com/media/logos/example.png",
      "roles": [
          "https://registry.core.trust.ib1.org/scheme/energy/role/data-provider",
          "https://registry.core.trust.ib1.org/scheme/energy/role/auditor"
      ],
      "assuranceLevel": "https://registry.trust.ib1.org/organization-assurance-level/Level2",
      "privacyPolicy": "https://example.com/privacy"
    },
    {
      // ...
    }
  ]
}

Data Catalog APIs by conformsTo

Endpoint: /query/data-catalog/api?conformsTo=<url1>&conformsTo=<url2>&...

Returns a JSON array of Data Service entries which conform to one or more specified standards. The conformsTo parameter may be includes more than once to specify an OR operation across all API implementations.

Only summary metadata is returned. Use the SPARQL endpoint for full metadata.

Returns an array in the apis property of API information, as JSON objects with properties:

title
Human readable name of the API implementation.
publisher
Directory URL of the Member which provides this API.
conformsTo
Which standard this API conforms to. The value will be one of the conformsTo query parameters.
endpointURL
The endpoint base URL from the Data Catalog Entry.
oauthIssuer
If present in the Data Catalog Entry, the URL of the OAuth Issuer which controls access to this implementation.

Example

GET /query/data-catalog/api?conformsTo=https://registry.trust.ib1.org/scheme/electricity/standard/supply-voltage
{
  "apis": [
    {
      "title": "Grid Voltage API",
      "publisher": "https://directory.core.trust.ib1.org/m/827252",
      "conformsTo": "https://registry.trust.ib1.org/scheme/electricity/standard/supply-voltage",
      "endpointURL": "https://grid03.api.example.com/generation-voltage/v0",
      "oauthIssuer": "https://auth.gridapi.example.com"
    },
    {
      // ...
    }
  ]
}