Skip to main content

ISO-Space (ISO 24617-7)

Overview

ISO-Space is the ISO standard framework for annotating spatial and spatiotemporal information in natural language text. It provides markup for places, spatial entities, spatial signals (prepositions and connectives), paths, motion events, and four types of spatial links: qualitative spatial links (QSLINK) using RCC-8 topological relations, orientation links (OLINK) for directional relations, measure links (MEASURELINK) for metric/distance relations, and motion links (MLINK) connecting motion events to their paths.

Layers fully subsumes ISO-Space through three mechanisms:

  1. Structured spatial annotationsspatialExpression, spatialEntity, and spatialModifier in pub.layers.defs capture all place and spatial entity attributes
  2. Annotation subkindslocation-mention, spatial-expression, spatial-signal, situation-mention discriminate ISO-Space element types
  3. Graph edges — RCC-8 topological relations, directional relations, and distance relations as graphEdge.edgeType values capture all QSLINK, OLINK, and MEASURELINK relations

Type-by-Type Mapping

Spatial Entities

ISO-Space ElementLayers EquivalentNotes
PLACEannotation with subkind="location-mention" + spatial fieldNamed/nominal place references. spatial.type="location". Geo-coordinates in spatial.value.geometry with crs="wgs84". Gazetteer references in knowledgeRefs.
PLACE.type (COUNTRY, STATE, CITY, etc.)annotation.labelThe place type as the primary label
PLACE.gazrefannotation.knowledgeRefsGazetteer reference as knowledgeRef with appropriate source (e.g., "geonames", "osm")
PLACE.latLongspatialEntity.geometry with crs="wgs84"WKT POINT: "POINT(lat lon)"
PLACE.dcl (document creation location)spatialExpression.function="document-location"Parallel to TimeML's functionInDocument
SPATIAL_ENTITY (non-place)annotation with subkind="spatial-expression" + spatial fieldNon-place spatial entities (objects with spatial extent). spatial.type varies by entity nature.
SPATIAL_ENTITY.dimensionalityspatialEntity.dimensions2 or 3
SPATIAL_ENTITY.formannotation.featuresShape description (e.g., "linear", "areal", "volumetric")

Spatial Signals

ISO-Space ElementLayers EquivalentNotes
SPATIAL_SIGNALannotation with subkind="spatial-signal"Spatial prepositions and connectives ("in", "near", "above", "between")
SPATIAL_SIGNAL.type (TOPOLOGICAL, DIRECTIONAL, METRIC)annotation.labelThe signal type as label
Text contentannotation.textThe signal text

Paths and Motion

ISO-Space ElementLayers EquivalentNotes
PATHannotation with spatial.type="path"Motion paths. spatial.value.geometry as WKT LINESTRING. spatial.value.type="line-string".
PATH.beginID / PATH.endIDannotation.arguments with role="origin" / role="destination"Path endpoints as argument references
PATH.midIDsannotation.arguments with role="waypoint"Intermediate points
MOTIONannotation with subkind="situation-mention" + argumentsMotion events. Arguments include trajector, landmark, path, goal, source.
MOTION.motion_type (MANNER, PATH)annotation.labelMotion type as label
MOTION.motion_class (MOVE, MOVE_EXTERNAL, MOVE_INTERNAL)annotation.features key motion-classISO-Space motion classification
MOTION.motion_sense (LITERAL, FICTIVE, INTRINSIC_CHANGE)annotation.features key motion-senseLiteral vs. figurative motion
ISO-Space ElementLayers EquivalentNotes
QSLINK (qualitative spatial)pub.layers.graph#graphEdge with RCC-8 edgeTypeTopological relations. relType maps to specific RCC-8 edge type.
QSLINK.relType=DCgraphEdge with edgeType="disconnected"Disconnected
QSLINK.relType=ECgraphEdge with edgeType="externally-connected"Externally connected
QSLINK.relType=POgraphEdge with edgeType="partially-overlapping"Partially overlapping
QSLINK.relType=TPPgraphEdge with edgeType="tangential-proper-part"Tangential proper part
QSLINK.relType=NTPPgraphEdge with edgeType="non-tangential-proper-part"Non-tangential proper part
QSLINK.relType=TPPigraphEdge with edgeType="tangential-proper-part-inverse"Tangential proper part inverse
QSLINK.relType=NTPPigraphEdge with edgeType="non-tangential-proper-part-inverse"Non-tangential proper part inverse
QSLINK.relType=EQgraphEdge with edgeType="spatially-equal"Spatially equal
OLINK (orientation)pub.layers.graph#graphEdge with directional edgeTypeOrientational relations
OLINK.relType (ABOVE, BELOW, LEFT, RIGHT, IN_FRONT, BEHIND, NORTH, SOUTH, EAST, WEST)Mapped directional edgeTypeABOVEabove, IN_FRONTin-front-of, NORTHnorth-of, etc.
OLINK.frame_type (INTRINSIC, RELATIVE, ABSOLUTE)graphEdge.properties feature frame-typeReference frame specification
OLINK.referencePtgraphEdge.properties feature reference-pointReference point for computing orientation
MEASURELINKpub.layers.graph#graphEdge with distance edgeTypeMetric relations
MEASURELINK.relType (DISTANCE)graphEdge with edgeType="near", "far", or "adjacent"Qualitative distance; quantitative value in properties
MEASURELINK.valuegraphEdge.properties feature distanceDistance value as string (e.g., "50km", "3 miles")
MEASURELINK.unitgraphEdge.properties feature distance-unitUnit of measurement
MLINK (motion link)pub.layers.graph#graphEdge with edgeType="causal" or "related-to"Links between motion events and spatial entities/paths
MLINK.figuregraphEdge.sourceThe moving entity
MLINK.groundgraphEdge.targetThe reference entity or path
ISO-Space ElementLayers EquivalentNotes
Link signalIDgraphEdge.labelReference to the spatial signal annotation that triggered the relation
Link triggergraphEdge.properties feature triggerThe triggering element (motion verb, spatial preposition)

Conversion Notes

An ISO-Space-annotated document can be converted to Layers records as follows:

  1. Create a pub.layers.expression record with kind="document" from the source text
  2. For each PLACE, create an annotation in an annotationLayer with kind="span", subkind="location-mention", formalism="iso-space". Populate the spatial field with a spatialExpression containing the geo-coordinates, place type, and document function
  3. For each SPATIAL_ENTITY (non-place), create an annotation with subkind="spatial-expression" and populate the spatial field
  4. For each SPATIAL_SIGNAL, create an annotation with subkind="spatial-signal"
  5. For each PATH, create an annotation with spatial.type="path" and spatial.value.geometry as WKT LINESTRING
  6. For each MOTION, create an annotation with subkind="situation-mention" and arguments for trajector, landmark, path, goal, source
  7. For each QSLINK, create a graphEdge with the mapped RCC-8 relation as edgeType
  8. For each OLINK, create a graphEdge with the mapped directional relation as edgeType, with frame of reference in properties
  9. For each MEASURELINK, create a graphEdge with a distance edgeType and distance value in properties
  10. For each MLINK, create a graphEdge linking the motion event to its spatial arguments

All ISO-Space IDs map to Layers UUIDs. Cross-references use objectRef with localId (same record) or recordRef + objectId (cross-record).