CRMem · Extended Matrix Ontology

Classes & Properties Declarations of CRMem version 1.6.22 · Turtle · RDF/XML · documentation · source

Version1.6.22 · issued 2026-05-23
Namespace (emitted)https://w3id.org/em/ontology#
Canonical addresshttps://w3id.org/extendedmatrix/ontology
CreatorEmanuele Demetrescu
LicenceCC BY 4.0
Sources3Dgraphy, commit 7b3b904

CRMem is the companion ontology of the Extended Matrix: the terms the method needs that the CIDOC CRM family does not provide — above all the virtual stratigraphic units, the entities that are not there and are argued to have been there, and the reasoning that supports them. Every class sits beneath a class of the reference family. This page is generated from em.ttl and lists 47 classes and 90 properties; the grouping follows the numbered sections of the source file.

References to external models

Where CRMem attaches to the family

Each card is a class CRMem specialises — of the CIDOC CRM family, of HDT-O, of PROV-O, or of CRMem itself — with the CRMem classes declared beneath it. A class with two parents appears in both cards. Every entry below has its own graph.

1. Authors (rights_nodes — agent provenance)

classem:AIAuthor AI Author

URIhttps://w3id.org/em/ontology#AIAuthor
Subclass ofprov:SoftwareAgent · em:Author
Superclass of—

Scope note

An AI agent (LLM, image generator, etc.) that authored or refined EM nodes. Carries model identifier and prompt reference for reproducibility. Maps to: Python AuthorAINode (node_type='author_ai'). Note: Python AuthorAINode inherits from AuthorNode for isinstance() compatibility, but in OWL em:AIAuthor and em:HumanAuthor are siblings, NOT in subClassOf relation.

Properties

em:modelIdentifier → xsd:string
em:promptReference → xsd:string
crm:E1_CRM_Entity → em:aiAssistedBy (this class as range)

classem:Author Author (abstract)

URIhttps://w3id.org/em/ontology#Author
Subclass ofcrm:E39_Actor · prov:Agent
Superclass ofem:AIAuthor · em:HumanAuthor

Scope note

Abstract superclass for any agent (human or AI) that authors or refines nodes in an EM graph. Not directly instantiated; use em:HumanAuthor or em:AIAuthor. The s3dgraphy connection has_author targets both subclasses uniformly.

Properties

em:orcidVerified → xsd:boolean
— → em:hasAuthor (this class as range)

classem:HumanAuthor Human Author

URIhttps://w3id.org/em/ontology#HumanAuthor
Subclass ofcrm:E21_Person · prov:Person · em:Author
Superclass of—

Scope note

A human contributor to one or more EM nodes. Identified by ORCID where available. Maps to: Python AuthorNode (node_type='author').

Properties

crm:E1_CRM_Entity → em:validatedBy (this class as range)

datatype propertyem:checksum checksum

URIhttps://w3id.org/em/ontology#checksum
Domain—
Rangexsd:string
Subproperty of—

Scope note

Content digest of a resource, as 'sha256:<hex>'. The ALGORITHM travels with the value on purpose: a bare hex string is unreadable in two years, and a digest nobody can verify is worse than none. Integrity AND dedup — the same photograph filed twice in two folders is ONE resource, and the digest is the only thing that knows it; the stable ID stays the IDENTITY, this is additive. Absent for a pure URI/LOD resource: there are no bytes here to hash, and its identity is already the URI. OPEN (confirm_with: Felicetti): a CIDOC-native form would be an E42_Identifier typed as a digest (or PREMIS messageDigest); a literal is the defensible minimum until the modelling of digital-object integrity is settled across the family.

object propertyem:createdBy created by (editorial)

URIhttps://w3id.org/em/ontology#createdBy
Domain—
Rangeprov:Agent
Subproperty ofprov:wasAttributedTo

Scope note

The EDITORIAL author of a node: who typed it into the file, taken automatically from the session identity and the clock, the way git records an author. DISTINCT from em:has_author / AuthorNode, which is INTERPRETIVE responsibility — who stands behind the reading — and distinct again from historical time (epochs). A node created by a student and interpreted by a director carries both, and they answer different questions. The object is the ORCID iD as an IRI (https://orcid.org/…); stored in Python as node.data['created_by'] in the bare canonical form. Emitted only when recorded: a node with no editorial author is a node nobody signed, which is not the same as a node authored by 'unknown'. Declared as a subproperty of prov:wasAttributedTo so a PROV-aware reader sees the attribution without knowing em: — and the exporter ALSO writes the plain prov:wasAttributedTo triple, for readers that do no inference.

object propertyem:lastEditedBy last edited by (editorial)

URIhttps://w3id.org/em/ontology#lastEditedBy
Domain—
Rangeprov:Agent
Subproperty ofprov:wasAttributedTo

Scope note

The last hand on a node — who modified it most recently. Stored in Python as node.data['modified_by'] (bare ORCID iD), emitted as an ORCID IRI. LAST-HAND, NOT A HISTORY: this overwrites, and the full sequence of edits is a different object (an event stream) that EM does not record today. A separate predicate from em:createdBy so the round-trip can tell the two apart — prov:wasAttributedTo alone could not, and both are attributions. OPEN (confirm_with: Felicetti): the CIDOC-native form of an edit is an E13 Attribute Assignment (or a crmdig:D7 modification event) with its own actor and time; a pair of properties is the defensible minimum for a stamp that is taken automatically and carries no other fact about the event.

datatype propertyem:modelIdentifier model identifier

URIhttps://w3id.org/em/ontology#modelIdentifier
Domainem:AIAuthor
Rangexsd:string
Subproperty of—

Scope note

Identifier of the AI model used (e.g. 'gpt-5', 'claude-opus-4.7', 'stable-diffusion-xl'). Stored in Python as node.data['model'].

datatype propertyem:modifiedAt modified at (editorial)

URIhttps://w3id.org/em/ontology#modifiedAt
Domain—
Rangexsd:dateTime
Subproperty of—

Scope note

When a node was last modified (ISO-8601, UTC). Stored in Python as node.data['modified_at']. The creation instant projects as prov:generatedAtTime, which is standard PROV; PROV has no lightweight counterpart for 'last modified' without reifying an activity, so this is stated with dcterms:modified alongside it — em:modifiedAt exists so the pair reads as one vocabulary and so the round-trip has a single predicate to look for. OPEN (confirm_with: Felicetti): if the family settles on dcterms:modified alone, this becomes redundant and should be retired rather than kept as a synonym.

datatype propertyem:orcidVerified ORCID verified

URIhttps://w3id.org/em/ontology#orcidVerified
Domainem:Author
Rangexsd:boolean
Subproperty of—

Scope note

True when the author's declared ORCID iD has been CONFIRMED through ORCID (via the identity broker), as opposed to merely declared by whoever typed it. The ORCID iD is the identity; this says whether that identity has been checked. Emitted ONLY when true: 'not verified' is the absence of a check, not an assertion of falsity, and an empty graph already says it — writing `false` would turn 'nobody has looked yet' into a claim that travels. Claim now, verify later: an author may work, author nodes and prepare data with a declared iD; what verification gates is PUBLISHING AS that person. Stored in Python as AuthorNode.data['verified']. OPEN (confirm_with: Felicetti): a CIDOC-native form would reify the check as an E13 Attribute Assignment (who verified, when, against which authority) — the right shape once the flow records those facts, which it does not yet; reifying an event with no actor and no date would be inventing provenance.

datatype propertyem:promptReference prompt reference

URIhttps://w3id.org/em/ontology#promptReference
Domainem:AIAuthor
Rangexsd:string
Subproperty of—

Scope note

Reference to the prompt or workflow used. May be a URL, a DocumentNode id, or free text. Stored in Python as node.data['prompt_reference'].

datatype propertyem:removedAt removed at

URIhttps://w3id.org/em/ontology#removedAt
Domain—
Rangexsd:dateTime
Subproperty of—

Scope note

When a node was DELETED (ISO-8601, UTC). A deletion in EM is a TOMBSTONE, not an absence: the node keeps its id and carries this mark, because 'deleted' and 'not yet known to you' are different states and a collaboration that cannot tell them apart resurrects the dead. Views hide a tombstoned node; the merge sees it, and an edit later than the deletion revives it deliberately (P4.1, OR-Set semantics). Stored in Python as node.data['removed']['ts']. Emitted only when the node carries a tombstone. OPEN (confirm_with: Felicetti): a CIDOC-native form would reify the deletion as an E13/D-series event with its own actor and time; a pair of properties is the defensible minimum for a mark that is taken automatically and carries no other fact.

object propertyem:removedBy removed by

URIhttps://w3id.org/em/ontology#removedBy
Domain—
Rangeprov:Agent
Subproperty ofprov:wasAttributedTo

Scope note

Who deleted a node — the ORCID iD as an IRI. Companion of em:removedAt; see there for why a deletion is a mark rather than an absence. Stored in Python as node.data['removed']['by'].

datatype propertyem:residency residency

URIhttps://w3id.org/em/ontology#residency
Domain—
Rangexsd:string
Subproperty of—

Scope note

Where the bytes of a resource live: 'reference' (the URI stays at home, light but dependent on the network and on somebody else's fence) or 'resident' (copied into my own store, heavier but the comparison travels with my study, offline included). The same linked/managed distinction Tropy makes. Emitted only when recorded.

datatype propertyem:resourceScope resource scope

URIhttps://w3id.org/em/ontology#resourceScope
Domain—
Rangexsd:string
Subproperty of—

Scope note

Which FENCE a shelf resource comes from, in order of distance: 'own-study' (this EM study), 'own-HDT' (the study's Heritage Digital Twin), 'other-HDT' (another site's twin — a COMPARANDUM). Not an implementation detail: it is the axis resource search must be able to filter on and the interface must show, because whether a thing is mine, my twin's or another site's changes what a comparison means. Emitted only when recorded — absent means nobody said, not 'own-study'. OPEN (confirm_with: Felicetti): the provenance of a comparandum is ALSO carried by the DTC acquisition (repo_id / record_id, DTCAcquisitionNode); whether this literal should instead be derived from that chain is the modelling question to settle — today it is stated because a shelf entry must be filterable without walking a chain.

2. Stratigraphic units — virtual family

classem:DocumentaryVirtualSU Documentary Virtual SU (USD)

URIhttps://w3id.org/em/ontology#DocumentaryVirtualSU
Subclass ofem:VirtualSU
Superclass ofem:SeriesOfDocumentarySU

Scope note

Stratigraphic unit inferred from documentary sources rather than direct archaeological observation. Logically a Virtual SU (propositional) but evidenced by historical/archival documents rather than archaeological reasoning. Linked to its supporting documents via em:derivedFromDocument. Maps to: Python DocumentaryStratigraphicUnit (node_type='USD').

classem:NonStructuralVirtualSU Non-Structural Virtual SU (USVn)

URIhttps://w3id.org/em/ontology#NonStructuralVirtualSU
Subclass ofem:VirtualSU
Superclass ofem:SeriesOfNonStructuralVirtualSU

Scope note

Hypothesized non-structural stratigraphic unit: furniture, decoration, non-load-bearing elements. EM yEd symbol: black hexagon. Maps to: Python NonStructuralVirtualStratigraphicUnit (node_type='USVn').

classem:StructuralVirtualSU Structural Virtual SU (USVs)

URIhttps://w3id.org/em/ontology#StructuralVirtualSU
Subclass ofem:VirtualSU
Superclass ofem:SeriesOfStructuralVirtualSU

Scope note

Hypothesized structural stratigraphic unit: walls, columns, load-bearing elements. EM yEd symbol: black parallelogram. Maps to: Python StructuralVirtualStratigraphicUnit (node_type='USVs').

classem:VirtualSpecialFind Virtual Special Find (VSF)

URIhttps://w3id.org/em/ontology#VirtualSpecialFind
Subclass ofcrm:E19_Physical_Object · crm:E89_Propositional_Object
Superclass ofem:SeriesOfVirtualSpecialFind

Scope note

The object as it was, a hypothesis supported by paradata, in two roles (E.D., 23 Oct 2026): the VSF that HOLDS the fragments, reconstructed from them (em:reconstructsFrom: the column from its drums, one whole proxy), and the VSF that COMPLETES what was restored (the missing part around the piece that survives). Restoring the block and remodelling the ancient version under control are both correct; the difference between the surviving piece (SF) and the intact ancient one (VSF) is obtained by a boolean. An anastylosis is always a VSF. Maps to: Python VirtualSpecialFindUnit (node_type='VSF').

classem:VirtualSU Virtual Stratigraphic Unit (abstract)

URIhttps://w3id.org/em/ontology#VirtualSU
Subclass ofcrmarchaeo:A8_Stratigraphic_Unit · crminf:I4_Proposition_Set
Superclass ofem:DocumentaryVirtualSU · em:NonStructuralVirtualSU · em:StructuralVirtualSU

Scope note

Abstract superclass for hypothesized stratigraphic units that are NOT physically observed (reconstructed from evidence). Distinct from crmarchaeo:A2 (physical volume) — a Virtual SU is a propositional entity supported by paradata. Always linked to its argumentation chain via em:hypothesizedBy.

3. Stratigraphic units — real family (extensions of A8)

classem:DisplacedSpecialFind Special Find (SF)

URIhttps://w3id.org/em/ontology#DisplacedSpecialFind
Subclass ofcrm:E19_Physical_Object
Superclass of—

Scope note

Movable physical object, found erratic or inside a layer and taken out during the excavation, documented where it was found — a definition in positive (E.D., 23 Oct 2026). How it lay (in situ, redeposited, fallen in position) is an attribute, not a class: a collapse found in position is a Special Find. Movable, against the immovable em:ReusedSpecialFind. The URI keeps its historical name ('Displaced', EM 1.5) so every triple already written resolves. Maps to: Python SpecialFindUnit (node_type='SF').

Properties

em:VirtualSpecialFind → em:reconstructsFrom (this class as range)

classem:NegativeSU Negative Stratigraphic Unit (USN)

URIhttps://w3id.org/em/ontology#NegativeSU
Subclass ofcrmarchaeo:A3_Stratigraphic_Interface
Superclass of—

Scope note

Stratigraphic interface produced by removal of matter — a cut, an erosion surface, a demolition void, the rasatura of the top of a wall. Distinct from positive A2 units: a USN is an interface (A3), not a volume. Linked to the removal event via crm:P108i_was_produced_by → crmarchaeo:A5_Stratigraphic_Modification. Maps to: Python NegativeStratigraphicUnit (node_type='USN').

classem:ReusedSpecialFind Repositioned Special Find (RSF)

URIhttps://w3id.org/em/ontology#ReusedSpecialFind
Subclass ofcrm:E19_Physical_Object · crmarchaeo:A2_Stratigraphic_Volume_Unit
Superclass of—

Scope note

A physical object, fixed and immovable, intentionally put back into a stable unit (a wall: spolia, e.g. a Roman epigraph reused in a Renaissance wall) or into a new functional placement (a column drum as street furniture), a historical physical anastylosis included; reuse is one case of it (E.D., 23 Oct 2026). The URI keeps its historical name. Has dual nature: an E19 object with its own production history AND a current A2 SU embedded in stratigraphy. Linked to original context via em:wasReusedFrom. Maps to: Python ReusedSpecialFind (node_type='RSF').

object propertyem:wasReusedFrom was reused from

URIhttps://w3id.org/em/ontology#wasReusedFrom
Domainem:ReusedSpecialFind
Rangecrmarchaeo:A8_Stratigraphic_Unit
Subproperty of—

Scope note

Links a reused special find (spolia) to the original stratigraphic context from which it was extracted before reuse.

4. Stratigraphic units — series (pragmatic aggregations)

classem:SeriesOfDocumentarySU Series of Documentary SU

URIhttps://w3id.org/em/ontology#SeriesOfDocumentarySU
Subclass ofem:DocumentaryVirtualSU
Superclass of—

Scope note

Pragmatic aggregation of multiple DocumentaryVirtualSUs. Maps to: Python SeriesOfDocumentaryStratigraphicUnit (node_type='serUSD').

classem:SeriesOfNonStructuralVirtualSU Series of Non-Structural Virtual SU

URIhttps://w3id.org/em/ontology#SeriesOfNonStructuralVirtualSU
Subclass ofem:NonStructuralVirtualSU
Superclass of—

Scope note

Pragmatic aggregation of multiple NonStructuralVirtualSUs. Maps to: Python SeriesOfNonStructuralVirtualStratigraphicUnit (node_type='serUSVn').

classem:SeriesOfStructuralVirtualSU Series of Structural Virtual SU

URIhttps://w3id.org/em/ontology#SeriesOfStructuralVirtualSU
Subclass ofem:StructuralVirtualSU
Superclass of—

Scope note

Pragmatic aggregation of multiple StructuralVirtualSUs. Maps to: Python SeriesOfStructuralVirtualStratigraphicUnit (node_type='serUSVs').

classem:SeriesOfSU Series of SU

URIhttps://w3id.org/em/ontology#SeriesOfSU
Subclass ofcrmarchaeo:A8_Stratigraphic_Unit
Superclass of—

Scope note

Pragmatic stratigraphic aggregation: one logical SU representing multiple physical SUs treated as one (e.g. a series of column bases not worth numbering individually). Linked to its components via crm:P46_is_composed_of. Maps to: Python SeriesOfStratigraphicUnit (node_type='serSU').

classem:SeriesOfVirtualSpecialFind Series of Virtual Special Finds (serVSF)

URIhttps://w3id.org/em/ontology#SeriesOfVirtualSpecialFind
Subclass ofem:VirtualSpecialFind
Superclass of—

Scope note

The repetition of one and the same object: a broken tile repaired with a Virtual Special Find and then instanced over the whole roof. The series is itself a virtual special find; the VSF it repeats is a component of it (crm:P46_is_composed_of). Not for pieces that are all different (the drums of a tapering column): each is a VSF of its own. Maps to: Python SeriesOfVirtualSpecialFindUnit (node_type='serVSF').

5. Stratigraphic events / transformations / working

classem:ContinuityNode Continuity Node (BR)

URIhttps://w3id.org/em/ontology#ContinuityNode
Subclass ofcrm:E5_Event
Superclass of—

Scope note

The end of a unit: the moment a stratigraphic unit ceases to be present here, as a whole. HOW it ends is a type of the EM vocabulary (crm:P2_has_type → em:EndOfUnit…), and the type decides the CIDOC class the node also takes and the property by which it reaches the unit: destroyed → crm:E6_Destruction / crm:P13_destroyed; transformed → crm:E81_Transformation / crm:P124_transformed (+ crm:P123_resulted_in); removed → crm:E80_Part_Removal / crm:P113_removed (+ crm:P112_diminished on the host); relocated → crm:E9_Move / crm:P25_moved (+ crm:P27_moved_from); unknown, the default → crm:E64_End_of_Existence / crm:P93_took_out_of_existence. A subclass of crm:E5_Event, the superclass of the five, and not of E64 since 1.6.21: a removed or relocated unit survives elsewhere. Maps to: Python ContinuityNode (node_type='BR'), node datamodel ContinuityNode.properties.end_reason.

classem:StratigraphicEvent Stratigraphic Event (SE)

URIhttps://w3id.org/em/ontology#StratigraphicEvent
Subclass ofcrmarchaeo:A5_Stratigraphic_Modification
Superclass of—

Scope note

An event that creates, modifies, or destroys a stratigraphic unit (e.g. an earthquake causing a plaster collapse, an act of demolition). Re-anchored 2026-07-11 from generic crm:E5_Event to crmarchaeo:A5_Stratigraphic_Modification: formation is A4 (subclass of A5), modification is A5, destruction is A5-as-disturbance (AP8) plus A4 genesis of the resulting A3 interface; E5 remains reachable transitively via A5 < S18 < E5. Cf. Guillem et al. 2024 (SWODCH). May be enriched by a 3D simulation (em:RepresentationModel) of the event itself. Maps to: Python StratigraphicEventNode (node_type='SE').

classem:TransformationSU Transformation Stratigraphic Unit (TSU)

URIhttps://w3id.org/em/ontology#TransformationSU
Subclass ofcrmarchaeo:A5_Stratigraphic_Modification
Superclass of—

Scope note

A family of actions modifying a surface or structure — the 'map of degradation' treated stratigraphically. Aggregates multiple A5 modification events via crm:P46_is_composed_of. Maps to: Python TransformationStratigraphicUnit (node_type='TSU').

classem:WorkingUnit Working Unit (UL)

URIhttps://w3id.org/em/ontology#WorkingUnit
Subclass ofcrm:E25_Human-Made_Feature
Superclass of—

Scope note

Trace of human working/production on a surface — chisel marks, gradina marks, iccozza marks on Etruscan tomb walls, hammer impacts. The UL is the FEATURE (the marks); the production EVENT is a separate crm:E12_Production linked via crm:P108i_was_produced_by. Maps to: Python WorkingUnit (node_type='UL').

6. TIME BRANCH — alternative timelines

classem:TimeBranch Time Branch

URIhttps://w3id.org/em/ontology#TimeBranch
Subclass ofcrm:E4_Period
Superclass of—

Scope note

An alternative timeline aggregating a set of mutually exclusive beliefs about a temporal interval. Two TimeBranch instances may be related by em:contrastsWith to denote alternative reconstructions of the same period. The Period nature (E4) anchors temporal identity; the alternative-set nature is captured by em:contrastsWith. Note: EM does not require TimeBranches to be propositional themselves (everything in EM is propositional by design) — the key distinguishing trait is the aggregation of contrasting beliefs along a shared timeline. Maps to: Python TimeBranchNodeGroup.

Properties

crm:E1_CRM_Entity → em:belongsToAlternative (this class as range)
em:TimeBranch → em:contrastsWith (this class as range)

object propertyem:contrastsWith contrasts with

URIhttps://w3id.org/em/ontology#contrastsWith
Domainem:TimeBranch
Rangeem:TimeBranch
Subproperty of—
Characteristicssymmetric

Scope note

Symmetric relation between two TimeBranches that represent mutually exclusive temporal scenarios. Implies the propositions in each branch are alternatives (only one can be true at a time, or both are entertained as parallel hypotheses).

7. 3d representation models (CRMdig family)

classem:AnnotationRegion Annotation Region (2D, image space)

URIhttps://w3id.org/em/ontology#AnnotationRegion
Subclass ofcrm:E36_Visual_Item
Superclass of—

Scope note

A region of ONE IMAGE — or of one page of a multi-page resource — in NORMALISED image coordinates [0,1]: the geometry of a 2D annotation. A region of a visual item IS a visual item, hence E36. DISTINCT from em:SemanticShape, which is 3D geometry of the SCENE (crmgeo:SP5, expressing WHERE a thing is): an AnnotationRegion makes no claim about where anything is, it says which part of which picture was looked at. Distinct from em:Location (E53 Place) for the same reason — a place is in the world, a region is in an image of it. Attached to its image with em:isOnResource (P106i) and is the precise target of em:hasVisualReference from a quale. Geometry travels as a selector literal (em:hasSelector). OPEN: the fine modelling of the geometry itself (selector literal vs a CRMgeo SP* expression) is to be confirmed with Felicetti; the class is decided, the selector is the interoperable form defensible today. SINCE node datamodel 1.6.10 (2026-10-06) the class is the place of ANY reading, told apart by crm:P2_has_type = geometry_kind: region2d (the image case above, default), passage (a text: em:hasSelector 'char=start,end', RFC 5147), point / line / polyline (a 3D model: NO selector; SINCE v1.6.8 the vertices are the node's and leave as geo:hasGeometry -> <region>/geometry geo:asWKT, a GeoSPARQL WKT literal whose CRS IRI is em:LocalSceneFrame for the scene frame — above coords.inline_max_vertices a .glb resource reached with has_linked_resource; from v1.6.6 to v1.6.7 they were a .glb behind em:hasSemanticShape). SINCE v1.6.6 a passage also carries its QUOTE (oa:hasSelector -> oa:TextQuoteSelector with oa:exact, at the derived IRI <region>/quote), a line or polyline its LENGTH (crm:P43_has_dimension -> crm:E54_Dimension at <region>/length, typed 'length' with P2, P90 value, P91 QUDT unit, em:crs) and every 3D kind em:vertexCount. The oa:hasSelector domain entails that a passage region is an oa:SpecificResource — true of it (a part of a source picked by a selector) and left as an entailment, not declared. Maps to: Python AnnotationRegionNode (node_type='annotation_region').

Properties

em:hasSelector → xsd:string
em:onPage → xsd:nonNegativeInteger
em:vertexCount → xsd:nonNegativeInteger

classem:DocumentaryRepresentation Documentary Representation Model

URIhttps://w3id.org/em/ontology#DocumentaryRepresentation
Subclass ofem:RepresentationModel
Superclass of—

Scope note

3D representation of a documentary node — e.g. a historical photo georeferenced and positioned at the location it depicts. Linked via crm:P138_represents to a DocumentNode. Maps to: Python RepresentationModelDocNode (node_type='representation_model_doc').

classem:RepresentationModel Representation Model

URIhttps://w3id.org/em/ontology#RepresentationModel
Subclass ofcrmdig:D1_Digital_Object
Superclass ofem:DocumentaryRepresentation · em:SpecialFindRepresentation · em:StratigraphicRepresentation

Scope note

A 3D model or spatialized image representing some node in the graph. Abstract base. Specialized into em:StratigraphicRepresentation, em:DocumentaryRepresentation, em:SpecialFindRepresentation. Always linked to what it represents via crm:P138_represents. WHAT IT IS (E.D., 21 September 2026). A representation model is a DOCUMENT WITH A DATE: it was made on a day, by somebody, from something, and it is naturally anchored to an EPOCH rather than to a unit. It is also potentially PARTIAL — a photogrammetric survey can come back with an incomplete mesh, a facade recorded from one side only, a room whose ceiling nobody could reach. Both of those together have one consequence worth stating so nobody reasons past it: the ABSENCE of a link between a model and a stratigraphic unit IS NOT INFORMATIVE. It does not mean the unit was not represented, and it does not mean the unit is not there; it means this document does not reach that far. Queries must not read a missing link as a negative claim. The PROXY has a different statute and is not the same kind of thing: em:SemanticShape is CUMULATIVE and ARGUED — a quale synthesised from several sources, inheriting the extractor/combiner chain, so it can be more COMPLETE than any single model while being far less detailed. A model is one look at the thing; a proxy is what we have concluded the thing occupies. DATING AND PROVENANCE HAVE NO FIELD OF THEIR OWN ON THIS CLASS, and that is deliberate: they travel through has_linked_resource to a ResourceNode and back up through dtc_had_output to the DTC event that produced it, where the date, the device and the author already live and are already paradata. A `date` field MUST NOT be added to RepresentationModelNode: it would duplicate the DTC chain, drift from it, and turn a documented provenance into a typed-in string.

classem:SemanticShape Semantic Shape (proxy geometry)

URIhttps://w3id.org/em/ontology#SemanticShape
Subclass ofcrm:E73_Information_Object
Superclass of—

Scope note

3D proxy geometry (convex shapes or spheres, or a .glb via rdfs:seeAlso) representing the spatial extent of a node. Lighter weight than a full RepresentationModel: intended for spatial indexing and rough containment, not for visual rendering. SINCE 2026-08-11 IT IS A PAYLOAD: the proxy of a unit is a quale — a property of type 'geometry' — and this class is what that property points at through P138i (has_semantic_shape). The reason is paradata: a lone shape cannot say where it came from, while a property inherits the extractor/combiner chain, so one proxy can be synthesised from several sources (a photogrammetric mesh and a historical photograph). The class itself did not change; who points at it did. Maps to: Python SemanticShapeNode (node_type='semantic_shape').

Properties

em:convexShape → xsd:string
em:sphere → xsd:string
crm:E1_CRM_Entity → em:hasSemanticShape (this class as range)

classem:SpecialFindRepresentation Special Find Representation Model

URIhttps://w3id.org/em/ontology#SpecialFindRepresentation
Subclass ofem:RepresentationModel
Superclass of—

Scope note

3D representation of a special find — e.g. a scanned capital repositioned according to an anastylosis hypothesis. Linked via crm:P138_represents to a SpecialFindUnit. Maps to: Python RepresentationModelSpecialFindNode (node_type='representation_model_sf').

classem:StratigraphicRepresentation Stratigraphic Representation Model

URIhttps://w3id.org/em/ontology#StratigraphicRepresentation
Subclass ofem:RepresentationModel
Superclass of—

Scope note

3D representation of a stratigraphic node (real or virtual). Maps to: Python RepresentationModelNode (node_type='representation_model').

datatype propertyem:convexShape convex shape

URIhttps://w3id.org/em/ontology#convexShape
Domainem:SemanticShape
Rangexsd:string
Subproperty of—

Scope note

One convex hull of a semantic shape, as a space-separated list of coordinate triplets (x y z x y z ...), fixed to 6 decimals. REPEATABLE: a shape may carry several hulls, and each is its own statement rather than an element of a parsed container — a consumer after 'the third hull' should not have to take a blob apart to reach it. Stored in Python as SemanticShapeNode.convexshapes. Added 2026-08-11 with the proxy-as-property model: the shape became the PAYLOAD of a geometry property, so the numbers are the point of the node and had to start travelling (before, a proxy came back from the store as an empty shape with a label).

datatype propertyem:crs reference system

URIhttps://w3id.org/em/ontology#crs
Domaincrm:E54_Dimension
Rangexsd:string
Subproperty of—

Scope note

The frame a measured dimension was taken in: 'local' for the scene-local frame of the model (glTF, net of the GeoPositionNode shift — the frame the proxies are in), or a CRS code such as 'EPSG:3004'. CIDOC has no property for the frame of an E54 (P91 is the unit, not the space), and a crmgeo SP4/Q-property chain would promise a spatial reference system object this model does not have; hence a literal. Added v1.6.6 for the length of a line / polyline reading (<region>/length). Stored in Python as AnnotationRegionNode.crs.

datatype propertyem:hasSelector has selector

URIhttps://w3id.org/em/ontology#hasSelector
Domainem:AnnotationRegion
Rangexsd:string
Subproperty of—

Scope note

The geometry of an annotation region as a selector string, in the spirit of the W3C Web Annotation model: a Media Fragment for a rectangle ('xywh=percent:x,y,w,h') or an SVG-style point list for a polygon ('polygon(percent:x1,y1 x2,y2 ...)'). Percent units, so the region is resolution-independent — the same photograph re-exported at another size still resolves it. One string rather than a structure, so a consumer outside EM can act on the region without reading the s3Dgraphy datamodel. Stored in Python as AnnotationRegionNode.shape_kind + rect/points, from which it is derived (never a second copy of the geometry). For a passage it is the RFC 5147 text fragment 'char=start,end' (AnnotationRegionNode.start/end) — the form Web Annotation itself accepts for a FragmentSelector conforming to RFC 5147, so the offsets are not also emitted as an oa:TextPositionSelector (that would be the second copy); the QUOTE, which has no fragment form, goes as oa:TextQuoteSelector.

object propertyem:isOnResource is on resource

URIhttps://w3id.org/em/ontology#isOnResource
Domainem:AnnotationRegion
Rangecrm:E73_Information_Object
Subproperty ofcrm:P106i_forms_part_of

Scope note

The image (or source document) an annotation region is a region OF. P106i and NOT P46i: a region is an informational part of a symbolic object, not a physical part of a thing — and P46i is also the nesting axis of the EM drawing, so reusing it would make every region a box inside its image in the matrix, a layout claim nobody made. Maps to: connections_datamodel edge 'is_on_resource' (source AnnotationRegionNode, target ResourceNode|DocumentNode).

datatype propertyem:onPage on page

URIhttps://w3id.org/em/ontology#onPage
Domainem:AnnotationRegion
Rangexsd:nonNegativeInteger
Subproperty of—

Scope note

Zero-based index of the page (or frame, or collection item) the region lives on: 0 for a plain single image, 2 for the third page of a PDF. Emitted only when non-zero — a bare image needs no page statement, and asserting 0 everywhere would put a fact in the store that nobody stated. Stored in Python as AnnotationRegionNode.page.

datatype propertyem:sphere sphere

URIhttps://w3id.org/em/ontology#sphere
Domainem:SemanticShape
Rangexsd:string
Subproperty of—

Scope note

One sphere of a semantic shape, as 'x y z r' with fixed precision. Repeatable, for the same reason as em:convexShape. Stored in Python as SemanticShapeNode.spheres.

datatype propertyem:vertexCount vertex count

URIhttps://w3id.org/em/ontology#vertexCount
Domainem:AnnotationRegion
Rangexsd:nonNegativeInteger
Subproperty of—

Scope note

How many vertices a 3D reading (point, line, polyline) has. Since v1.6.8 the vertices themselves are in RDF (geo:hasGeometry -> geo:asWKT) when they are in the node, and this is their count; above coords.inline_max_vertices they are a .glb resource (has_linked_resource) and this is what the region shows without opening the file. Added v1.6.6. Stored in Python as AnnotationRegionNode.vertex_count.

8. Rights (License, Embargo) and GRAPH CONTAINER

classem:Embargo Embargo

URIhttps://w3id.org/em/ontology#Embargo
Subclass ofcrm:E30_Right
Superclass of—

Scope note

A temporal embargo restricting access or distribution of a node, license, or whole graph. Linked to its time-span via crm:P4_has_time-span → crm:E52_Time-Span (built from embargo_start / embargo_end). An embargo with no embargo_end is indefinite until lifted. Maps to: Python EmbargoNode (node_type='embargo').

classem:EMGraph EM Graph

URIhttps://w3id.org/em/ontology#EMGraph
Subclass ofcrm:E73_Information_Object · prov:Bundle · hdto:HC16_Heritage_Proposition_Set
Superclass of—

Scope note

The Extended Matrix project graph as (a) a single information artifact (E73), (b) a bundle of triples (prov:Bundle), and (c) a Heritage Proposition Set in HDT-O terms (hdto:HC16) — i.e. a named graph carrying formal assertions about heritage. One graph, one study: an Extended Matrix graph corresponds one to one to the study that created it (hdto:HC9_Study, Python StudyNode, through hdto:HP25_has_created); the study is about a heritage entity (hdto:HP23_was_about) and may form part of a project (hdto:HC13, crm:P9_consists_of). This is what StratiGraph D3.1 §3.3 and D3.2 §3.5 state as «a graph is a study: its content is a proposition set». The sentence names a correspondence, not a shared class: em:EMGraph is deliberately not a subclass of hdto:HC9, because HC9 is a crm:E65 Creation (an E2 Temporal Entity, the investigation as an act) and HC16 a crminf:I4 Proposition Set (an E77 Persistent Item, what the act asserts), two classes CIDOC CRM keeps disjoint. Nor is the graph the digital twin: an hdto:HC2_Heritage_Digital_Twin gathers all the digital information about a heritage asset at any scale, a whole building or one inscribed block, and can contain the proposition sets of several studies. Anchor for graph-level metadata: default author, license, embargo, epoch, project provenance. In RDF serialization this is the named-graph IRI carrying graph-wide assertions; values declared on the EMGraph become defaults inherited by all contained nodes unless overridden locally. An em:EMGraph can be attached to one or more hdto:HC2_Heritage_Digital_Twin instances via hdto:HP33_contains (and its inverse HP33i_is_proposition_set_of). Maps to: Python GraphNode (node_type='graph').

classem:License License

URIhttps://w3id.org/em/ontology#License
Subclass ofdcterms:LicenseDocument · crm:E30_Right
Superclass of—

Scope note

The license under which a node (or the whole EM graph) is published. Identified by license_type (e.g. 'CC-BY-4.0') and url. Linked to its subject via the inverse of crm:P104_is_subject_to. Maps to: Python LicenseNode (node_type='license').

9. Qualia (properties of nodes)

classem:Qualia Qualia (Property container)

URIhttps://w3id.org/em/ontology#Qualia
Subclass ofcrm:E1_CRM_Entity
Superclass of—

Scope note

A property of a node — quale spanning from objective measurement (E54_Dimension) through typology (E55_Type) to interpretive belief (crminf:I4_Proposition_Set). The actual CIDOC class used at RDF serialization time is determined by the qualia type registered in em_qualia_types.json — see the per-qualia cidoc_crm field. em:Qualia is the graph-topology shell; the semantic class comes from the qualia type catalogue. Maps to: Python PropertyNode (node_type='property').

Properties

em:hasQualiaType → xsd:string
crm:E1_CRM_Entity → em:hasQualia (this class as range)
crm:E1_CRM_Entity → em:inheritsQualia (this class as range)

object propertyem:hasQualia has qualia

URIhttps://w3id.org/em/ontology#hasQualia
Domaincrm:E1_CRM_Entity
Rangeem:Qualia
Subproperty of—
Superproperty ofem:inheritsQualia

Scope note

Links an entity to one of its qualia (a typed property with its own paradata chain).

datatype propertyem:hasQualiaType has qualia type

URIhttps://w3id.org/em/ontology#hasQualiaType
Domainem:Qualia
Rangexsd:string
Subproperty of—

Scope note

The identifier of the qualia type (registered in em_qualia_types.json) — e.g. 'height', 'color', 'aesthetic_value', 'confidence_level'. Used by the RDF mapper to look up the appropriate CIDOC class for serialization.

object propertyem:inheritsQualia inherits qualia

URIhttps://w3id.org/em/ontology#inheritsQualia
Domaincrm:E1_CRM_Entity
Rangeem:Qualia
Subproperty ofem:hasQualia

Scope note

The entity INSTANTIATES a qualia another entity created: one property, one value, one paradata chain, several owners (a virtual unit taking the material of the unit it completes; E.D. 2026-09-29). A subproperty of em:hasQualia, so every owner is still found by em:hasQualia; this one says the inheritance was DECLARED and that the subject is not the original owner. Maps to: connections_datamodel edge 'has_property' carrying the edge attribute inherited=true (connections 1.6.23, has_property.owners_note).

10. Paradata chain (argumentation)

classem:Combiner Combiner (Inference Making)

URIhttps://w3id.org/em/ontology#Combiner
Subclass ofcrminf:I5_Inference_Making
Superclass of—

Scope note

An act of combining MULTIPLE extracted beliefs into a single conclusion — the 'X and Y therefore Z' step in the EM paradata chain. Takes multiple em:Extractor inputs and produces a synthesized assertion. Maps to: Python CombinerNode (node_type='combiner').

classem:Extractor Extractor (Belief Adoption)

URIhttps://w3id.org/em/ontology#Extractor
Subclass ofcrminf:I7_Belief_Adoption
Superclass of—

Scope note

An act of extracting / adopting a belief from a SINGLE source (DocumentNode). The mediator between a primary source and an assertion: 'I adopted this belief because this source says so'. Distinct from em:Combiner which combines multiple Extractors. Maps to: Python ExtractorNode (node_type='extractor').

classem:Paradata Paradata (Argumentation head)

URIhttps://w3id.org/em/ontology#Paradata
Subclass ofcrminf:I1_Argumentation
Superclass of—

Scope note

Head of a paradata chain: the argumentation that supports an assertion about an entity or property. Not a document — the documentation lives at the source end of the chain (DocumentNode reached via ExtractorNode → CombinerNode → Paradata). Maps to: Python ParadataNode (node_type='paradata').

datatype propertyem:confidenceLevel confidence level

URIhttps://w3id.org/em/ontology#confidenceLevel
Domaincrm:E1_CRM_Entity
Rangexsd:decimal
Subproperty of—

Scope note

Numerical confidence (0-100%) in an assertion about an entity. The EM-canonical scalar for paradata-supported claims. See em_qualia_types.json → epistemic.confidence.confidence_level for the full definition.

object propertyem:derivedFromDocument derived from document

URIhttps://w3id.org/em/ontology#derivedFromDocument
Domainem:DocumentaryVirtualSU
Rangecrm:E31_Document
Subproperty of—

Scope note

Links a DocumentaryVirtualSU to the document(s) from which its existence is inferred.

object propertyem:hypothesizedBy hypothesized by

URIhttps://w3id.org/em/ontology#hypothesizedBy
Domainem:VirtualSU
Rangecrminf:I1_Argumentation
Subproperty of—

Scope note

Links a virtual stratigraphic unit (or any hypothesized entity) to the argumentation chain that supports its existence.

object propertyem:reconstructsAbsent reconstructs absent

URIhttps://w3id.org/em/ontology#reconstructsAbsent
Domainem:VirtualSU
Rangecrmarchaeo:A8_Stratigraphic_Unit
Subproperty of—

Scope note

Links a Virtual SU to the absent (lost, destroyed, or never-observed) stratigraphic unit it reconstructs. Encodes the 'lacuna theory' of EM — what is missing, what is there, and how do we know.

object propertyem:reconstructsFrom reconstructs from

URIhttps://w3id.org/em/ontology#reconstructsFrom
Domainem:VirtualSpecialFind
Rangeem:DisplacedSpecialFind
Subproperty of—

Scope note

Links a Virtual Special Find to the fragmented Special Finds it virtually reassembles.

11. Stratigraphic physical relations (AP11 subproperties)

classem:GeoPositionNode Geo Position

URIhttps://w3id.org/em/ontology#GeoPositionNode
Subclass ofcrm:E53_Place
Superclass of—

Scope note

The METRIC anchor of a graph, one per graph: a CRS (epsg), the origin of the scene-local frame (shift_x/y/z — the point that is 0,0,0 in the scene, which may legitimately sit outside the geometry) and its azimuth (rotation, clockwise from north). Distinct from em:LocationNodeGroup: that one answers 'which place', this one answers 'where, in numbers'. Maps to: Python GeoPositionNode (node_type='geo_position').

classem:LocationNodeGroup Location Node Group

URIhttps://w3id.org/em/ontology#LocationNodeGroup
Subclass ofcrm:E53_Place · em:NodeGroup
Superclass of—

Scope note

The IDENTITARY side of place: what named place is this in — a toponym (Pompei), a study unit (Saggio4/A2) or a functional one (Casa del Fauno / Room 12). Still an E53 Place classified by E55 Type, exactly as before; the em: class exists to separate it from em:GeoPositionNode, which is the METRIC side and was sharing the same E53. Membership is m:n and additive. Maps to: Python LocationNodeGroup (node_type='LocationNodeGroup').

Properties

classem:Node EM Node (base)

URIhttps://w3id.org/em/ontology#Node
Subclass ofcrm:E1_CRM_Entity
Superclass of—

Scope note

The base class every EM node inherits from. Declared not because it says anything beyond E1 — it does not — but so that a node serialized AS the base class is distinguishable from one the source could not type (em:UnknownNode). Maps to: Python Node (node_type='Node').

classem:NodeGroup Node Group (abstract)

URIhttps://w3id.org/em/ontology#NodeGroup
Subclass ofcrm:E73_Information_Object
Superclass ofem:LocationNodeGroup · em:ParadataNodeGroup · em:RepresentationModelNodeGroup

Scope note

Abstract superclass of the EM grouping axes — activity (intention), paradata (justification), timebranch (alternative time), location (place), functional unit (architectural composition). A group is a Collection of nodes and never changes what its members ARE. Maps to: Python GroupNode (node_type='Group').

classem:ParadataNodeGroup Paradata Node Group

URIhttps://w3id.org/em/ontology#ParadataNodeGroup
Subclass ofcrm:E89_Propositional_Object · em:NodeGroup
Superclass of—

Scope note

All the paradata of one stratigraphic unit gathered as a unit, by EM convention named '[US_name]_PD'. Distinct class so the paradata groups are findable by type rather than by naming convention. Maps to: Python ParadataNodeGroup (node_type='ParadataNodeGroup').

classem:UnknownNode Unknown Node

URIhttps://w3id.org/em/ontology#UnknownNode
Subclass ofcrm:E1_CRM_Entity
Superclass of—

Scope note

A node whose type the source could not determine — an anomaly in the data, not a modelling choice. Distinct from em:Node so that 'find the unrecognised units in this dataset' is a type query. Maps to: Python UnknownNode (node_type='unknown').

object propertyem:firstAttestedInEpoch first attested in epoch

URIhttps://w3id.org/em/ontology#firstAttestedInEpoch
Domaincrm:E77_Persistent_Item
Rangecrm:E4_Period
Subproperty ofcrm:P10_falls_within

Scope note

Documented shortcut: the unit was brought into existence (P92i, genesis event / SE node) during the epoch (event P10_falls_within epoch; crmarchaeo:AP25_occurs_during where an SE node is present). Declared subPropertyOf P10 on the unit's defining spacetime volume (P196). The subject is a unit, a document or a person: the three are spatiotemporal entities of the matrix (connections 1.6.38, domain widened from A8 in em.ttl 1.6.16). Maps to: connections_datamodel edge 'has_first_epoch'.

object propertyem:hasAuthor has author

URIhttps://w3id.org/em/ontology#hasAuthor
Domain—
Rangeem:Author
Subproperty ofprov:wasAttributedTo

Scope note

Domain-neutral authorship attribution (any graph entity to a human or AI author). Replaces the earlier P94_has_created reading (invalid domain/range for physical units) and L10_had_input (digital machine events, not authorship). Maps to: connections_datamodel edge 'has_author'.

object propertyem:hasVisualReference has visual reference

URIhttps://w3id.org/em/ontology#hasVisualReference
Domainem:Qualia
Rangecrm:E36_Visual_Item
Subproperty ofcrm:P138i_has_representation

Scope note

A property (em:Qualia, an asserted quale) is visually illustrated or anchored by a VISUAL RESOURCE — the resource-layer image node (a ResourceNode, E73 Information Object), not a source document. Revised 2026-08-05 (BUGFIX-CONN2): source narrowed to em:Qualia (was em:Paradata; only a property is illustrated), target moved from an E31 Document to the resource-layer image. The RDF exporter co-types the target ResourceNode as E36_Visual_Item, which is range-consistent because E36 is a subclass of E73 (the ResourceNode's base class). Distinct from em: extraction sourcing (P67/J7): a visual reference shows, an extraction source justifies. Maps to: connections_datamodel edge 'has_visual_reference' (source PropertyNode, target ResourceNode).

datatype propertyem:propagation propagation

URIhttps://w3id.org/em/ontology#propagation
Domainem:LocationNodeGroup
Range—
Subproperty of—

Scope note

How membership of this Location propagates to its members: 'additive' (the default — multiple memberships compose, none overrides) or 'substitutive'. Stated only when it is not the default. Maps to: Python LocationNodeGroup.propagation.

object propertyem:survivesInEpoch survives in epoch

URIhttps://w3id.org/em/ontology#survivesInEpoch
Domaincrm:E77_Persistent_Item
Rangecrm:E4_Period
Subproperty ofcrm:P132_spatiotemporally_overlaps_with

Scope note

The unit's spacetime volume (via P196_defines) overlaps the epoch's: survival through (part of) an epoch is overlap, not containment. Epoch attribution is an interpretive act; its justification travels in the epoch's and edge's paradata chain. The subject is a unit, a document or a person: the three are spatiotemporal entities of the matrix (connections 1.6.38, domain widened from A8 in em.ttl 1.6.16). Maps to: connections_datamodel edge 'survive_in_epoch'.

12. TERMS THE DATAMODELS CITE — declared here for the first time

classem:FunctionalUnit Functional Unit

URIhttps://w3id.org/em/ontology#FunctionalUnit
Subclass ofcrm:E24_Physical_Human-Made_Thing
Superclass of—

Scope note

The stratigraphic units that together make up one recognisable functional or architectural component — the column made of its US, the wall made of its US (DP-72). Physical, not curatorial: it takes E24 rather than the collection class its em:NodeGroup parent carries, because a component is a whole made of parts and not a set somebody assembled. It is likewise not an em:WorkingUnit (an activity axis: why something was done) — this answers what a set of units IS. Since 2026-09-21 it is also a bearer of the temporal index: has_first_epoch and survive_in_epoch both accept it, and the asymmetry with ActivityNodeGroup (which takes has_first_epoch and never survive_in_epoch) is the point — an activity is an event and does not survive, a thing persists. Maps to: Python FunctionalUnitNodeGroup (node_type='FunctionalUnitNodeGroup').

classem:GCPSet Ground Control Point Set

URIhttps://w3id.org/em/ontology#GCPSet
Subclass ofcrm:E73_Information_Object
Superclass of—

Scope note

The set of ground control points a registration was (or will be) solved from: a documented list of measured places and, for each, where it was observed. An information object that CARRIES places and measurements without being either — it is not an E53 Place and not a crmsci:S21 Measurement. Named in the EM extension because «the control points behind this registration» is the unit archaeologists actually hand each other, and CIDOC has nothing above E73 for it. The individual observations stay payload literals in this version; exploding each point into an S21 Measurement of an E53 Place is declared as a refinement, not implied. Maps to: Python GCPSetNode (node_type='gcp_set').

classem:Narrative Narrative

URIhttps://w3id.org/em/ontology#Narrative
Subclass ofcrm:E33_Linguistic_Object
Superclass of—

Scope note

A narrative over the EM graph: an ordered sequence of chapters, each anchored to a lane (epoch, activity, area) or standing outside the stratigraphy (introduction, geographic placement), composed of prose blocks and embed blocks. E33 because the narrative IS linguistic content about the heritage entity — and an E33 is already an E73 Information Object in CRM, so it is versionable, licensable and embargoable like the graph itself without a second assertion. The embeds are not content but references, and project as P67_refers_to. Endorsement is a separate act and a separate edge: see em:validatedBy. Maps to: Python NarrativeNode (node_type='narrative').

classem:NeutralSU Neutral Stratigraphic Unit (USNt)

URIhttps://w3id.org/em/ontology#NeutralSU
Subclass ofcrmarchaeo:A3_Stratigraphic_Interface
Superclass of—

Scope note

PROVISIONAL (datamodel extension_status: proposed_provisional — the class is declared so the IRI stops being undefined, NOT because the CIDOC placement is settled). A void that is part of the DESIGN and not the product of a destruction: the risparmi of masonry, a window or door opening, a niche, the empty volume of a room. The wall was built around it, so nothing was ever removed — which is what separates it from the negative unit, whose void is what a destructive act left behind. A3 Stratigraphic Interface is the better-informed placeholder; the genesis it wants is CONSTRUCTIVE (A4-flavoured), not the A5 destructive modification the negative unit takes. Consequence already enforced in the connections datamodel: USNt takes is_after / is_before and nothing else — a void cannot cut, fill, abut or bond. Maps to: Python NeutralStratigraphicUnit (stratigraphic subtype token 'USNt' since POL6, 2026-08-04).

classem:RegistrationTransform Registration Transform

URIhttps://w3id.org/em/ontology#RegistrationTransform
Subclass ofcrm:E73_Information_Object
Superclass of—

Scope note

The 7-parameter similarity (rotation, translation, positive scale) that places a produced model in a frame, carrying its own error bar (rms, residuals) beside the claim rather than in a log nobody keeps. It DESCRIBES a mapping between two crmgeo:SP4 spatial coordinate reference systems, which CIDOC and CRMgeo model individually but never as a parameterised map between two of them — hence E73 as the honest superclass. Deliberately NOT an event: the alternative, leaving the parameters as literals on the D7 acquisition, loses the ability to point at «the placement» as a thing that gets superseded, and being superseded is the whole reason the transform is a node. The three modes are the SHAPE of the graph, never a flag: a transform with a CRS that has_gcp_set points at = absolute; a transform with crs=null and no control set = a site-local frame; no transform at all = nobody placed it. Maps to: Python RegistrationTransformNode (node_type='registration_transform').

classem:RepresentationModelNodeGroup Representation Model Container

URIhttps://w3id.org/em/ontology#RepresentationModelNodeGroup
Subclass ofcrm:E73_Information_Object · em:NodeGroup
Superclass of—

Scope note

The representation models that form ONE named set published under a single Document — «Survey 2015» under D.01, «Reconstruction» under D.09 (EM16-RMNG, 2026-09-10). The one group subtype that does not override its parent class: a container of models is a conceptual set, not a physical thing and not an event. Membership is m:n — a model may belong to several containers (E.D., 23 Oct 2026; 1:1 before) — and the container sits BESIDE the direct Document→model edges, never in between. Maps to: Python RepresentationModelNodeGroup (node_type='RepresentationModelNodeGroup').

classem:ResourceFile Resource File

URIhttps://w3id.org/em/ontology#ResourceFile
Subclass ofcrmdig:D1_Digital_Object
Superclass of—

Scope note

ONE FILE of a resource: the resource (crm:E73_Information_Object) is the set a person stamps, cites and opens, the file is each of its members — an obj, its mtl, its textures. The resource reaches it with crm:P106_is_composed_of; the file's role (entry point or member) and its path relative to the entry point are data of that relation in the property graph and are not projected. With one file the file is implicit and not emitted: the resource's own url and checksum are that file. Maps to: Python ResourceFileNode (node_type='resource_file').

object propertyem:aiAssistedBy AI-assisted by

URIhttps://w3id.org/em/ontology#aiAssistedBy
Domaincrm:E1_CRM_Entity
Rangeem:AIAuthor
Subproperty ofprov:wasInfluencedBy

Scope note

HUMAN AUTHORSHIP WITH AI SUPPORT (E.D. 2026-09-29): a person made this with the help of a model. The author stays the person; this names the model that helped. Until em:validatedBy is also stated, the content is not verified by anyone, and a default export leaves it out (s3dgraphy.ai_validation). Maps to: data.ai_assisted.by of a node.

datatype propertyem:aiAssistedField AI-assisted field

URIhttps://w3id.org/em/ontology#aiAssistedField
Domaincrm:E1_CRM_Entity
Rangexsd:string
Subproperty of—

Scope note

A field the assistance touched, in the CRDT field vocabulary (name, description, data.<key>); absent means the whole node, and the value '*' states the assistance when nothing else about it is known. Maps to: data.ai_assisted.fields.

datatype propertyem:aiModel AI model

URIhttps://w3id.org/em/ontology#aiModel
Domaincrm:E1_CRM_Entity
Rangexsd:string
Subproperty of—

Scope note

The model string of the assistance, as the tool reported it. Maps to: data.ai_assisted.model.

object propertyem:aiPromptRef AI prompt

URIhttps://w3id.org/em/ontology#aiPromptRef
Domaincrm:E1_CRM_Entity
Range—
Subproperty of—

Scope note

The prompt behind the assistance (a PromptExtractor or prompt document): how the model came to propose it is a source like any other. Maps to: data.ai_assisted.prompt_ref.

object propertyem:belongsToAlternative belongs to alternative

URIhttps://w3id.org/em/ontology#belongsToAlternative
Domaincrm:E1_CRM_Entity
Rangeem:TimeBranch
Subproperty ofcrminf:J28i_is_referred_to_in

Scope note

An entity belongs to one alternative reconstruction scenario rather than another. UNLIKE em:contrastsWith and em:isInActivity this term HAS an honest ceiling: CRMinf does cover membership in a set of propositions (J28/J28i, and since 1.2 the I17 pattern with J30/J31/J32), so the extension NARROWS here instead of widening. What it adds beneath that ceiling is the identity of the scenario as an addressable thing, which the bare membership property does not carry: a reader must be able to ask which units belong to scenario B, not merely that they are referred to somewhere. Maps to: connections_datamodel edges is_in_timebranch (source StratigraphicNode, target TimeBranchNodeGroup) and the deprecated has_timebranch. Replaces the dead desideratum CIDOC-S3D:belongsToAlternative, which named the same thing under a prefix that resolved to nothing.

object propertyem:hasSemanticShape has semantic shape

URIhttps://w3id.org/em/ontology#hasSemanticShape
Domaincrm:E1_CRM_Entity
Rangeem:SemanticShape
Subproperty of—

Scope note

An entity is represented, for the purpose of spatial reasoning, by a simplified geometry that STANDS FOR it — a convex hull, a sphere, a proximity volume — as distinct from a geometry that measures it. The two answer different questions: a measured geometry says where the unit was found, a semantic shape says how it is to be reasoned about spatially when its true shape is unknown, irrelevant, or argued. NO SUPERPROPERTY: crmgeo places (SP5 and its neighbourhood) express a place expression, not a schematic stand-in, and since the proxy-as-property change of v1.6.10 the source of this relation includes a PropertyNode — a quale does not occupy a place, so a place-valued property would be false as well as imprecise. The CLASS is ours (em:SemanticShape, itself declared beneath crm:E73_Information_Object) because the stand-in is an information object and not a physical extent. Maps to: connections_datamodel edge has_semantic_shape (source Node, target SemanticShapeNode). Replaces the dead desideratum CIDOC-S3D:hasSymbolicSpatialRepresentation.

object propertyem:hasSubEpoch has sub-epoch

URIhttps://w3id.org/em/ontology#hasSubEpoch
Domaincrm:E4_Period
Rangecrm:E4_Period
Subproperty ofcrm:P10i_contains

Scope note

Splits an epoch into ordered sub-epochs (phases): the SUBJECT is the parent epoch, the OBJECT a phase, which is itself an epoch. Direction taken from the connections datamodel, which states it in words — «Source is the parent epoch, target a phase» — and from the edge's own name; the reverse edge is is_in_epoch. Phases partition the parent's time-span: when hidden the parent holds all the units, when shown the units are distributed across the phases. Its CRM superproperty is crm:P10i_contains (the parent contains the phase): the CRM projection of the edge is written the other way round, <phase> crm:P10_falls_within <parent>, since connections 1.6.49 (mapping.rdf_subject target, decided by E.D. 2026-10-25). Until 1.6.48 that triple went out source-first, <parent> P10 <phase>, the direction the repair report of 2026-09-21 had left to E.D.; the s3dgraphy RDF importer recognises such files and reads them the right way round. Maps to: connections_datamodel edge 'has_sub_epoch'.

object propertyem:isInActivity is in activity

URIhttps://w3id.org/em/ontology#isInActivity
Domaincrm:E1_CRM_Entity
Rangecrm:E7_Activity
Subproperty of—

Scope note

An entity of any kind — a stratigraphic unit, a quale, a document, an extractor, a whole paradata group — is CLASSIFIED UNDER an activity-shaped grouping. This is the axis of INTENTION in the Extended Matrix, orthogonal to space (is_in_location) and to time (the epoch edges), and it is a curatorial grouping and not an event anyone attended. NO SUPERPROPERTY, deliberately, and the reason is the whole justification for the term: CIDOC can say that an actor PARTICIPATED in an event (P11i), that a thing WAS PRESENT (P12i), that an object WAS USED (P16i) — but it cannot say that an arbitrary entity is classified under an activity. P12i would even pass the type check, because E28 Conceptual Object reaches E77 through E71/E70, but it would be false: a PropertyNode attended nothing. P9i needs an E4 Period in the subject and the sources here are not periods; P129i needs an E89 in the object and E7 Activity is not one. Verified against CIDOC CRM 7.1.3 and CRMarchaeo 2.1.1: CRMarchaeo has specific archaeological activities (A9, A1, A6) but no generic activity class and none of its 32 AP properties expresses membership in one. The CLASS is not ours — crm:E7_Activity is CIDOC core and ActivityNodeGroup stays mapped to it — only the property is. NAMED isInActivity and NOT participatedInActivity (the dead CIDOC-S3D desideratum it replaces), because participation is a claim this model does not make. Maps to: connections_datamodel edge 'is_in_activity' (sources StratigraphicNode/ParadataNode/ParadataNodeGroup/DocumentNode/ExtractorNode/CombinerNode/PropertyNode, target ActivityNodeGroup); mapping.cidoc stays EMPTY on purpose, and the exporter emits this property on its own.

datatype propertyem:validatedAt validated at

URIhttps://w3id.org/em/ontology#validatedAt
Domaincrm:E1_CRM_Entity
Rangexsd:dateTime
Subproperty of—

Scope note

When the person named by em:validatedBy verified the content (connections 1.6.25; s3dgraphy.ai_validation). Maps to: data.validated_at of a node, validated_at of a narrative block.

object propertyem:validatedBy validated by

URIhttps://w3id.org/em/ontology#validatedBy
Domaincrm:E1_CRM_Entity
Rangeem:HumanAuthor
Subproperty ofprov:wasInfluencedBy

Scope note

A HUMAN author endorses a piece of content: they have read it and put their name to it (EM Narrative N4, «Who Made This?»). Distinct from em:hasAuthor, and the distinction is the point: hasAuthor says who WROTE it, human or AI; validatedBy says who accepted RESPONSIBILITY for it. The range is em:HumanAuthor and never em:AIAuthor — a model endorsing a model would be a signature with nobody behind it. It is not a quality judgement and not a peer review. The absence of the property IS the unendorsed state, so a machine draft cannot claim an endorsement it never received. Superproperty and domain/range read off the connections datamodel (mapping.cidoc prov:wasInfluencedBy; source NarrativeNode, target AuthorNode). prov:wasInfluencedBy is the domain-neutral anchor because it is true and claims nothing more: endorsement has no exact term in CIDOC-CRM or PROV-O, and the datamodel records that an E13 Attribute Assignment reification is where this would change. Maps to: connections_datamodel edge 'validated_by'.

13. NODE ELEMENTS — CRMem v1.6.5 (2026-10-20)

object propertyem:hasDefinition has definition

URIhttps://w3id.org/em/ontology#hasDefinition
Domaincrmarchaeo:A8_Stratigraphic_Unit
Rangecrm:E55_Type
Subproperty ofcrm:P2_has_type

Scope note

The DEFINITION of a stratigraphic unit — strato di crollo, riempimento, taglio: the DEFINIZIONE box of the US sheet — as a concept of a controlled vocabulary (a SKOS concept, typed crm:E55_Type). It is a TYPE of the unit and nothing more, which is why it narrows crm:P2_has_type rather than widening anything: every em:hasDefinition triple IS a P2_has_type triple, and a CIDOC-only consumer reading the entailment loses nothing. What the subproperty adds is the ability to tell, in SPARQL, the definition from any other type a unit may carry. NOT EMITTED BY DEFAULT: the exporter writes crm:P2_has_type directly (node datamodel StratigraphicNode.properties.definition.rdf.with_concept), because an unreasoned store would otherwise not see the P2 edge at all; the switch is one line in that entry. A definition that carries only a label and no concept URI projects to nothing (rdf.label_only = null): a word is not a concept. Maps to: node_datamodel StratigraphicNode.properties.definition (em.json data.definition), inherited by every stratigraphic subtype.

14. THE LANGUAGE OF THE ORIGINAL, AND ITS TRANSLATIONS — CRMem v1.6.10

datatype propertyem:originalLanguage original language

URIhttps://w3id.org/em/ontology#originalLanguage
Domain—
Rangexsd:string
Subproperty of—

Scope note

The language the node's ORIGINAL texts are written in, as a BCP 47 tag ('la', 'it', 'und'). Written whenever the node itself declares one (em.json data.lang), equal to the study's working language or not, so a reader can tell the original literal from its translations — they share the predicate (dcterms:description "…"@la beside "…"@it) — and the round trip em.json → RDF → em.json gives data.lang back exactly where it was. NOT crm:P72_has_language: its domain is E33 Linguistic Object, and the node (a stratigraphic unit, a document) is not the text; the TranslationNode, which IS one, carries P72. Absent when the node declares nothing: its texts then take the study's language (dcterms:language on the graph), and saying 'original' would be a claim nobody made. Maps to: node_datamodel Node.properties.lang (em.json data.lang).

datatype propertyem:reviewRequested review requested

URIhttps://w3id.org/em/ontology#reviewRequested
Domain—
Rangexsd:boolean
Subproperty of—

Scope note

The author of a piece of content asks a person to review it («da rivedere»): true, or absent. Closed — not removed — by em:validatedBy / em:validatedAt, the same signature that clears AI-assisted content: the request stays written, and the signature says it was done and by whom. Introduced for translations made by hand; the field is generic. Maps to: node_datamodel TranslationNode.properties.review_requested (data.review_requested).

datatype propertyem:sourceDigest source digest

URIhttps://w3id.org/em/ontology#sourceDigest
Domaincrm:E33_Linguistic_Object
Rangexsd:string
Subproperty of—

Scope note

The digest of the original text a translation translated, 'sha256:<hex>' over the NFC, UTF-8 text. When the original changes the digests differ and the translation is 'to realign': it no longer translates what the node says, and the exporter stops writing its literal beside the original's (its own resource still leaves). Same form as em:checksum, which is a digest of bytes; this one is of a text. Maps to: node_datamodel TranslationNode.properties.source_digest (data.source_digest).

datatype propertyem:sourceLanguage source language

URIhttps://w3id.org/em/ontology#sourceLanguage
Domaincrm:E33_Linguistic_Object
Rangexsd:string
Subproperty of—

Scope note

The language a translation was made FROM: the original's language at the moment of translating, as a BCP 47 tag. Recorded on the translation and not read off the original later, because the original can change. crm:P72_has_language on the same node is the language it was translated INTO. Maps to: node_datamodel TranslationNode.properties.from_lang (data.from_lang).

datatype propertyem:translatedField translated field

URIhttps://w3id.org/em/ontology#translatedField
Domaincrm:E33_Linguistic_Object
Rangexsd:string
Subproperty of—

Scope note

WHICH text of the translated node this translation translates, in the field vocabulary of the em.json CRDT: 'description', or 'data.<key>' (a PropertyNode's value is 'data.value'). Needed because crm:P73_has_translation runs from the node, and a node can hold more than one text; never 'name', names being invariant identities. Maps to: node_datamodel TranslationNode.properties.field (data.field).

datatype propertyem:translationMethod translation method

URIhttps://w3id.org/em/ontology#translationMethod
Domaincrm:E33_Linguistic_Object
Rangexsd:string
Subproperty of—

Scope note

How a translation was made: 'manual' (a person), 'ai' (a model, and the node then carries em:aiAssistedBy until a person verifies it, em:validatedBy), or 'edition' (taken from a published translation, which the node reaches as a source). A closed list of three, a literal until a vocabulary of translation methods exists to point at. Maps to: node_datamodel TranslationNode.properties.method (data.method).

15. Several addresses of one resource (v1.6.11, dev27, decided by E.D.

datatype propertyem:checkedAt checked at

URIhttps://w3id.org/em/ontology#checkedAt
Domain—
Rangexsd:dateTime
Subproperty of—

Scope note

When an address was last checked; em:reachable says what was found. Absent: never checked, which is not the same as reachable. Maps to: node_datamodel ResourceNode.properties.addresses.checked_at.

datatype propertyem:checksumAt checksum at

URIhttps://w3id.org/em/ontology#checksumAt
Domain—
Rangexsd:dateTime
Subproperty of—

Scope note

The instant a DATED digest was taken: a page online without saved bytes has no em:checksum until somebody downloads it, and then the digest is of that day's bytes, because a page changes. Maps to: node_datamodel ResourceNode.properties.checksum_at.

object propertyem:hasAddress has address

URIhttps://w3id.org/em/ontology#hasAddress
Domaincrm:E73_Information_Object
Range—
Subproperty of—

Scope note

One of the places where the SAME bytes of a resource can be fetched — the same digest on the disk, in the S3 store, on Zenodo: identical copies are one resource with several addresses, and losing one address does not lose the resource. The object is a derived IRI <resource>/address/<i>, number 0 being the resource's url; every locator is also an rdfs:seeAlso of the resource, so a reader that knows nothing of EM finds every copy. Different manifestations are not addresses but sister resources. Maps to: node_datamodel ResourceNode.properties.addresses (data.addresses).

datatype propertyem:locator locator

URIhttps://w3id.org/em/ontology#locator
Domain—
Rangexsd:string
Subproperty of—

Scope note

Where an address points: a path relative to the project, an s3:// or http(s):// URL. A literal, because a relative path is not an IRI. Maps to: node_datamodel ResourceNode.properties.addresses.locator.

datatype propertyem:reachable reachable

URIhttps://w3id.org/em/ontology#reachable
Domain—
Rangexsd:boolean
Subproperty of—

Scope note

Whether an address answered at em:checkedAt. false is a dated fact, not a removal: the address stays, and the resource stays while another address is alive. Maps to: node_datamodel ResourceNode.properties.addresses.ok.

16. How the hand of a signature had entered (v1.6.11, dev27, decided by E.D.

datatype propertyem:attestedBy attested by

URIhttps://w3id.org/em/ontology#attestedBy
Domain—
Rangexsd:string
Subproperty of—

Scope note

The name of the StratiGraph node that attested an identity entered with the node's password (em:authMode 'node_password'). Maps to: node_datamodel Node.properties.created_auth.attested_by.

datatype propertyem:authMode access mode

URIhttps://w3id.org/em/ontology#authMode
Domain—
Rangexsd:string
Subproperty of—

Scope note

'orcid' — the identity was verified by ORCID at that moment; 'node_password' — the iD and a password of a StratiGraph node, which attests the identity while offline (the iD was verified by ORCID once, at the accreditation); 'declared' (dev28) — an iD typed in a tool's preferences and checked by nobody (EMStudio's declared identity, EM Tools' local identity). A closed list of three. Maps to: node_datamodel Node.properties.created_auth.mode (and modified_auth / validated_auth).

object propertyem:createdVia created via

URIhttps://w3id.org/em/ontology#createdVia
Domain—
Range—
Subproperty of—

Scope note

How the hand that created the node (em:createdBy) had entered: the object <node>/auth/created carries em:authMode and, for a node's password, em:attestedBy. A signature made offline on the field, attested by a StratiGraph node, stays valid when the network comes back, and says how it was born. Maps to: node_datamodel Node.properties.created_auth (data.created_auth).

object propertyem:modifiedVia modified via

URIhttps://w3id.org/em/ontology#modifiedVia
Domain—
Range—
Subproperty of—

Scope note

How the last hand (em:lastEditedBy) had entered; see em:createdVia. Maps to: node_datamodel Node.properties.modified_auth.

object propertyem:validatedVia validated via

URIhttps://w3id.org/em/ontology#validatedVia
Domain—
Range—
Subproperty of—

Scope note

How the person who verified the node (em:validatedBy) had entered; see em:createdVia. Maps to: node_datamodel Node.properties.validated_auth.

17. How the bytes are packed, and what a step declares (v1.6.13, dev29,

datatype propertyem:contentDigest content digest

URIhttps://w3id.org/em/ontology#contentDigest
Domain—
Rangexsd:string
Subproperty of—

Scope note

The digest of the CONTENT of a tree, 'sha256:<hex>' of the canonical list of its members: the same for a folder and for the same folder packed in a .3tz, which em:checksum (of the container's bytes) cannot be. Maps to: node_datamodel ResourceNode.properties.content_digest.

datatype propertyem:digestCovers digest covers

URIhttps://w3id.org/em/ontology#digestCovers
Domain—
Rangexsd:string
Subproperty of—

Scope note

What em:checksum is the digest OF: 'artifact' (the bytes as they came out of the process), 'payload' (the content without an embedded stamp), 'members' (the canonical list of the members of a file_set — role, path and digest of each — not the bytes of any one file). Without it a reader takes the digest of a list for the digest of a file. Maps to: node_datamodel ResourceNode.properties.digest_covers.

datatype propertyem:packaging packaging

URIhttps://w3id.org/em/ontology#packaging
Domain—
Rangexsd:string
Subproperty of—

Scope note

How the bytes of a resource are packed: 'file', 'file_set' (an entry point and the files it calls), 'directory', 'archive', 'datablock' — the vocabulary of the stamp format (dtcstamp PACKAGINGS). DECLARED, emitted only when recorded: a reader's fallback is never written as a fact. Maps to: node_datamodel ResourceNode.properties.packaging.

datatype propertyem:parameters parameters

URIhttps://w3id.org/em/ontology#parameters
Domain—
Rangerdf:JSON
Subproperty of—

Scope note

How the technique of a DTC step was applied, as ONE rdf:JSON object: the stamp format owns its shape, and RDF carries it back unchanged. Maps to: node_datamodel DTCProcessNode.properties.parameters.

datatype propertyem:software software

URIhttps://w3id.org/em/ontology#software
Domain—
Rangerdf:JSON
Subproperty of—

Scope note

The software of a DTC step, as ONE rdf:JSON list of {name, version, commit?}: a real chain names two (the tool and the library), and the commit says which build. Maps to: node_datamodel DTCProcessNode.properties.software.

datatype propertyem:technique technique

URIhttps://w3id.org/em/ontology#technique
Domain—
Rangexsd:string
Subproperty of—

Scope note

The free word of whoever did a DTC step ('allineamento', 'quadric edge collapse'), beside the controlled kind it leaves with as crm:P2_has_type. Two granularities, two fields. Maps to: node_datamodel DTCProcessNode.properties.technique.

datatype propertyem:tier tier

URIhttps://w3id.org/em/ontology#tier
Domain—
Rangexsd:string
Subproperty of—

Scope note

Which tier a resource is — 'master' (the source a person keeps) or 'distribution' (what is handed out). Declared, emitted only when recorded. Maps to: node_datamodel ResourceNode.properties.tier.

18. Where a retrieval came from, and the digest of a set (v1.6.14, dev30,

datatype propertyem:membersDigest members digest

URIhttps://w3id.org/em/ontology#membersDigest
Domain—
Rangexsd:string
Subproperty of—

Scope note

The digest of a file_set, 'sha256:<hex>' of the canonical list of its members (role, path and digest of each) — the identity of the set, not the bytes of any one file; it is checked against the files with dtcstamp.verify_members, never by hashing one file. The same value em:checksum carries beside em:digestCovers 'members', given a predicate of its own so a reader need not read two triples together; em:digestCovers stays for compatibility. Maps to: node_datamodel ResourceNode.properties.members_digest.

datatype propertyem:retrievedFrom retrieved from

URIhttps://w3id.org/em/ontology#retrievedFrom
Domain—
Range—
Subproperty of—

Scope note

Where a retrieved digital object came from: the DOI (as https://doi.org/…) or the URL of a Download — the stamp format's how.acquisition.retrieved_from. A literal, an xsd:anyURI when it is a URL: an origin is an address the act was made from, not a parent with an identity, so it is not a prov:used. Optional: an event that does not say it is warned about, never refused. Maps to: node_datamodel DTCAcquisitionNode.properties.retrieved_from.

19. The level, the uses and the measures of a version of an asset (v1.6.15,

datatype propertyem:geometricErrorM geometric error (m)

URIhttps://w3id.org/em/ontology#geometricErrorM
Domain—
Rangexsd:double
Subproperty of—

Scope note

For a 3D Tiles tileset: its geometricError in metres. Maps to: node_datamodel ResourceNode.properties.geometric_error_m.

datatype propertyem:lodLevel LOD level

URIhttps://w3id.org/em/ontology#lodLevel
Domain—
Rangexsd:string
Subproperty of—

Scope note

The level of a VERSION of an asset — lod0 (the first version derived from the master that one can work on), lod1…lodN (lod_generation steps from LOD0). An ordinal INSIDE ONE derivation chain: computed from the chain, written when the graph leaves, compared with the chain when it comes back. The master (em:tier 'master') has none. Maps to: node_datamodel ResourceNode.properties.lod_level.

datatype propertyem:reductionFromLod0 reduction from LOD0

URIhttps://w3id.org/em/ontology#reductionFromLod0
Domain—
Rangexsd:double
Subproperty of—

Scope note

Triangles of this version divided by those of LOD0 (3DSC's «magnitude»). Maps to: node_datamodel ResourceNode.properties.reduction_from_lod0.

datatype propertyem:texelDensityDD texel density (Demetrescu-D'Annibale)

URIhttps://w3id.org/em/ontology#texelDensityDD
Domain—
Rangexsd:double
Subproperty of—

Scope note

The side of a texel in millimetres, in the form of the Demetrescu-D'Annibale formula (Demetrescu et al. 2026, Remote Sensing 18, 203, Eq. 1; reference 1.26). Maps to: node_datamodel ResourceNode.properties.texel_density_dd.

datatype propertyem:textureCount texture count

URIhttps://w3id.org/em/ontology#textureCount
Domain—
Rangexsd:nonNegativeInteger
Subproperty of—

Scope note

How many texture atlases a version has. Maps to: node_datamodel ResourceNode.properties.texture_count.

datatype propertyem:textureSidePx texture side (px)

URIhttps://w3id.org/em/ontology#textureSidePx
Domain—
Rangexsd:nonNegativeInteger
Subproperty of—

Scope note

The side of a texture atlas of a version, in pixels. Maps to: node_datamodel ResourceNode.properties.texture_side_px.

datatype propertyem:trisPerM2 triangles per square metre

URIhttps://w3id.org/em/ontology#trisPerM2
Domain—
Rangexsd:double
Subproperty of—

Scope note

Triangles per square metre of surface of a version: a measure, with no target. Maps to: node_datamodel ResourceNode.properties.tris_per_m2.

datatype propertyem:use use

URIhttps://w3id.org/em/ontology#use
Domain—
Rangexsd:string
Subproperty of—

Scope note

What a version of an asset is FOR, one triple per use: analysis, realtime, web, mobile_ar, print, render, preview, heriverse, aton (the last two since node datamodel 1.6.26: a version made for a viewer, the package on disk Heriverse or another ATON app opens; correspondences with Smithsonian Voyager and 3D Tiles in the datamodel's note). Maps to: node_datamodel ResourceNode.properties.use.

datatype propertyem:uvRatio UV ratio

URIhttps://w3id.org/em/ontology#uvRatio
Domain—
Rangexsd:double
Subproperty of—

Scope note

The share of the atlas filled by the UV islands (0.6 in the reference). Maps to: node_datamodel ResourceNode.properties.uv_ratio.

20. The transformation of a 3D object (node datamodel 1.6.31, properties.transform;

datatype propertyem:pivot pivot

URIhttps://w3id.org/em/ontology#pivot
Domainn2389a00d446d4026aa5d2e597ce19d22b16
Rangerdf:JSON
Subproperty of—

Scope note

The point rotations and scales of a 3D object turn about, in its own frame: a JSON array of three numbers, metres. Absent: the centre of the object's bounding box. Maps to: node_datamodel RepresentationModelNode.properties.transform.pivot.

datatype propertyem:position position

URIhttps://w3id.org/em/ontology#position
Domainn2389a00d446d4026aa5d2e597ce19d22b1
Rangerdf:JSON
Subproperty of—

Scope note

The translation of a 3D object in the frame of the study: a JSON array of three numbers, metres. Maps to: node_datamodel RepresentationModelNode.properties.transform.position.

datatype propertyem:rotationDegrees rotation (degrees)

URIhttps://w3id.org/em/ontology#rotationDegrees
Domainn2389a00d446d4026aa5d2e597ce19d22b4
Rangerdf:JSON
Subproperty of—

Scope note

The Euler angles of a 3D object about X, Y and Z: a JSON array of three numbers in DEGREES, applied in the order em:rotationOrder says. Maps to: node_datamodel RepresentationModelNode.properties.transform.rotation.

datatype propertyem:rotationOrder rotation order

URIhttps://w3id.org/em/ontology#rotationOrder
Domainn2389a00d446d4026aa5d2e597ce19d22b7
Rangexsd:string
Subproperty of—

Scope note

The order of the Euler angles, as Blender writes it: XYZ (default), XZY, YXZ, YZX, ZXY or ZYX — the first axis turns first, about the fixed axes (XYZ: R = Rz·Ry·Rx). Maps to: node_datamodel RepresentationModelNode.properties.transform.rotation_order.

datatype propertyem:scale scale

URIhttps://w3id.org/em/ontology#scale
Domainn2389a00d446d4026aa5d2e597ce19d22b10
Rangerdf:JSON
Subproperty of—

Scope note

The scale factors of a 3D object along X, Y and Z: a JSON array of three numbers. Maps to: node_datamodel RepresentationModelNode.properties.transform.scale.

datatype propertyem:upAxis up axis

URIhttps://w3id.org/em/ontology#upAxis
Domainn2389a00d446d4026aa5d2e597ce19d22b13
Rangexsd:string
Subproperty of—

Scope note

The axis that points up in the frame of the transformation: Z (default, as Blender and the survey data) or Y. Maps to: node_datamodel RepresentationModelNode.properties.transform.up_axis.