oasis

Behavioural Atom Protocol Version 1.0

Committee Specification Draft 02 /
Public Review Draft 01

13 October 2016

Specification URIs

This version:

http://docs.oasis-open.org/coel/BAP/v1.0/csprd01/BAP-v1.0-csprd01.docx (Authoritative)

http://docs.oasis-open.org/coel/BAP/v1.0/csprd01/BAP-v1.0-csprd01.html

http://docs.oasis-open.org/coel/BAP/v1.0/csprd01/BAP-v1.0-csprd01.pdf

Previous version:

http://docs.oasis-open.org/coel/BAP/v1.0/csd01/BAP-v1.0-csd01.docx (Authoritative)

http://docs.oasis-open.org/coel/BAP/v1.0/csd01/BAP-v1.0-csd01.html

http://docs.oasis-open.org/coel/BAP/v1.0/csd01/BAP-v1.0-csd01.pdf

Latest version:

http://docs.oasis-open.org/coel/BAP/v1.0/BAP-v1.0.docx (Authoritative)

http://docs.oasis-open.org/coel/BAP/v1.0/BAP-v1.0.html

http://docs.oasis-open.org/coel/BAP/v1.0/BAP-v1.0.pdf

Technical Committee:

OASIS Classification of Everyday Living (COEL) TC

Chairs:

David Snelling (David.Snelling@UK.Fujitsu.com), Fujitsu Limited

Joss Langford (joss@activinsights.co.uk), Activinsights Ltd

Editor:

Joss Langford (joss@activinsights.co.uk), Activinsights Ltd

Related work:

This specification is related to:

·         Classification of Everyday Living Version 1.0. Edited by Joss Langford. Latest version: http://docs.oasis-open.org/coel/COEL/v1.0/COEL-v1.0.html.

·         Roles, Principles, and Ecosystem Version 1.0. Edited by Matthew Reed. Latest version: http://docs.oasis-open.org/coel/RPE/v1.0/RPE-v1.0.html.

·         Minimal Management Interface Version 1.0. Edited by David Snelling. Latest version: http://docs.oasis-open.org/coel/MMI/v1.0/MMI-v1.0.html.

·         Identity Authority Interface Version 1.0. Edited by Paul Bruton. Latest version: http://docs.oasis-open.org/coel/IDA/v1.0/IDA-v1.0.html.

·         Public Query Interface Version 1.0. Edited by David Snelling. Latest version: http://docs.oasis-open.org/coel/PQI/v1.0/PQI-v1.0.html.

Abstract:

This document defines a protocol for data exchanges that are capable of describing, querying and reporting a human activity event (Behavioural Atom) using the COEL model classification, as well as the context in which it took place (e.g. time, location).

Status:

This document was last revised or approved by the OASIS Classification of Everyday Living (COEL) TC on the above date. The level of approval is also listed above. Check the “Latest version” location noted above for possible later revisions of this document. Any other numbered Versions and other technical work produced by the Technical Committee (TC) are listed at https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=coel#technical.

TC members should send comments on this specification to the TC’s email list. Others should send comments to the TC’s public comment list, after subscribing to it by following the instructions at the “Send A Comment button on the TC’s web page at https://www.oasis-open.org/committees/coel/.

For information on whether any patents have been disclosed that may be essential to implementing this specification, and any offers of patent licensing terms, please refer to the Intellectual Property Rights section of the TC’s web page (https://www.oasis-open.org/committees/coel/ipr.php).

Citation format:

When referencing this specification the following citation format should be used:

[COEL-BAP-v1.0]

Behavioural Atom Protocol Version 1.0. Edited by Joss Langford. 13 October 2016. OASIS Committee Specification Draft 02 / Public Review Draft 01. http://docs.oasis-open.org/coel/BAP/v1.0/csprd01/BAP-v1.0-csprd01.html. Latest version: http://docs.oasis-open.org/coel/BAP/v1.0/BAP-v1.0.html.

 

Notices

Copyright © OASIS Open 2016. All Rights Reserved.

All capitalized terms in the following text have the meanings assigned to them in the OASIS Intellectual Property Rights Policy (the "OASIS IPR Policy"). The full Policy may be found at the OASIS website.

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published, and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this section are included on all such copies and derivative works. However, this document itself may not be modified in any way, including by removing the copyright notice or references to OASIS, except as needed for the purpose of developing any document or deliverable produced by an OASIS Technical Committee (in which case the rules applicable to copyrights, as set forth in the OASIS IPR Policy, must be followed) or as required to translate it into languages other than English.

The limited permissions granted above are perpetual and will not be revoked by OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY OWNERSHIP RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

OASIS requests that any OASIS Party or any other party that believes it has patent claims that would necessarily be infringed by implementations of this OASIS Committee Specification or OASIS Standard, to notify OASIS TC Administrator and provide an indication of its willingness to grant patent licenses to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification.

OASIS invites any party to contact the OASIS TC Administrator if it is aware of a claim of ownership of any patent claims that would necessarily be infringed by implementations of this specification by a patent holder that is not willing to provide a license to such patent claims in a manner consistent with the IPR Mode of the OASIS Technical Committee that produced this specification. OASIS may include such claims on its website, but disclaims any obligation to do so.

OASIS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on OASIS' procedures with respect to rights in any document or deliverable produced by an OASIS Technical Committee can be found on the OASIS website. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this OASIS Committee Specification or OASIS Standard, can be obtained from the OASIS TC Administrator. OASIS makes no representation that any information or list of intellectual property rights will at any time be complete, or that any claims in such list are, in fact, Essential Claims.

The name "OASIS" is a trademark of OASIS, the owner and developer of this specification, and should be used only to refer to the organization and its official outputs. OASIS welcomes reference to, and implementation and use of, specifications, while reserving the right to enforce its marks against misleading uses. Please see https://www.oasis-open.org/policies-guidelines/trademark for above guidance.

Table of Contents

1        Introduction. 5

1.1 Terminology. 5

1.2 Normative References. 5

1.3 Non-Normative References. 5

2        HTTP Protocol 6

2.1 Media Types for Messages. 6

2.2 Operations. 6

2.2.1 Data Engine Information Request 6

2.2.2 Atom POST. 7

2.3 Security. 9

2.4 Exceptions. 9

3        Atom Object Definition (JSON) 10

3.1 Header 10

3.2 Context 10

3.3 When. 11

3.4 What 11

3.5 How. 12

3.6 Where. 12

3.7 Who. 13

3.8 Consent 13

3.9 Extension. 15

3.10 Examples. 16

4        Conformance. 17

Appendix A. Acknowledgments. 18

Appendix B. Revision History. 19

 


1      Introduction

Behavioural Atoms represent distinct human behavioural events. Their granularity has been designed so that they are small in terms of data volume but detailed enough to capture a single human behaviour (e.g. eating egg based noodles or swimming laps of butterfly). The format of the Behavioural Atom allows many aspects of a human activity event to be coded – the type of event, the individual that the event relates to, the time it occurred, how it was recorded, location and context. The coding for the type of event references the hierarchical taxonomy defined in the Classification of Everyday Living [COEL_COEL-1.0].

 

This document describes the Behavioural Atom format and protocol for transmitting Atoms in this format to a Data Engine.

1.1 Terminology

The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in [RFC2119].

1.2 Normative References

[RFC2119]               Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels”, BCP 14, RFC 2119, March 1997. http://www.ietf.org/rfc/rfc2119.txt.

[RFC2616]               R. Fielding et al, Hypertext Transfer Protocol – HTTP/1.1, http://www.ietf.org/rfc/rfc2616.txt.

[RFC3986]               T.Berners-Lee et al, Uniform Resource Identifiers (URI): Generic Syntax, August 1998, http://www.ietf.org/rfc/rfc3986.txt.

[RFC4627]               D. Crockford, The application/json Media Type for JavaScript Object Notation (JSON), July 2006, http://www.ietf.org/rfc/rfc4627.txt.

[RFC5246]               T. Dierks and E. Rescorla, The Transport Layer Security (TLS) Protocol Version 1.2, http://www.ietf.org/rfc/rfc5246.txt.

[COEL_RPE-1.0]     Roles, Principles, and Ecosystem Version 1.0. Latest version: http://docs.oasis-open.org/coel/RPE/v1.0/RPE-v1.0.docx

[COEL_IDA-1.0]      Identity Authority Interface Version 1.0. Latest version: http://docs.oasis-open.org/coel/IDA/v1.0/IDA-v1.0.docx

[COEL_COEL-1.0]   Classification of Everyday Living Version 1.0. Latest version: http://docs.oasis-open.org/coel/COEL/v1.0/COEL-v1.0.docx

[Weather]                OpenWeatherMap, Weather Condition Codes. Latest version: http://openweathermap.org/weather-conditions.

[ISO 3166]              ISO 3166 Country codes. Latest version: http://www.iso.org/iso/country_codes

[MVCR-v0.7.9]         Kantara CISWG Consent Receipt. Latest version: https://kantarainitiative.org/confluence/display/infosharing/Home  

1.3 Non-Normative References

[Data to Life]          Reed, M. & Langford, J. (2013). Data to Life. Coelition, London. ISBN 978-0957609402

2      HTTP Protocol

All interfaces are designed around the HTTP protocol stack [HTTP] and in particular rely on the REST based operational model. Each message includes one of the HTTP verbs, in particular GET or POST only, and further information depending on the operation being performed. This later information is included in the message body and encoded in JSON format [JSON].

In line with REST style protocol conventions, all accessible entities in the system SHALL be identifiable and reachable through dereferencing a URL unique to that entity. Entry to the system as a whole is via a well-known initial URI, known as the Data Engine Home URI.

2.1 Media Types for Messages

If the media type is present in the message, it SHALL be “application/json”. Atom server implementations SHALL accept message with this media type or none. However, they MAY reject malformed or oversized messages.

2.2 Operations

Only two operations are supported by the Behavioural Atom Protocol. The first is a GET operation directed at the Data Engine Home URI, which returns general information about the Data Engine and in particular the URI of the Atom POST operation URI.

2.2.1 Data Engine Information Request

Every Data Engine SHALL publish its Data Engine Home URI. Performing a GET on this URI SHALL return general information about the Data Engine as JSON object. 

 

Method

Request

Response

Status

Response Content-Type

Response Body

GET

None

200 (OK)

application/json

JSON object

POST

Any

405 (Method Not Allowed)

None

None

 

Format for the returned JSON Object:

Name

Value

Description

REQUIRED

AtomsURI

String

The URI of the Atoms service encoded as a string.

Yes

QueryURI

String

The URI of the Query service encoded as a string.

Yes

ManagementURI

String

The URI of the Management service encoded as a string.

Yes

ServerTime

Integer

Current server time in UTC as a Unix timestamp.

Yes

AtomsStatus

String

The current status of the Atoms service encoded as a string. It MUST be one of “Up”, “Down”, or “Unknown”.

Yes

QueryStatus

String

The current status of the Query service encoded as a string. It MUST be one of “Up”, “Down”, or “Unknown”.

Yes

ManagementStatus

String

The current status of the Management service encoded as a string. It MUST be one of “Up”, “Down”, or “Unknown”.

Yes

 

The JSON object of the response MAY contain additional fields with information about the Data Engine.

 

Example request message:       

GET /home

 

Example response message:    

HTTP/1.1 200 OK

 

{“AtomsURI”: “https://www.dataengine.com/atoms”,

 “QueryURI”: “https://www.dataengine.com/query”,

 “ManagementURI”: “https://www.dataengine.com/management”,

 “AtomsStatus”: “Up”,

 “QueryStatus”: “Up”,

 “ManagementStatus”, “Up”,

 “ServerTime”: 1470822001}

2.2.2 Atom POST

To add a Behavioural Atom to the Data Engine, a POST operation SHALL be sent to the Atom POST URI obtained by a preceding GET on the Data Engine Home URI. The POST SHALL include a non-empty body containing either a single JSON Atom Object or a JSON array containing one or more Atom Objects. The Content-Type of the message MUST be ‘application/json’.

The operation MUST return a HTTP Status code using Scheme 1, below, as a minimum. The operation MAY return additional HTTP Status codes using Scheme 2, below

Scheme 1:

·         202 (Accepted) and an empty response body if all of the atoms in the request body are accepted.

·         500 (Internal Error) and an empty response body if any error occurs. None of the atoms in the request are accepted. The caller MAY retry the operation in the case of failure.

 

Scheme 2:

 

·         202 (Accepted) and an empty response body if all of the atoms in the request body are accepted.

·         400 (Bad Request) if the request body does not contain valid JSON, or if one or more of the Atoms is missing mandatory elements or if mandatory fields are missing from one or more of the Atoms.

·         404 (Not Found) MAY indicate that the Atom POST URI might have changed and the client SHOULD obtain the URI from the Data Engine Home URI.

·         405 (Bad Request) if the request method is not POST.

·         500 (Internal Server Error) if an internal error occurred.

If the status is not 202 (Accepted), the response message MAY contain a JSON object containing a "Reason" field encoded as a string, e.g. {"Reason": "ConsumerID missing"}.

If the status is not 202 (Accepted), none of the Atoms SHALL be accepted by the Data Engine. In this case, the sender MAY make a request to submit each atom individually in order that the well-formed ones can be accepted.

 

Method

 

Request

Content-Type

 

Request Body

 

Atoms accepted by Data Engine

Scheme 1
Response

Scheme 2
Response

Status

Body

Status

Body

POST

application/

json

Valid JSON Atom(s)

All

202

None

202

None

GET

Any

Any

None

500

None

405

None or JSON Object with a reason

POST

application/

json

Invalid JSON

400

POST

application/

json

Malformed Atom(s)

400

POST

Data Engine encounters internal error.

500

 

Example request message:       

POST /atoms

Content-Type: application/json

Content-Length: nn

 

{ … }

Example response message:    

HTTP/1.1 202 OK

 

Example request message with an incorrect content type:          

POST /atoms

Content-Type: image/png

Content-Length: 2134

 

{ … }

Example response message:    

HTTP/1.1 500 Internal Error

2.3 Security

Atom POST using Scheme 1 SHALL use anonymous TLS only. The Data Engine cannot authenticate the sender, since the Data Engine has no relationship with the consumer. Note that the ConsumerID or DeviceID MUST have been registered by an Operator for the Atom to be accepted.

 

The Data Engine SHALL require authentication in order to implement Atom POST Scheme 2.

2.4 Exceptions

The Data Engine MUST specify (e.g. through contract terms, on a web site, or as additional data in the Information Request response) how it will manage the following exceptional circumstances when receiving data:

·         Duplicate Atom posts (e.g. over-write, return error, duplicate created)

·         Atoms with invalid or missing ConsumerIDs and DeviceIDs

·         Atoms with unallocated ConsumerIDs and DeviceIDs

·         Atoms with missing essential fields

·         Incorrectly formed Atoms

3      Atom Object Definition (JSON)

An atom object SHALL have the following format. The top level JSON SHALL be an object with the elements described below:

3.1 Header

Name

Value

Description

REQUIRED

Version

Integer Array [0..3]

Array indicating the model version number used to define this Atom.

Yes

 

Index 0

Level 1: Must increment when a non-backwards compatible change is made, e.g. new structure or changing the value of an existing field.

MUST run through full OASIS process.

Yes

Index 1

Level 2: Incremented for any release that is backwards compatible, e.g. only new fields.

MUST be agreed by the OASIS Committee.

Yes

Index 2

Level 3: Experimental – incremented to working draft publications that are for public release.

Yes

Index 3

Level 4: For developments outside the OASIS TC and will always be “0” in any OASIS version.

Yes

 

3.2 Context

Context of the event:

Name

Value

Description

REQUIRED

Social

Integer, 0-6

Indicates the social context of the activity

No

Weather

Integer, 0-999

Indicates the general weather conditions at the time of the activity

No

ContextTag

Integer

Context provides the ability to encode “Why” information

No

ContextValue

Integer

Value of Context annotation.

Yes if Context Tag present

The enumeration values for Social SHALL be:

0: Don’t Know

1: Family

2: Colleagues

3: Guests

4: Partner

5: Myself

6: Friends

The enumeration values for Weather SHALL be those of the Open Weather Map weather condition code scheme [Weather].

There are no ContextTags defined in this version of the specification, but these MAY include references to previous Atoms to indicate causality or question / answer pairs to sequence interactions.

3.3 When

Time and duration of the event:

Name

Value

Description

REQUIRED

Time

Integer

Seconds since 1970/01/01 00:00Z (Unix timestamp in UTC)

Yes

UTCOffset

Integer

UTC Offset in seconds (e.g. UTC+1h = 3600, UTC-2h = -7200…) for the sender.

No

Accuracy

Integer, 0-14

Indicates accuracy of the time field

No

Duration

Integer

Duration of the activity in seconds

No

The enumeration values for Accuracy SHALL be:

0: +/- 1 sec (exact)

1: +/- 1 min (default)

2: +/- 5 mins

3: +/- 15 mins

4: +/- 30 mins

5: +/- 1 hr

6: +/- 2 hrs

7: +/- 4 hrs

8: +/- 8 hrs

9: +/- 12 hrs

10: +/- 24 hrs (weekend)

11: +/- 72 hrs (week)

12: +/- 15 days (month)

13: +/- 91 days (season)

14: +/- 182 days (year)

This value refers to the accuracy reported and not necessarily the actual accuracy at which the measurement was obtained.

Atoms with duration of zero MAY be used and indicate and instantaneous event (or one where the duration is less than a second). A zero duration Atom MAY also be a marker for the end of a sequence of Atoms such as in a running route, see section 3.6 Where.

3.4 What

Event as defined by the COEL model [COEL_COEL-1.0]:

Name

Value

Description

REQUIRED

Cluster

Integer, 1-99

COEL cluster.

Yes

Class

Integer, 1-99

COEL class, if available omit otherwise.

Only when ‘Subclass’ is also used.

SubClass

Integer, 1-99

COEL subclass, if available omit otherwise.

Only when ‘Element’ is also used.

Element

Integer, 1-99

COEL element, if available omit otherwise.

No

When appropriate event descriptions are not available in the latest version of the COEL model, development codes MAY be used for new applications. These codes SHALL use the format 1xxxx (i.e. integers in the range 10000 to 19999. These codes MAY be used at any level of the COEL model.

3.5 How

How the event was measured:

Name

Value

Description

REQUIRED

How

Integer, 0-11

An enumerated value describing how the information was provided

No

Certainty

Integer, 0-100

Percentage, certainty that this Atom is associated with the individual indicated in the Who field

No

Reliability

Integer, 0-100

Percentage, reliability of this atom as a whole. The default SHALL be 50, with 100 only being used for correction atoms.

No

The enumeration values for How SHALL be:

0: Don’t Know

1: Observed

2: Objectively Measured: Public Infrastructure

3: Objectively Measured: Private Infrastructure

4: Objectively Measured: Fixed Computing Device

5: Objectively Measured: Portable Computer

6: Objectively Measured: Phones and Pocket Device

7: Objectively Measured: Wearables

8: Objectively Measured: Implants

9: Self-Reported

10: Remembered

11: Computationally derived from other Atoms

3.6 Where

Where the event occurred:

Name

Value

Description

REQUIRED

Exactness

Integer, 0-14

Format and precision of where fields

No

Latitude

Double

GPS location

No

Longitude

Double

GPS location

No

W3W

String

what3words code (word.word.word)

No

Place

Integer, 0-2

Profane location code

No

Postcode

String

Postcode

No

The enumeration values for Exactness SHALL be:

0: Unknown.

1: Postcode or Zip code very long form.

2: Postcode or Zip code long form.

3: Postcode of Zip code short form

4: Place

5: GPS with accuracy between 0m and 1m.

6: GPS with accuracy between 1m and 5m.

7: GPS with accuracy between 5m and 10m.

8: GPS with accuracy between 10m and 15m.

9: GPS with accuracy between 15m and 20m.

10: GPS with accuracy between 20m and 25m.

11: GPS with accuracy between 25m and 30m.

12: GPS with accuracy between 30m and 50m.

13: GPS with accuracy between 50m and 100m.

14: GPS with accuracy worse than 100m.

 

The enumeration values for Place SHALL be:

0: Home

1: Work

2: School

 

When appropriate enumerated values for Place are not available in the specification, development codes MAY be used for new applications. These codes SHALL use the format 1xxxx (i.e. integers in the range 10000 to 19999.

 

Where journeys are being recorded the location in this field SHALL be the starting location. The displacement of the journey can be recorded in an extension field and/or the final location MAY be recorded in a subsequent Atom.

3.7 Who

Who the event relates to:

Name

Value

Description

REQUIRED

DeviceID

 

String

Pseudonymous Key of the device that MUST be registered with a Consumer ID

Yes if Consumer ID is not present

ConsumerID

 

String

Pseudonymous Key for the consumer, subject, user or patient. 

Yes if Device ID is not present

The format of valid strings for ConsumerID and DeviceID are defined in [COEL_IDA-1.0].

3.8 Consent

A summary of the consent given by the Consumer for management purposes:

Name

Value

Description

REQUIRED

Jurisdiction

 

Two letter country code

The jurisdiction in which consent was given. Alpha-2 representation as defined in [ISO 3166].

No

ConsentDate

 

Integer

The date of the consent last explicit consent – nominally, the atom’s time plus the retention period. Seconds since 1970/01/01 00:00Z (Unix timestamp in UTC).

Yes, if the parent element (Consent) is present.

RetentionPeriod

Integer

The number of days stated in the consent for retention or review of retention.

Yes, if the parent element (Consent) is present.

Purpose

Bit vector (Integer)

Purposes for which consent has been given. Enumerated field defined in Appendix B of [MVCR-v0.7.9]. Valid bits are 1 through 16.

Yes, if the parent element (Consent) is present.

PolicyURL

String, HTTP URL

The privacy policy and notice of the original consent agreement.

No

WebTokenID

String

The unique Identifier for JSON Web Token representing the consent receipt.

Yes, if Receipt Service element is present.

ReceiptService

String, HTTP URL

The URL of the processing service providing the consent receipt.

Yes, if the Web TokenID element is present.

The object names and format are defined to be compatible with [MVCR-v0.7.9] where possible. The use of a consent receipt as defined by [MVCR-v0.7.9] is also possible by generating a “Service/Legal/Consent/Granting consent” atom at the point of original consent agreement and including the WebTokenID and ReceiptService fields.

 

The standard Purposes are defined in [MVCR-v0.7.9] but are reproduced below in COEL nomenclature for convenience only:

1.     Core Function : To enable the Operator & Service Provider to carry out the core functions of its site/app/services.      

2.     Contracted Service : To provide contracted or requested services to the Consumer.

3.     Delivery: To deliver contracted or requested services to the Consumer.         

4.     Contact Requested : Communicating with the Consumer about information or services the Consumer specifically request.      

5.     Personalized Experience : Providing the Consumer with a personalised experience of the site/app/service.

6.     Marketing : Communicating with the Consumer about our other services they may be interested in.

7.     Marketing Third Parties : Communicating with the Consumer about the services of third parties they may be interested in.

8.     Disclosure for Delivery : Providing the information to third parties to deliver services on the Operator’s & Service Provider’s behalf.      

9.     Disclosure for Marketing : Providing the information to third parties to enable them to communicate with the Consumer about their services that the Consumer may be interested in.      

10.  3rd Party Disclosure for Core Function : Providing the information to third parties to enable them to deliver or improve their own services to the Consumer.        

11.  3rd Party Disclosure to Improve Performance : Providing the information to third parties to enable them to deliver or improve their own services to others.  

12.  Legally Required Data Retention : Complying with legal obligations for record keeping.          

13.  Required by Law Enforcement or Government : Complying with legal obligations to provide the information to law enforcement or other regulatory/government bodies.        

14.  Protecting Health : Protecting the Consumer’s vital and health interests.        

15.  Protecting Interests : Protecting the Operator’s & Service Provider’s legitimate interests, the Consumer’s or those of a third party.       

16.  Improve Performance : Measure or improve Operator & Service Provider performance or the delivery of services.      

3.9 Extension

Additional information about the event:

Name

Value

Description

REQUIRED

ExtIntTag

Integer

Extension tag for integer extension

No

ExtIntValue

Integer

Value of extension annotation

Yes, if ExtIntTag present

ExtFltTag

Integer

Extension tag for float extension

No

ExtFltValue

Float

Value of extension annotation

Yes if ExtFltTag present

ExtStrTag

Integer

Extension tag for string extension

No

ExtStrValue

String

Value of extension annotation

Yes if ExtStrTag present

Some proposed tags and values SHALL be (values can be either integer or float depending on the precision available/needed):

1001     Resting heart rate          bpm

1002     Average heart rate         bpm

1003     Maximum heart rate       bpm

1004     Blood pressure  Encoded (SSSDDD)

1005     Weight                          kg

1006     Respiratory rate             bpm

1007     Lung capacity               cl

1008     Temperature                  C

1009     Oxygen saturation         %

1010     Calories ingested          kcal

1011     Calories burned             kcal

1012     Steps taken                   count

1013     Distance                       km

1014     Climb                            m

1015     Body fat                       %

1016     Metabolic equivalent      MET

1017     Water intake                  cl

 

When appropriate Extension tags are not available in the specification, development codes MAY be used for new applications. These codes SHALL use the format 1xxxx (i.e. integers in the range 10000 to 19999.

3.10 Examples

The following is an example Behavioural Atom for the activity: ‘Housework’, ‘Dishes’, ‘Loading and unloading the dishwasher’, ‘Load the dishwasher’; the time is accurate to +/- 1 minute; it took place at a given postcode, it was reported by the user with a 100% certainty of the ‘Who’ field and a general ‘Reliability’ of 70%, the social context was with a partner.

{

            “Header”:{“Version”:4},

            “Who”:{“ConsumerID”:”5a702670-ff63-4d1d-ba9d-077dd345ab62”}

            “What”:{“Cluster”:4,”Class”:4, “SubClass”:1,”Element”:4},

            “When”:{“Accuracy”:1,”Time”:1423515660,”Duration”:437},

            “Where”:{“Postcode”:”UB4 8FE”},

            “How”:{“How”:9,”Certainty”:100,”Reliability”:70},

            “Context”:{“Social”:4},

}

 

The following is an example Behavioural Atom for the activity: ‘Travel’, ‘Non Powered’, ‘Travelling by bicycle’, ‘Racing bike’; the time is exact; it started at the given latitude and longitude, it was reported by the user, and an application specific extension indicated that 26.2 km had been travelled.

{

            “Header”:{“Version”:4},

            “Who”:{“ConsumerID”:”5a702670-ff63-4d1d-ba9d-077dd345ab62”}          

            “What”:{“Cluster”:22,”Class”:1”SubClass”:1,”Element”:2},

            “When”:{“Timezone”:”-01:00”,”Accuracy”:0,”Time”:1433397180,”Duration”:3903},

            “Where”:{“Exactness”:6,”Latitude”:51.53118159161092,”Longitude”:-0.4319647327069491},

            “How”:{“How”:9},

            “Extension”:{“ExtFltTag”:10003,”ExtFltValue”:26.2},

}

4      Conformance

A Data Engine interface for receiving Behavioural Atoms conforms if it meets the conditions set out in Section 2 of this document AND the conformance criteria in [COEL_RPE-1.0]

 

A Behavioural Atom is correctly formatted if it conforms to the conditions set out in Section 3.

Appendix A. Acknowledgments

The following individuals have participated in the creation of this specification and are gratefully acknowledged:

Participants:

Paul Bruton, Individual Member

Joss Langford, Activinsights

Matthew Reed, Coelition

David Snelling, Fujitsu

Appendix B. Revision History

Revision

Date

Editor

Changes Made

1

22/9/2015

Joss Langford

First full version

2

25/9/2015

Joss Langford

Correction of basic mistakes and omissions.

3

13/10/2015

Paul Bruton

Conformance includes reference to RPE document.

4

19/10/2015

David Snelling

Dealt with SHALL, MAY, and MUST and added examples.

5

26/10/2015

David Snelling

Minor updates to examples.

6

31/10/2015

Joss Langford

Accept all changes, track changes off, check references and style consistency.

7

31/10/2015

Joss Langford

Change history corrected.

8

02/11/2015

David Snelling

Final date change

9

03/11/2015

Paul Bruton

Typographic change following review.

10

25/11/2015

Joss Langford

Fix issue COEL-51: contingent requirements added to use of COEL layers in 3.4.

11

25/11/2015

David Snelling

Set date for CD publication

12

07/01/2016

Paul Bruton

COEL-42 clarification of response codes and updated to WD02

13

21/01/2016

David Snelling

Checked Paul’s edits and accepted changes.

14

02/01/2016

Joss Langford

Development field options added for COEL model, place & extension tags (COEL-50).

15

02/01/2016

Paul Bruton

Minor typographic corrections. Clarified that scheme 1 is minimum required and made authentication with scheme 2 mandatory.

16

21/02/2016

Joss Langford

Checked Paul’s edits and accepted changes.

17

21/02/2016

Joss Langford

Consent fields added (COEL-54).

18

16/05/2016

David Snelling

Revised consent section (COEL-54)

19

27/05/2016

Paul Bruton

Comments/questions on consent (COEL-54)

20

27/05/2016

David Snelling

Tidying requires fields for consent element.

21

17/06/2016

David Snelling

Removed change tracking.

22

5/07/2016

Joss Langford

Version numbering updated (COEL-57)

Consent field updated (COEL-67)

Mobile cell removed from where (COEL-69)

what3words code added to where (COEL-65)

23

09/08/2016

David Snelling

Accepted some change tracking and made a few other changes.

24

10/08/2016

David Snelling

Added status field to Data Engine information request, COEL-68.

25

14/08/2016

Joss Langford

Cluster range extended (COEL-72).

Checked and changes accepted.

26

27/09/2016

David Snelling

Final review: Corrected spelling on artefact and behaviour, missing plural in 3.3, updated the ToC, fixed formatting in table 3.1, deleted ‘between’ in Exactness value 14, fixed format of extension code in second example, and accepted all tracked changes.

Substantive change: Exactness value 0 was mobile phone tower attached to device. Replaced with unknown.