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:PostalAddressbnode. 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:Certificationand termsschema:certificationIdentification, usually the registration number, andschema: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, andstreetAddress. email- A general contact email address for the organization.
companyRegistration- A JSON object with properties
identifier, usually the registration number, andissuedBy, 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
{
"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
conformsToquery 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"
},
{
// ...
}
]
}