Data Model

Event Model

Detailed information on the WellLine model for an event. The only required field for an event is content; most events that enter the system also have a variety of other fields, especially typeId, startedOn, endedOn, properties, and subjectEntityIds.

Field

Short Description

id

Unique event ID

externalId

ID from source system

typeId

Event type ID

sourceId

ID of source system

sourceData

Name of source system

summary

Summary of event text

content

Text of the event

startedOn

Start datetime of event

startedAt

Starting location of event

endedOn

End datetime of event

endedAt

Ending location of event

importance

Relative importance of event

sourceEventIds

WellLine ID(s) where event originated

measures

Well-defined units of measure

quantities

Loosely-defined units of measure

properties

Otherwise-undefined event properties

subjectEntityIds

Entities that are the subject of the event

referenceEntityIds

Entities that are referenced in the event

Unless otherwise stated, all event fields appear in EventStream cards.

Singular Fields

Fields which expect singular values. The only exceptions are startedAt and endedAt, which expect both "lat" and "long" values.

id

  • Contains: unique event ID

    • Expected to be unique across entire tenant

externalId

  • Contains: id of specific event from system the data originated from (e.g. primary key)

    • For example, "wv-20110403-well8435-report.xml"

typeId

  • Contains: event type ID.

    • Links to eventTypes value in metadata type

    • Event types follow a hierarchical structure, defined in the "eventTypes" section of the tenant's "metadata" file

  • Values appear in

sourceId

  • Contains: ID of the system where the data originated from

    • For example, "Master_DB_2012"

sourceData

  • Contains: name of entire system the data originated from.

    • For example, "WellView"

summary

  • Contains: summary of the event content

    • Used primarily for events with longer content fields that would benefit from a shorter, summarized text

content

  • Contains: text of the event

    • Required field: must contain data, or event row will not upload

    • Field can contain any free text, including free text comments, hyperlinks to documents, and structured text rendered with natural language generation

startedOn

  • Contains: event's starting datetime

    • Format must be: YYYY-MM-DDT##:##:##Z

    • While not a required field, unless one of startedOn or endedOn are populated, event will not display on any Timeline view

  • Values appear in

    • LifeLine: indicates where event appears

    • TimeSlice Histogram: indicates where event appears

startedAt

  • Contains: event's starting location

endedOn

  • Contains: event's ending datetime

    • Format must be: YYYY-MM-DDT##:##:##Z

    • While not a required field, unless one of startedOn or endedOn are populated, event will not display on timeline

  • Values appear in

    • LifeLine: indicates where event appears

    • TimeSlice Histogram: indicates where event appears

endedAt

  • Contains: event's ending location

importance

  • Contains: integer indicator of relative event importance

    • 1 = highest level of importance

      • Otherwise, scale is entirely user-defined

    • Useful for creating more-specific queries/filters

Array Fields

Fields which can contain singular values or arrays of values. All require some type of key-value pair (KVP).

sourceEventIds

  • Contains: WellLine id(s) where the event originated from

    • For example: used for events with longer content fields that can be split into multiple events

  • Expected format is, "sourceEventIds": [{ "ID123456789", "ID987654321"}]

measures

  • Contains: name + value pairs of well-defined units of measure

    • Information in this field can come from structured data or the event's content field

      • Example of structured data: the measured depth provided in a "depth" field/column accompanying the event's text

      • Example of unstructured data: a hole size in the content field, automatically extracted and identified through the product's physical quantity extraction service

  • Expected format is, "measures": [{ "typeId": "String", "value": Float}]

  • Values appear in

    • TimeSlice Histogram: as selections in "Measures" dropdown, which are then visually overlaid

    • The specific measure "depthMD" also appears in each card before it is opened, in the bottom-right corner

Measures are separate from Quantities in that they are specifically defined by "type"

  • For example, some measurements in "inches" indicate the size of the hole (a specific definition) and thus are put into the measures field with the label holeSize

  • Other "inches" that are not hole sizes (an unspecified definition) could exist in quantities with the unit value in

quantities

  • Contains: unit + value pairs of loosely-defined units of measure

    • Information in this field comes from the event's content field, generally extracted through WellLine's algorithms

Most, if not all, data in this field will be created by the product's physical quantity extraction service

Quantities are separate from Measures in that they are not specifically defined by "type"

  • For example, some measurements in "inches" indicate the size of the hole (a specific definition) and thus are put into the measures field with the label holeSize

  • Other "inches" that are not hole sizes (an unspecified definition) could exist in quantities with the unit value in

properties

  • Contains: name + value pairs of otherwise-undefined properties of the event

    • Information in this field comes from structured data, generally fields of interest accompanying the event's text

      • Example of data: the event's code and subcode

  • Expected format is, "properties": [{ "name": "String", "value": "String"}]

  • Values appear in

subjectEntityIds

  • Contains: entity types and values that are the primary subject of the event

    • Information in this field generally comes from structured data

      • Example of data: the name/ID of the well the event pertains to

  • Expected format is, "subjectEntityIds": [{ "entityType.String"}]

  • Values appear in

    • ConnectionViewer: each "entityType" is grouped into a dropdown, and each "String" value is shown as an entity bubble within the dropdown

    • Queryable with search, through autocomplete suggestions

referenceEntityIds

  • Contains: entity types and values that are referenced in the event

    • Information in this field can come from structured data or the event's content field

      • Example of structured data: the rig name provided in a field/column accompanying the event's text

      • Example of unstructured data: a piece of equipment extracted (via WellLine's entity extraction service) from the event's content field

The majority of WellLine's entity extractions deposit data into the referenceEntityIds field, and this field is used to populate the majority of ConnectionViewer

  • Expected format is, "referenceEntityIds": [{ "entityType.String"}]

  • Values appear in

    • ConnectionViewer: each "entityType" is grouped into a dropdown, and each "String" value is shown as an entity bubble within the dropdown

    • Queryable with search, through autocomplete suggestions

Meta / Metadata

The metadata info of a tenant contains the following information, each its own file:

  • measureTypes

  • entityTypeGroups

  • entityTypes

  • eventTypeGroups

  • eventTypes

Data in these files correspond to many fields in the event model, including: typeId, measures, referenceEntityIds, and subjectEntityIds.

Expected formatting and values for these sections are detailed, below.

For more information on these files, see their sections in the CLI documentation.

Measure Types

Measure types are used to define types of physical quantities. They appear in the Measures dropdown of the TimeSlice Histogram.

  • Contains: Non-hierarchical group of JSONL objects, with at least the following fields:

    • id

      • Camelcase name of the measure

    • name

      • Propercase name of the measure

    • units

      • Units of the measure, in abbreviated form

    • description

      • Free text description of the measure

  • Example:

    {"id": "depthTVD", "name": "Depth TVD meters", "units": "m", "description": "Total vertical depth, in meters"}
    {"id": "depthMD", "name": "Depth MD meters", "units": "m", "description": "Measured depth, in meters"}

Entity Type Groups

Entity type groups are part of the entity type hierarchy. They appear as dropdown groups in ConnectionViewer, and are referenced by Entity Type file.

The proper and complete configuration of both this and the Entity Type file are important, as they both contribute to the correct interface display of both the ConnectionViewer panel and autocomplete suggestions in the search bar.

  • Contains: Hierarchical group of JSONL objects, with at least the following fields:

    • id

      • Lowercase name of the entity group

    • name

      • Propercase name of the entity group

    • description

      • Free text description of the entity group

    • groupId

      • ID of the entityTypeGroup the type is part of (if applicable; otherwise this is "all")

      • Forms the upper levels of the entity hierarchy

  • Example:

    {"id": "geology", "name": "Geology", "description": "Grouping for geologic entities", "groupId": "all"}
    {"id": "problem", "name": "Problem", "description": "Grouping for problems", "groupId": "all"}
    {"id": "well problem", "name": "Well Problem", "description": "Grouping for problems with a well", "groupId": "problem"}

Entity Types

Entity types are part of the entity type hierarchy. They appear as "pill" selections in ConnectionViewer, and can be referenced in subjectEntityIDs and referenceEntityIDs fields of events.

  • Contains: Hierarchical group of JSONL objects, with at least the following fields:

    • id

      • Lowercase name of the entity type

    • name

      • Propercase name of the entity type

    • description

      • Free text description of of the entity type

    • groupId

      • ID of the entityTypeGroup the type is part of

      • Forms the lower levels of the entity hierarchy

  • Example:

    {"id": "lithology", "name": "Lithology", "description": "Lithology", "groupId": "geology"}
    {"id": "problem_ballooning", "name": "Ballooning Problem", "description": "A ballooning problem at a wellsite", "groupId": "well problem"}

Event Type Groups

Event type groups are part of the event type hierarchy. They appear as dropdown groups in the Event Filter panel, and are referenced by the Event Type file.

The proper and complete configuration of both this and the Event Type Group file are important, as they both contribute to the correct interface display of both the Event Filters panel and the Histogram.

  • Contains: Hierarchical group of JSONL objects, with at least the following fields:

    • id

      • Lowercase name of the event group

    • name

      • Propercase name of the event group

    • description

      • Free text description of the event group

    • groupId

      • ID of the eventTypeGroup the group is part of (if applicable; otherwise, this is "all")

      • Forms the upper levels of the event hierarchy

  • Example:

    {"id": "drilling", "name": "Drilling", "description": "An event group from a Public Dataset.", "groupId": "all"}
    {"id": "formation evaluation", "name": "Formation Evaluation", "description": "An event group from a Public Dataset.", "groupId": "all"}
    {"id": "interruption", "name": "Interruption", "description": "An event group from a Public Dataset.", "groupId": "all"}

Event Types

Event types are part of the event type hierarchy. They appear as filter options in the Event Filter panel, and can be referenced by the typeId field of events.

  • Contains: Hierarchical group of JSONL objects, with at least the following fields:

    • id

      • Lowercase value with formatting: "<eventTypeGroup> - <eventType>"

      • This formatting is used to ensure uniqueness across groups (e.g. "Circulating & Conditioning" can be an eventType under both the "Drilling" and "Formation Evaluation" eventTypeGroups)

    • name

      • Propercase name of event type

    • description

      • Free text description of the event type

    • groupId

      • ID of the eventTypeGroup the type is part of

      • Forms the lower levels of the event hierarchy

  • Example:

    {"id": "drilling - circulating conditioning", "name": "Circulating & Conditioning", "description": "An event from a Public Dataset.", "groupId": "drilling"}
    {"id": "formation evaluation - circulating conditioning", "name": "Circulating & Conditioning", "description": "An event from a Public Dataset.", "groupId": "formation evaluation"}

Event Data Formatting

Below are examples of each field from the WellLine Data Model. They follow proper JSON formatting and should pass "JSONLint" tests (when enclosed in curly brackets { }).

Singular Fields

The majority of singular fields are string type fields that should be surrounded by quotes. The notable exceptions are "startedAt", "endedAt", and "importance".

Field

Format

id

"id": "1234567890abcdefg"

externalId

"externalId": "PK_918273465"

typeId

"typeId": "problem - repair"

sourceId

"sourceId": "SQL DB v1.0 - Table_XYZ"

sourceData

"sourceData": "Master Database"

summary

"summary": "Work was performed as expected today."

content

"content": "Held pre-job meeting. Planned work for day. Executed all tasks without problems. Administrative time in afternoon; created plan for tomorrow."

startedOn

"startedOn": "2013-10-05T19:15:00Z"

startedAt

"startedAt": { "lat": 29.7063, "long": 15.1494 }

endedOn

"endedOn": "2013-10-05T23::00Z"

endedAt

"endedAt": { "lat": 29.707, "long": 15.35 }

importance

"importance": 4

Fields may not contain new lines. This is especially important to keep in mind for summary and content fields.

Array Fields

The majority of array fields have some key-value pair format. The correct conventions for the "keys" have been made bold in each example.

Field

Format

sourceEventIds

"sourceEventIds": [{ "ID123456789", "ID987654321" }]

measures

"measures": [{ "typeId": "depthMD", "value": 3510 },{ "typeId": "depthTVD", "value": 3138.8 }]

quantities

"quantities": [{ "unit": "m/hr", "value": 335.0 }]

properties

"properties": [{ "name": "code", "value": "Plug Abandon" },{ "name": "subcode", "value": "Cement Plug" }]

subjectEntityIds

"subjectEntityIds": [ "well.177000002702", "wellbore.A-0-B16" ]

referenceEntityIds

"referenceEntityIds": [ "rig.Ensco 90" , "organization.halliburton", "equipment.elevator" ]

See subjectEntityIds and referenceEntityIds sections, above, for more information on the data in these fields.

Examples of Complete Events

Example 1:

{"id": "e7965ded0d50d215632f7382b5b78295", "typeId": "hsse meeting", "content": "Held tool box meeting prior to drilling out shoe track. Focused on safety.", "startedOn": "2007-02-21T14:00:00Z", "endedOn": "2007-02-21T14:30:00Z", "startedAt": {"lat": 18.4416, "long": 4.8874}, "importance": 4, "referenceEntityIds": [ "rig.Offshore Integrity" ], "subjectEntityIds": [ "well.Alpha-B-09" ], "properties": [{ "name": "lifecycle", "value": "Drilling" },{ "name": "code", "value": "Drilling" },{ "name": "subcode", "value": "Drill" }], "measures": [{ "typeId": "depthMD", "value": 260 },{ "typeId": "depthTVD", "value": 260 }], "sourceId": "Public Dataset"}

Example 2:

{"id": "004c1b01ee2cd2f5b395ae6f6bce856d", "typeId": "wellsite comment", "content": "Pumped down base oil to 90 bar from cement unit to equalize differential pressure on well commissioner packer.", "startedOn": "2013-06-12T12:15:00Z", "endedOn": "2013-06-12T12:45:00Z", "importance": 1, "subjectEntityIds": [ "well.NO-B-11" ], "properties": [{ "name": "code", "value": "Completion" },{ "name": "subcode", "value": "Circulating Conditioning" }], "measures": [{ "typeId": "depthMD", "value": 4770 }], "quantities": [{ "unit": "bar", "value": 90.0 }], "externalId": "wellsite_comment_s_19238502", "sourceId": "Public Dataset"}

Example 3:

{"id": "00dbdfb6eaf0b06f4f47ef7a71f1f4f3", "typeId": "wellsite comment", "content": "Ran in with HPDR from 121 m to 127 m. Installed master bushing.", "startedOn": "2013-04-08T19:30:00Z", "endedOn": "2012-04-08T10:00:00Z", "startedAt": {"lat": 26.4465143, "long": 1.9884463}, "importance": 1, "referenceEntityIds": [ "action.ran in hole", "equipment.high pressure drilling riser", "equipment.master bushing"], "subjectEntityIds": [ "well.L57 HO/55" ], "properties": [{ "name": "lifecycle", "value": "Drilling" }], "quantities": [{ "unit": "m", "value": 121.0 },{ "unit": "m", "value": 127.0 }]}