Human Services standard and API
This repository provides source code, resources and utilities for English extensions to the Open Referral standard for human services data. It contains:
- Proposed extensions to the Open Referral schema
- Application profiles on the extended schema to describe English services
- Data format definitions and proposed vocabularies
- API calls to conforming database applications
- A sample Service Finder application using the API
For the English Local Government Association (LGA) pilot work on Loneliness (supporting the Department for Digital, Culture, Media and Sport (DCMS) Tackling Loneliness Strategy) we will provide an application profile and API on a database taking data from three pilot local authorities. The blog Not another directory of services! describes how the content here fits into the LGA project.
For Open Community alpha work led by Buckinghamshire County Council, we will provide an application profile and test approaches recommended by the OpenCommunity Discovery Report - The case for a community-based services data standard. We will provide API calls to update data and provide sample data entry tools.
By comparing the two application profiles we can test the viability of moving fast to a single English standard that builds on (and whose core is compatible with) Open referral.
The Local Digital Declaration insists on “modular building blocks for the IT we rely on, and open standards to give a common structure to the data we create”. The human service standard is intended to support the modular approach illustrated below.
Data consumers query service data via an API (see below) from directories that output in a format compliant with the standard. Aggregators take data from compliant directories and merge it to provide more comprehensive data for consuming applications.
The Loneliness project will test taking data from three pilot local authorities and serving it to a sample Service Finder application (to come here). The Project is also testing the usefulness of specific taxonomies and the viability of inferring the types of service most suitable to a user based on their needs and circumstances. We’ll also assess compatibility with the OpenActive opportunity data model and the feasibility of transforming open active data feeds to be compliant with the services standard.
Open Community work is testing data capture software, de-duplication of merged data and how easily the data can be consumed by applications.
The OpenReferral schema defines a structure for human services data. We extend the schema to support richer data where prior work indicates it is needed. We constrain the resultant schema by means of an application profile which says what fields are recommended for English use and what external vocabularies to reference.
For the LGA/DCMS Loneliness project application profile, these resources describe the schema:
- Documentation for the application profile giving each table/class and their fields/properties
- Tabular data package with extensions and application profiles
- Application profile entity relation diagram
- JSON schema for a service - simple and verbose
For Open Community alpha work led by Buckinghamshire County Council, we compared the proposed changes to Open Referral arising from the discovery phase work with those proposed by LGA work. The document BUCKS Community Services Data as an Application Profile of Open Referral details the comparison and resultant application profile changes with a MoSCoW rating. These changes are recorded in machine readable format as a second application profile in the Tabular data package with extensions and application profiles. From this we auto-generated:
We are assessing the LGA/DCMS and Open Community application profiles against refined user stories, illustrative applications and smaple imported data with aview to recommending a unified schema for English services.
The SchemaGenerator folder gives more schemas and code for generating them and other resources from a tabular data package.
An alpha API is being developed to get and post data in the standard format.
Here is Swagger documentation for the API based on alpha web-sevices. API responses for methods which get services, organizations, etc are in the schema’s JSON format.
Different API endpoints will be supported for different databases. Currently the http://api.porism.com/ServiceDirectoryService/ end point serves historic Bristol services data for illustration with no guarantees on accuracy. A few demonstration services with all properties populated are being added to the end point http://api.porism.com/ServiceDirectoryServiceDemo/.
We’ll provide a tool to help construct API calls and visualise results.
Here are some sample API calls:
- Get all services: http://api.porism.com/ServiceDirectoryService/services/
- Get service 1: http://api.porism.com/ServiceDirectoryService/services/1
- Get vocabularies: http://api.porism.com/ServiceDirectoryService/vocabularies/
- Get taxonomy terms in “BCC Age Group” vocabulary: http://api.porism.com/ServiceDirectoryService/taxonomies/?vocabulary=BCC%20Age%20Group
- Get services for “BCC Age Group” vocabulary "bccagegroup:18" taxonomy term (Older People): http://api.porism.com/ServiceDirectoryService/services/?vocabulary=BCC%20Age%20Group&taxonomy_id=bccagegroup:18
- Get taxonomy terms in “esdServiceTypes” vocabulary: http://api.porism.com/ServiceDirectoryService/taxonomies/?vocabulary=esdServiceTypes
- Get services for “esdServiceType” vocabulary "http://id.esd.org.uk/service/833" taxonomy term (leaving Hospital): http://api.porism.com/ServiceDirectoryService/services/?vocabulary=esdServiceType&taxonomy_id=http://id.esd.org.uk/service/833
The API is freely available for reasonable use for public and private organisations. It is subject to ongoing development and there are no guarantees on its stability or longevity. It may be modified to require credentials in future.