Measurements in EMMO#

In science and engineering, measurement connects the physical world to data. When we measure something — like the mass of a sample or the voltage of a cell — we perform a process that produces a numerical value. In EMMO, this connection is modeled explicitly through three linked entities:

  1. The measurement process — the act of measuring something.

  2. The measurement result — the data produced by the process.

  3. The property of the object — the characteristic that was measured.

This distinction makes it possible to describe not just what was measured, but also how it was measured and under what conditions — essential for traceability, reproducibility, and FAIR data.

Overview of Measurement Concepts#

Concept | Description | Example |

|----------|--------------|----------| | MeasurementProcess | The activity or experiment that produces a value. | Weighing a sample. | | MeasurementResult | The recorded output of that process. | 1.403 kg ± 0.002 kg. | | Property | The feature of the object that was measured. | The sample’s mass. |

Together, these form a causal chain:

::

MeasurementProcess → produces → MeasurementResult → quantifies → Property → belongsTo → Object

Example: Measuring the mass of a sample#

Let’s walk through how to model a simple measurement: “You place a sample on a balance and record its mass as 1.403 kg.”

Step 1 — Define the object being measured#

The object of interest is an individual of type PhysicalObject (or a more specific subclass like MaterialSample).

{
  "@id": "ex:Sample_A",
  "@type": "PhysicalObject"
}

Step 2 — Represent the measurement process#

The act of weighing is a process — it happens in time, involves participants, and produces an outcome. We can model it as an instance of MeasurementProcess.

{
  "@id": "ex:Weighing_1",
  "@type": "MeasurementProcess",
  "hasParticipant": { "@id": "ex:Sample_A" },
  "hasInput": { "@id": "ex:Sample_A" },
  "hasOutput": { "@id": "ex:MassResult_1" },
  "emmo:hasMeasurementDevice": { "@type": "Balance" }
}

Here: - The process has the sample as its participant and input. - The output is a MeasurementResult. - The process also specifies a device (balance).

Step 3 — Represent the measurement result#

A measurement produces data — a recorded observation with a numeric value and unit. In EMMO, this is expressed using a MeasurementResult that quantifies a Property of the measured object.

{
  "@id": "ex:MassResult_1",
  "@type": "MeasurementResult",
  "quantifies": {
    "@id": "ex:MassProperty_1",
    "@type": "Mass",
    "emmo:hasMeasuredObject": { "@id": "ex:Sample_A" }
  },
  "hasNumericalPart": {
    "@type": "emmo:RealData",
    "hasNumberValue": 1.403
  },
  "hasMeasurementUnit": "emmo:Kilogram",
  "emmo:hasMeasurementUncertainty": {
    "@type": "emmo:RealData",
    "hasNumberValue": 0.002
  }
}

This representation keeps the result separate from the property it quantifies, preserving the distinction between observation and truth about the world.

Step 4 — Assign the measured property to the object#

Finally, the property (e.g., mass) can be associated with the object through hasProperty. You can express this directly or link it back to the measurement that produced it.

{
  "@id": "ex:Sample_A",
  "@type": "PhysicalObject",
  "hasProperty": {
    "@id": "ex:MassProperty_1",
    "@type": ["Mass", "MeasuredProperty"],
    "hasNumericalPart": {
      "@type": "emmo:RealData",
      "hasNumberValue": 1.403
    },
    "hasMeasurementUnit": "emmo:Kilogram",
    "emmo:isResultOf": { "@id": "ex:Weighing_1" }
  }
}

This pattern captures the full chain from process to result to property. It also allows the same object to have multiple mass properties — for example, if measured under different conditions or by different methods.

Alternative Representations#

Depending on your modeling needs, you can link measurements and results in two main ways:

  1. Through the result (explicit): The MeasurementResult quantifies the Property. Best when you want to preserve provenance and traceability.

  2. Direct property assignment (simplified): Attach the measured property directly to the object with MeasuredProperty typing. Best for compact data serialization when provenance is implicit.

Compact example:

{
  "@type": "PhysicalObject",
  "hasProperty": {
    "@type": ["Mass", "MeasuredProperty"],
    "hasNumericalPart": {
      "@type": "emmo:RealData",
      "hasNumberValue": 1.403
    },
    "hasMeasurementUnit": "emmo:Kilogram"
  }
}

Measurement Participants#

In addition to the object being measured, measurements typically involve:

  • Devices (e.g., balance, voltmeter, spectrometer) → hasMeasurementDevice

  • Operators or softwarehasAgent

  • Conditions (e.g., temperature, humidity) → hasCondition or hasCharacterisationEnvironmentProperty

Example:

{
  "@type": "MeasurementProcess",
  "hasParticipant": [
    { "@type": "MaterialSample" },
    { "@type": "Operator" }
  ],
  "emmo:hasMeasurementDevice": { "@type": "Balance" },
  "emmo:hasMeasurementCondition": {
    "@type": "CharacterisationEnvironmentProperty",
    "schema:name": "AmbientTemperature",
    "hasNumericalPart": { "@type": "RealData", "hasNumberValue": 22 },
    "hasMeasurementUnit": "emmo:DegreeCelsius"
  }
}

Linking to Workflows#

Measurements are often steps within broader experimental or testing workflows. In that case, simply include the measurement process within a Workflow using hasTask or hasSubProcess:

{
  "@type": "BatteryTestWorkflow",
  "hasTask": [
    { "@type": "MeasurementProcess", "@id": "ex:MassMeasurement_1" },
    { "@type": "MeasurementProcess", "@id": "ex:OCVMeasurement_1" }
  ]
}

Best Practices#

  • Treat measurement as a process, not as a property value.

  • Always distinguish between the property being measured and the result.

  • Use hasInput and hasOutput to trace data lineage.

  • Use hasParticipant for all entities involved (sample, device, operator).

  • If possible, record uncertainty, instrument, and conditions.

  • Use MeasuredProperty typing when assigning results directly to an object.

  • When integrating multiple measurements, link each result explicitly to its process for provenance.

Summary#

Concept | Description | Typical Relation |

|----------|--------------|------------------| | MeasurementProcess | The act of observing or quantifying a property. | hasInput, hasOutput, hasParticipant | | MeasurementResult | The recorded data produced by the process. | quantifies a Property | | Property / Quantity | The feature of the object that was measured. | Linked to the object via hasProperty | | PhysicalObject | The entity being measured. | hasProperty or isParticipantIn |

In EMMO, these entities connect to form a complete, logically consistent chain linking the physical world, the measurement event, and the data it produces.