> For the complete documentation index, see [llms.txt](https://docs.raalabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.raalabs.io/docs/supported-domains.md).

# Supported Domains

Raa Labs supports multiple **domains** for organizing and querying time series data. A domain defines how a time series is named and structured. Knowing the domains helps you form expressions for queries. The current supported domains include:

| Domain         | Description                                                                                                                                                                                                                   | Example DomainId                                              |
| -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| **id**         | The raw time series UUID. This is a unique identifier assigned by Raa Labs for each signal. Use this for a direct lookup if you know the UUID.                                                                                | `62e23903-9db5-43cc-949d-78452ffb81bc`                        |
| **jsmea**      | JSMEA (Japan Ship Machinery and Equipment Association) naming standard, based on ISO 19848 for ship sensor data. This is a hierarchical naming scheme with multiple levels (e.g., system, subsystem, component, parameter).   | `IMO1234567/jsmea_mac/MainEngine/DrivingShaft/Output//Power/` |
| **raalabs**    | Raa Labs flat tag schema. A simpler, flattened naming convention that usually includes just the IMO number and a short descriptive tag.                                                                                       | `IMO1234567/ME ShaftPower`                                    |
| **parameters** | Parameter grouping schema. It includes the IMO number, a parameter group name, and a short name. This groups related signals under a category.                                                                                | `IMO1234567/ME Power/ME ShaftPower`                           |
| **maker**      | The name given to a tag by the maker of the machinery or equipment. Includes the maker name and a tag name.                                                                                                                   | `IMO1234567/Maker/12345`                                      |
| **vis-3-8a**   | The VIS (Vessel Information Structures) naming convention from DNV is a standardized way to uniquely identify vessel functions and onboard equipment. It uses a hierarchical structure based on GMOD (Generic Product Model). | `IMO1234567/913/S130.1-1/S121/sec/406i/H233/meta/qty-power`   |

{% hint style="info" %}
**Note:** For the `jsmea` and `vis-3-8a` domains, some signals may not yet have been mapped. If an expected signal is unavailable in these domains, use the `raalabs` domain. For specific requests, please contact us at <support@raalabs.com>.
{% endhint %}

## Querying Within Each Domain

This section describes the query expression structure for each supported domain. All domains support wildcard queries. Wildcards (`*`) can be used to match partial names or hierarchy levels, allowing you to retrieve data without specifying the full expression.

### The ID Domain

**Query Expression Format:**

`{timeseries_id}`

In this domain, the query expression consists solely of the UUID of the time series.

* `62e23903-9db5-43cc-949d-78452ffb81bc` Retrieves the time series with this exact UUID.
* `*` Retrieves all time series from *all vessels*

### The JSMEA Domain

**Query Expression Format:**

`{imo_number}/{naming_rule}/{category}/{sub_category}/{content}/{position}/{item}/{modifier}`

For a comprehensive explanation of the JSMEA naming scheme, refer to the [Description of Local ID Definitions (JSMEA Codebook)](https://www.jsmea.or.jp/ssap/topics/jsmea_codebook.html). In a hierarchical domain such as **`jsmea`**, wildcards may be applied at multiple levels:

* `IMO1234567/*/*/*/*/*/Power/` Retrieves all time series under vessel IMO1234567 whose final component is "Power" (regardless of which subsystem or component).
* `IMO1234567/jsmea_mac/MainEngine/*` Retrieves all Main Engine-related time series for vessel IMO1234567 (wildcard at the level below MainEngine to get everything under it).
* `IMO1234567/jsmea_mac/MainEngine/Fuel*` Retrieves all Main Engine with some kind of fuel component related time series for vessel IMO1234567 (wildcard at the level below MainEngine to get everything under it).

### The Raalabs Domain

**Query Expression Format:**

`{imo_number}/{tag_name}`

In a flat domain like **`raalabs`**, you can query multiple vessels or tags:

* `*/ME ShaftPower` Retrieves the **Main Engine ShaftPower** measurements for *all vessels* ( `*` in place of the IMO number matches every vessel).
* `raalabs/IMO1000002/ME* Shaft*` Retrieves all tags that start with ME and have the word Shaft in them.

### The Parameters Domain

**Query Expression Format:**

`{imo_number}/{parameter_group_name}`

A parameter represents a logical grouping of related time series, from one or more vessels. This enables analysis of specific operational topics (e.g., fuel consumption), either within a single vessel or across multiple vessels.

* `parameters/IMO1000001/AE Fuel Oil Consumption` Retrieves all time series in the AE Fuel Oil Consumption parameter group, for vessel IMO1000001.
* `parameters/{IMO1000001, IMO1000002}/AE Fuel Oil Consumption` Retrieves the same parameter group for multiple vessels.

### The Maker Domain

**Query Expression Format:**

`{imo_number}/{maker_name}{maker_tag_name}`

* `IMO1234567/Enamor/*` Retrieves all time series for vessel IMO1234567 originating from the Enamor system.
* `IMO1234567/Enamor/Water Depth` Retrieves the water depth time series for vessel IMO1234567 originating from the Enamor system.

### The VIS-3-8a Domain

**Query Expression Format:**

`{imo_number}/{primary_item_vis_path}/sec/{secondary_item_vis_path}/meta/{metadata}`

The **`vis-3-8a`** domain utilizes the hierarchical GMOD (Generic Product Model) framework to define VIS-paths for vessel items. DNV provides a comprehensive [learning tool](https://vista.dnv.com/learning-tool) for generating VIS-paths and metadata, along with detailed [naming rule documentation](https://docs.vista.dnv.com/docs/standards/dnv-naming-rule).

Wildcards (`*`) can be applied at multiple levels within VIS-paths, as well as at the metadata type and IMO number specifications:

* `*` Retrieves all time series from *all vessels*
* `IMO1234567/411.1` Retrieves all time series under vessel IMO1234567 with primary path root 411.1 ("Propulsion Driver") and arbitrary amounts of descendants in the VIS-path. The latter means that specifying {primary\_item\_vis\_path} = 411.1 is equal to specifying {primary\_item\_vis\_path} = 411.1/\*
* `IMO1234567/400a` Retrieves all time series under vessel IMO1234567 with primary path root being a code that lies within the group 400a ("Propulsion and steering arrangements") in the hierarchy tree, and arbitrary amounts of descendants in the VIS-path.
* `IMO1234567/*/S130-2AMOS` Retrieves all time series for vessel IMO1234567 with arbitrary primary path root and includes S130 (code for "fan unit") anywhere in the VIS-path of their primary item, except root position. Note that the code we require can be both exactly S130 or a code that is under it in the hierarchy, e.g. S130.2. In addition this code is required to have Location 2AMOS.
* `*/*/sec/*/H233` Retrieves all time series from *all vessels* with secondary item VIS-path including H233, and wildcard root.
* `IMO1234567/meta/qty-temperature` Retrieves all time series for vessel IMO1234567 which have the metadata element "qty-temperature".
* `IMO1234567/meta/qty-*` Retrieves all time series for vessel IMO1234567 which have the metadata category "qty" and any metadata type.

#### Notes

* Wildcards in primary or secondary VIS-paths match zero or more path segments, except at the root position where they match one or more segments to ensure a valid root is specified
* You can combine vessel, path, and meta wildcards: `*/400a/*/C663/sec/*/meta/qty-*`
* Use `{IMO1234567, IMO7654321}/*` to query multiple specific vessels

#### Verbose DomainIds

Add the query parameter `?verbose=true` to include human-readable names for the corresponding VIS path elements in vis-3-8a domainIds. This optional parameter is disabled by default and is intended solely to improve readability of the output. Including verbose in the query expression will not affect the resolver behavior.

**Example (verbose=true):**

`IMO1234567/411.1-2P/C101.31-4/~propulsion.engine.2P/~cylinder.4/meta/qty-pressure`

In this example, the verbose segments (prefixed with \~) show that the time series represents the pressure of cylinder 4 in propulsion engine 2 on the port side. The verbose parameter is available across all endpoints and domains, but its use outside the vis-3-8a domain is only useful when querying metadata.

{% hint style="info" %}
**Note:** Wildcards are currently under development, not all functionality is available in all domains.
{% endhint %}

## Finding Domain Mappings

If you are unsure how a time series ID appears in different domains, you can use the metadata endpoint on the `id` domain to see its mappings. For example, you can fetch all metadata using the raw `id` domain and look at the `mapsTo` field in the response. The `mapsTo` object will show equivalent identifiers in other domains for each time series.

For instance, a metadata query like `GET https://portal.raalabs.io/{ENVIRONMENT}/metadata/id/*` might return:

```json
{
  "46fd4739-ad03-43c3-b027-7db0d0b093ec": {
    "name": "12153",
    "description": "ENGINE ROOM TEMP.",
    "source": "Aconis",
    "scale": 1.0,
    "vesselName": "Happy Wanderer",
    "vesselImo": "1000005",
    "uom": "°C",
    "timeSeriesId": "46fd4739-ad03-43c3-b027-7db0d0b093ec",
    "rangeLow": -40.0,
    "rangeHigh": 60.0,
    "mapsTo": {
      "jsmea": "IMO1000005/jsmea_mac/EngineRoomAmbience/RoomSpace/AmbientAir//Temp/",
      "maker": "IMO1000005/Aconis/12153",
      "raalabs": "IMO1000005/EngineRoom AmbientAirTemp",
      "vis-3-8a": "IMO1000005/406i/H233/meta/cnt-ambient.air/qty-temperature"
    }
  }
}
```
