The QAECY Ontology defines the terminology used by QAECY and the Cue Agent to provide meaningful insights in Architecture, Engineering and Construction projects. The core concepts File, FileContent, Fragment and NamedEntity are core to our understanding of the document landscape around any built asset or projects in general. Some concepts are strongly coupled with other well-defined concepts in broadly adopted ontologies and we have a strong focus on establishing a knowledge graph that can be easily translated to BOT, Brick, REC etc.
The QAECY Ontology
A BIM entity is a special kind of entity mention. It's an intangible (zone) or tangible (element) part of a BIM model.
BIM Entity
This special fragment constitutes a CAD layout. It should be specified with a selector (qcy:CADLayoutSelector) relative to its parent fragment and the extracted layout's location should be specified.
CAD Layout Fragment
A CAD layout selector specifies the name of a layout in a CAD file. It should be used to connect a qcy:FileContent object representing a CAD file with a qcy:Fragment representing the layout. The value is the name of the layout as specified in the CAD file and corresponds to the block parameter used when extracting an image of the CAD layout using QCAD.
CAD Layout Selector
This special fragment constitutes a CAD viewport. It should be specified with a selector (qcy:CADViewportSelector) relative to its parent fragment and the extracted viewport's location should be specified.
CAD Viewport Fragment
A CAD viewport selector specifies the location of a viewport in a CAD layout. It should be used to connect a qcy:FileContent object representing a CAD layout with a qcy:Fragment representing the viewport. The value is the XYWH coordinates of the viewport within the cartesian coordinate system of the CAD layout (Y axis pointing upwards) normalised to mm. The value corresponds to the window parameter (-w) that is fed to QCAD when extracting an image of the CAD layout and is always.
CAD Viewport Selector
These are standardized representations of named entities that are the output of an enrichment step in the QAECY pipelines. The entity resolution should include relevant contextual information to distinguish between unique named entities. For example, there can be a ground floor in two buildings but they are not the same concept.
Canonical Entity
Abstract class for specific categories that each hold enumerations used for specification of information objects and entity references. It is recommended to use SKOS to establish more context between the Category entities.
Category
Category derived from the content of the file
Content Category
A coordinate translator specifies the parameters needed to translate coordinates from one coordinate system to another. This is used to connect a qcy:Fragment representing a CAD layout with a qcy:Fragment representing an image of that layout, to enable translation of the viewport coordinates in the CAD layout to XYWH coordinates in the image. The value is formatted as an SVG transformation matrix (eg. matrix(56.69, 0, 0, -56.69, 110.07, 257.10))
Coordinate Translator
This special fragment constitutes a page in a paginated document.
Document Page Fragment
Category that specifies the categories of an entity reference
Entity Category
An entity mention is an occurrence of a specific entity within a qcy:InformationObject. Each occurrence is unique, meaning that two mentions of "Albert Einstein" in the same information object are considered two distinct entity mentions. Entity mentions can describe mentionings of persons, organizations, locations, dates, and other proper nouns.
Entity Mention
This abstract class captures reference points for all features of interest in a project, such as a building element, a zone, a person, or material. These references can be either explicit or potential occurrences of the entity. This class should not be assigned directly; instead, use the sub-class qcy:EntityMention for potential occurrences of an entity and qcy:CanonicalEntity for a formalized entity.
Entity Reference
A file content object represents the full content of a qcy:File. It is uniquely identified by its content, meaning that any modification, even a single character change, results in a new file content object. This ensures that each file content object is immutable and uniquely identifiable. Additionally, a single file content object can be referenced by multiple qcy:File instances, which may be stored in different locations, either locally or in the cloud.
File Content
A file location is a digital representation of an information object that is stored on a hard drive, either locally or in the cloud.
File Location
A fragment is a subset of a qcy:FileContent object. Each fragment can have sub-fragments in any arbitrary depth (see qcy:containsFragment). For example, a page is a fragment of a document and a text paragraph, image, and table can all be sub-fragments of that page.
Fragment
The value specifies an identifier within a structured document, such as an XML or JSON file. For BIM models use one of the more specific ID selectors for the specific kind of ID. The ID Selector is typically used to identify the location of a qcy:EntityMention by its unique ID.
ID Selector
The value of an IFC Express ID Selector specifies the ExpressId of the object within the IFC document. Beware that this ID is only unique in context of that single serailization of the model and is likely to change in future versions of the model.
IFC Express ID Selector
The value of an IFC Global ID Selector specifies the GlobalId of the object within the IFC document.
IFC Global ID Selector
This special fragment constitutes an image. It should be specified with a selector (qcy:XYWHSelector) relative to its parent fragment and the extracted image's location should be specified.
Image Fragment
An information object is an abstract class that captures all information found in project files. It can either be the full content of the file (see qcy:FileContent) or a subset (see qcy:Fragment). This abstract class should not be defined explicitly, so instead use one of the more specific sub-classes.
Information Object
Category derived from the mimetype of the file content
Mime Category
A page selector specifies a particular page within a document. This special selector always always connects a qcy:FileContent object with a qcy:DocumentPage. The value is the page number starting from 1.
Page Selector
Any quantitative or qualitative property of an entity.
Property
Category that specifies the type of provider
Provider Type
Category that specifies the role or type of a relationship described by a qcy:RelationMeta node. Instances are SKOS concepts that qualify top-level relationships such as qcy:involves (e.g. Author, Reviewer).
Relation Category
A reification node that further qualifies a relationship between two entities. It specifies the subject and object together with a qcy:RelationCategory and optionally the predicate being qualified via qcy:hasRelationMetaProperty. It can qualify any sub-property of qcy:relatedEntity (e.g. qcy:involves, qcy:contains, qcy:leadsTo). This is used when the top-level property alone is insufficient to express the full semantics (e.g. to distinguish that John is the author of drawing A but the reviewer of drawing B).
Relation Meta
A selector specifies where in a qcy:InformationObject a qcy:EntityMention occurs. For example from/to what index in a text paragraph, what XYWH bounding box on a page or what GlobalId in an IFC file.
Selector
This special fragment constitutes a table with rows and columns. It should specified with a selector (qcy:XYWHSelector) relative to its parent fragment and the qcy:tableGrid should be specified.
Table Fragment
A text directive selector specifies a range within a text using the syntax \"#:~:text=[prefix-,]start[,end][,-suffix]\". For example, \"#:~:text=example,fragment\" would indicate a range from the first occurrence of \"example\" to the next occurrence of \"fragment\". This is used to identify the exact location of a qcy:EntityMention within a text fragment.
Text Directive Selector
This special fragment constitutes a text extraction. It can be the full text of a page a paragraph, footer, header or the like. Except for the former case, it should specified with a selector (qcy:XYWHSelector) to describe it's location relative to its parent fragment. It should also specify a qcy:textRaw and optionally a qcy:textFormatted.
Text Fragment
<parentUUID><selectorUUID>
A text index selector specifies a range within a text using start and end separated by a comma (\"start,end\"). For example \"6,11\" on the text string \"Hello World\" would specify the subset \"World\". This is similar to string slicing in Python and is used to identify the exact location of a qcy:EntityMention within a text fragment.
Text Index Selector
The value specifies the time range formatted in accordance with http://www.w3.org/TR/media-frags/
Time Range Selector
The value specifies the bounding box formatted as an xywh box (http://www.w3.org/TR/media-frags/) either in absolute pixels or relative to the information object. The XYWH Selector is used to identify the location of a qcy:EntityMention or qcy:InformationObject within a visual document.
XYWH Selector
Relationship between a qcy:InformationObject and a qcy:CanonicalEntity. This property indicates that a file content or fragment is about a specific canonical entity. It can be implicitly derived that if a file content or fragment mentions the occurrence of a named entity, and that named entity resolves to a canonical entity, then the file content or fragment is about the canonical entity.
about
Relationship that specifies the date that an activity ends.
activity has end date
Relationship that specifies the date that an activity begins.
activity has start date
Relationship between two fragments that are adjacent within the shared parent information object.
adjacent fragment
Relationship between two information objects where one is an alternative representation of the other. For example an image derived from a PDF page fragment or a CAD drawing.
alternative representation
Relationship between a qcy:EntityCategory or a qcy:relatedEntity sub-property and one or more qcy:ContentCategory. This property is used to specify the entities that will be represented based on the type of the content.
applicable content categories
Relationship between a qcy:relatedEntity sub-property and one or more qcy:EntityCategory. This property is used to specify the categories that are applicable to the object of the relationship.
applicable object categories
Relationship between a qcy:relatedEntity sub-property and one or more qcy:EntityCategory. This property is used to specify the categories that are applicable to the subject of the relationship.
applicable subject categories
Relationship that describes strong or loose associations between entities.
associated with
An entity is associated with another entity.
Relationship that specifies that a person or organization is an author of the entity.
author
A 'Person' or 'Organization' is an author of the entity.
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that indicates that a building contains a floor.
building contains storey
A property specifying the prompt used to classify a certain type of document by an LLM.
classification prompt
A numerical score, typically between 0.0 and 1.0, representing the level of certainty or belief in an assertion, a piece of data, or a relationship. For example, the confidence that an entity mention resolves to a particular canonical entity, or the confidence in the derived properties of a canonical entity.
confidence
Top level relationship that indicates that an entity is part of a larger thing.
contains
Relationship between a qcy:InformationObject and one of its qcy:Fragments
contains fragment
DEPRECATED: This property is outdated. Please use qcy:involves instead. A jurisdiction that governs the contract.
contract governed by jurisdiction
A 'Contract' is governed by a certain 'Jurisdiction'.
Relationship that specifies the date that a contract is terminated.
contract has end date
Relationship that specifies the signature date of a contract.
contract has signature date
A 'Contract' has a 'Date' that it was signed.
Relationship that specifies the date that a contract becomes effective.
contract has start date
A 'Contract' has a 'Date' that it becomes effective.
DEPRECATED: This property is outdated. Please use qcy:involves instead. A person or organization is a part of the contract agreement.
contract involves party
A certain party ('Person' or 'Organization') is legally a part of a 'Contract'.
DEPRECATED: This property is outdated. Please use qcy:involves instead. A built asset is a part of the contract agreement.
contract mentions built asset
A 'Contract' involves a certain 'BuiltAsset'.
DEPRECATED: This property is outdated. Please use qcy:contains instead. The contract involves a certain obligation.
contract states obligation
A 'Contract' states a certain 'ContractObligation'.
The date and time when the resource was created. This is typically the time when the resource was first stored in the database or in the source system.
date created
The date and time when the resource was deleted. This is typically the time when the resource was removed from the database or in the source system.
date deleted
The date and time when the resource was last modified. This is typically the time when the resource was last updated in the database or in the source system.
date modified
DEPRECATED: This property is outdated. Please use qcy:reviewer instead. Relationship that specifies the entity that approved a drawing entity or drawing sheet.
drawing approved by
A 'DrawingSheet' or a 'DrawingEntity' was approved by a 'Person' or an 'Organization'.
DEPRECATED: This property is outdated. Please use qcy:author instead. Relationship that specifies the creator of a drawing entity or drawing sheet.
drawing created by
A 'DrawingSheet' or a 'DrawingEntity' was created by a 'Person' or an 'Organization'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that specifies the date that a drawing was approved.
drawing has approval date
A 'DrawingSheet' or a 'DrawingEntity' was approved on a 'Date'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that specifies the date that a drawing was created.
drawing has creation date
A 'DrawingSheet' or a 'DrawingEntity' was created on a 'Date'.
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship that states that the drawing contains a reference to a file.
drawing has file references
The 'DrawingSheet' or a 'DrawingEntity' contains a reference to a 'FileReference'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that specifies the orientation of a drawing entity.
drawing has orientation
A 'DrawingEntity' has this 'DrawingOrientation'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that specifies the scale of a drawing entity or a drawing sheet.
drawing has scale
A 'DrawingSheet' or a 'DrawingEntity' is designed in this 'DrawingScale'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship between a building element and a material.
element has material
A 'BuildingElement' is made of some 'Material'.
The number of times enrichment has been attempted for this canonical entity. Used to limit retry attempts for enrichment processes (e.g., geocoding addresses). After a maximum number of attempts, the entity is no longer considered for enrichment.
enrichment attempt count
A boolean property specifying that something is explicit. It is specifically used to indicate that a qcy:CanonicalEntity has been confirmed by an authorized project practitioner or other specialist.
explicit
Top level relationship that expresses a characteristic or quality of an entity (eg. a drawing is expressed by its scale, orientation etc.).
expressed by
An entity is expressed by another entity.
A property specifying the prompt used to extract a certain kind of entity or relation by an LLM.
extraction prompt
The file path property specifies the location of a file on a storage system. This is always a relative path in relation to the project directory on a cloud storage provider.
file path
DEPRECATED: This property is outdated. Please use qcy:involves instead. Relationship between an agent (Person, Organization) and an Activity.
has activity agent
An 'Activity' is carried out by a 'Person' or 'Organization'.
Relationship that specifies the discipline associated with a drawing entity or a drawing sheet.
has associated discipline
A 'DrawingSheet' or a 'DrawingEntity' is associated with a 'Discipline'.
Abstract property that connects something with its categories. Use one of the more specific sub-properties to assign categories.
has category
Relationship between a qcy:InformationObject (typically a whole document or a page in a document) and its qcy:ContentCategory derived from its content.
has content category
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship stating that a person or organization has a role in the contract.
has contract role
A 'Person' or 'Organization' undertakes a specific 'ContractRole' in the context of the 'Contract'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that links design metadata to a drawing sheet or drawing entity.
has design metadata
A 'DrawingSheet' or a 'DrawingEntity' is annotated with 'DesignMetadata'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship that specifies the duration of an activity.
has duration
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship that states that an email address belongs to a person or an organization.
has email address
A 'Person' or an 'Organization' has an 'EmailAddress'.
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship that specifies the receiving email address of an email file.
has email receiver
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship that specifies the sending email address of an email file.
has email sender
Relationship between a qcy:EntityReference and one or more qcy:EntityCategory.
has entity category
Relationship between a qcy:InformationObject and one of its qcy:FileLocation(s). All qcy:FileContent instances have at least one location and other information objects such as a qcy:ImageFragment also have a file location
has file location
Relationship indicating that a Canonical Entity was originally established or founded based on this specific Entity Mention. This property highlights the mentions that were primary and instrumental in the initial creation or identification of the canonical entity's concept.
has founding mention
Relationship between a qcy:CanonicalEntity and its geometric representation (for example the SVG polygon org glTF of a BIM object).
has geometry
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship that states that an entity has a physical location.
has location
A 'Person', 'Organization', 'BuiltAsset' or 'ProjectId' has a certain 'Location'.
Relationship between a qcy:FileContent object and its qcy:MimeCategory derived from its mimetype.
has mime category
Relationship between a qcy:EntityMention or qcy:CanonicalEntity and one of its qcy:Properties.
has property
Relationship between a qcy:RelationMeta node and its qcy:RelationCategory, specifying the role or type of the qualified relationship.
has relation category
Relationship between a qcy:RelationMeta node and the object entity of the qualified relationship.
has relation meta object
Relationship between a qcy:RelationMeta node and the sub-property of qcy:relatedEntity that it qualifies (e.g. qcy:involves, qcy:contains, qcy:leadsTo). If omitted, the one that connects the subject/object of the qualified relationship is assumed.
has relation meta property
Relationship between a qcy:RelationMeta node and the subject entity of the qualified relationship.
has relation meta subject
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship between an element and a sub-element. For example a fan in an air handling unit.
has sub-element
The name of the Property Set in the IFC file. Official PSets are considered higher quality and SHACL shapes can be applied to evaluate the BIM model quality.
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that specifies that an activity is part of a schedule / project-plan.
includes activity
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that states that the drawing entity includes a building zone or a building element.
includes building entity
The 'DrawingEntity' includes a 'BuildingZone' or 'BuildingElement'.
Text value that provides more information about what type of fragment. Typically inferred by libraries like Unstructured.
inferred fragment type
Relationship between an interface and the entities (minimum 2) it is an interface of.
interface of
Top level relationship that indicates that an entity involves another entity. It expresses a participation or engagement in some activity or process.
involves
DEPRECATED: This property is outdated. Please use qcy:involves instead. Relationship between an activity and a building entity (zone or element).
involves building entity
An 'Activity' involves a certain 'BuildingZone' or 'BuildingElement'.
DEPRECATED: This property is outdated. Please use qcy:expressedBy instead. Relationship between an activity and a cost.
involves cost
An 'Activity' involves a certain 'Cost Item'.
DEPRECATED: This property is outdated. Please use qcy:involves instead. Relationship between an activity and a discipline.
involves discipline
An 'Activity' involves a certain 'Discipline'.
The IRI pattern is what is fed to the contextBasedIRI function described in pseudo code. For example "<parentUUID>_g" which for t parent UUID "d1d55833-bc18-443f-959d-b692c696c29a" would translate to "d1d55833-bc18-443f-959d-b692c696c29a_g" which would ultimately result in the final QAECY UUID <e162fc83-71fb-5085-a201-650e131a3b9c>.
IRI pattern
A label is a human-readable name for the resource. Each resource should have only one preferred label in english that specifies the resource.
label
ISO 639 two letter language code
language
Top level relationship that indicates that an entity leads to another entity. It expresses a sequential or causal dependency between two entities.
leads to
The 32 character MD5 hash in lower case hexadecimals (empty string = d41d8cd98f00b204e9800998ecf8427e)
MD5 hash
The 24 character MD5 hash in Base64 encoding (empty string = 1B2M2Y8AsgTpgAmY7PhCfg==)
MD5 hash Base 64
Relationship between a qcy:InformationObject/qcy:FileLocation and a qcy:EntityMention. This property indicates that a file location, file content or fragment mentions a specific named entity. This relationship can implicitly be derived from the subject/object pair of a qcy:Selector. For file locations it is typically resolved by regex mapping of a schema against the file path.
mentions
The mimetype of the file content preferably in accordance with IANA but also commonly used mimetypes in the AEC industry are accepted (eg. application/x-step for an IFC in STEP format)
mime
A condition associated with a contract obligation.
contract obligation has contract condition
A 'ContractObligation' involves a certain 'ContractCondition'.
obligation has end date
A 'ContractObligation' has a 'Date' that it expires.
DEPRECATED: This property is outdated. Please use qcy:involves instead. The obligation is undertaken by a certain party.
obligation has responsible party
A 'ContractObligation' states a 'Person' or 'Organization' as a responible party.
The start date of a contract obligation.
obligation has start date
A 'ContractObligation' has a 'Date' that it becomes effective.
Is the file content readable without proprietary software tools?
open format
Relationship between a parent fragment (eg a title) and a child fragment (eg a paragraph).
parent fragment
DEPRECATED: This property is outdated. Please use qcy:leadsTo instead. Relationship between an activity and a preceding activity.
precedes activity
An 'Activity' precedes another 'Activity' (usually by forming a dependency).
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that states that the construction project has a project phase.
project has phase
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that states that the construction project has a project plan assigned to it.
project has schedule
A textual explanation or justification supporting an assertion, a piece of data, a derived value, or a relationship. This can include the evidence, logic, or process used to arrive at a conclusion or to assign a confidence score.
reasoning
A regular expression (regex) is a sequence of characters that defines a search pattern. This pattern is used by string searching algorithms for "find" or "find and replace" operations on strings. Often used to annotate the QAECY schemas.
regex
Relationship between either a pair of qcy:EntityMention or qcy:CanonicalEntity occurrences (never between a qcy:EntityMention and a qcy:CanonicalEntity!). This is a general property that should not be used explicitly. Instead, use one of the more specific sub-properties.
related entity
Relationship between a qcy:Category and one or more formal classes in external ontologies (Ex: qcy-e:Space qcy:relatedFormalClass bot:Space).
related formal class
Relationship between a qcy:relatedEntity sub-property and one or more formal properties in external ontologies (Ex: qcy:buildingContainsStorey qcy:relatedFormalClass bot:hasStorey).
related formal property
A unique identifier used to identify the remote provider. This is part of the fileUUID and is used uniquely identify a resource in relation to the remote system.
remote provider id
The type of remote provider (ex: gcp, azure, aws, local)
Relationship that shows in what type of provider is a file stored.
remote provider type
The remote relative path specifies the location of a file on a storage system. This is always a relative path in relation to the project directory on a cloud storage provider.
remote relative path
DEPRECATED: This property is outdated. Please use qcy:involves instead. Relationship between some activity and required equipment.
requires equipment
An 'Activity' requires some 'Equipment'.
DEPRECATED: This property is outdated. Please use qcy:involves instead. Relationship between some activity and required material.
requires material
The number of times resolution has been attempted for this entity mention. Used to limit retry attempts for entity resolution processes. After a maximum number of attempts, the mention is no longer considered for resolution to a canonical entity.
resolution attempt count
Relationship between a qcy:EntityMention and a qcy:CanonicalEntity. This property indicates that a named entity occurrence resolves to a canonical entity, meaning that the named entity is recognized as an instance of the canonical entity.
resolves to
Relationship that specifies that a person or organization is a reviewer of the entity.
reviewer
A 'Person' or 'Organization' is a reviewer of the entity.
DEPRECATED: This property is outdated. Please use qcy:associatedWith instead. Relationship stating that a certain contract role is involved in the contract.
role in contract
A 'ContractRole' (undertaken by a 'Person' or 'Organization') is involved in the 'Contract'.
Relationship between a qcy:Selector and the thing it specifies. This is typically either a qcy:EntityMention (eg this part of the text mentions the entity) or a qcy:InformationObject (eg this picture is placed here on the page)
selector object
Relationship between a qcy:Selector and the qcy:InformationObject it specifies.
selector subject
DEPRECATED: This property is outdated. Please use qcy:contains instead. A drawing sheet contains a drawing entity.
drawing sheet contains drawing entity
A 'DrawingSheet' contains a 'DrawingEntity'.
Relationship between a qcy:CanonicalEntity and any other representation of the same entity (for example the Wikidata entry) or a similar entity (for example the OpenStreetMaps street address of an appartment in a building). This property indicates that the canonical entity can be linked to or identified with another entity in a different context or dataset.
similar to
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that indicates that a building belongs to a site.
site contains building
The size of the file content in bytes
size bytes
A subject is a short description that captures the main theme or topic of a qcy:InformationObject. The subject is typically generated by a Large Language model.
subject
The file suffix including dot (ex: ".pdf")
file suffix
"Processed table output, which contains a json string with the content assigned to the cells, as extracted from the input..
table grid content
Processed table output, which contains a json string with a grid of cells, as extracted from the input.
table grid
A tag is a keyword or term assigned to a piece of information, such as a qcy:InformationObject, to describe and categorize it. Tags are typically used to facilitate searching and organizing information. An information object can have multiple tags.
tag
Raw text as extracted from the qcy:InformationObject.
text raw
A short text that summarizes all information about the thing. This is typically generated by a Large Language model from provided context any form.
text summary
A value is a text string that holds the value. How to interpret this value depends on what the value is assigned to.
value
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that indicates that a building zone contains a building element.
building zone contains building element
DEPRECATED: This property is outdated. Please use qcy:contains instead. Relationship that indicates that a building zone contains a space.
zone contains space
Relationship between a zone/element and an adjacent element.
zone has adjacent element
Relationship between a zone and a related element.
zone has element