Skip to main content

pub.layers.ontology

Annotation ontology definitions. Defines the types, labels, and relationships used in annotation, inspired by FOVEA's persona-based ontology builder and bead's unified frame ontology interfaces. Ontologies are first-class objects that can be shared, versioned, and linked to knowledge graphs.

The record mains declare key: any (Scheme A): rkeys may be arbitrary strings rather than TIDs.

Ontologies also back the controlled vocabularies that every <x>Uri field across the lexicons points at. Layers seeds three ontology accounts, whose typeDefs the <x>Uri fields resolve into:

  • layers-core.ontology.layers.pub: media-kind, modality, catalog-kind, membership-role, pin-policy, stability, count-source, unit, facet-dimension, rollup-warning, language-role, license-component, credit-policy, access-condition, trust-tier, writing-direction.
  • layers-acquisition.ontology.layers.pub: channel-type, sensor-type, coordinate-system, spatial-axes, si-unit, eeg-reference-scheme, electrode-placement, electrode-material, device-kind, stream-role, sync-method, consent-scope, identifiability, sex, handedness, proficiency, skeleton, signal-format.
  • layers-annotation.ontology.layers.pub: annotation-kind, annotation-subkind, formalism, articulator, source-method.

The modality lattice is one structural rule: a modality typeDef (eeg, fmri, speech-audio) names its carrier media-kind typeDef (media-kind-signal, media-kind-volume, media-kind-audio) via parentTypeRef. So signalInfo.modalityUri, recordingMethod.methodUri, and contentSummary.modalityUri resolve to the SAME node set, while media.kindUri resolves to the PARENT of those nodes. Species, institutions, funders, licenses, and languages are not minted here; they ground through knowledgeRef.

Types

ontology

NSID: pub.layers.ontology.ontology Type: Record

An annotation ontology: a collection of typed definitions (entity types, situation types, role types, relation types) that together form a complete annotation framework.

FieldTypeDescription
namestringHuman-readable name for this ontology.
descriptionstringDetailed description of the ontology's purpose and scope.
versionstringSemantic version string.
domainUriat-uriAT-URI of the domain definition node. Community-expandable via knowledge graph.
domainstringDomain slug (fallback when domainUri unavailable). Known values: general, biomedical, legal, financial, news, social-media, scientific, intelligence, dialogue, multimodal, custom
parentRefat-uriReference to a parent ontology this one extends.
personaRefat-uriReference to the persona that created/owns this ontology.
knowledgeRefsarrayKnowledge graph references grounding this ontology. Array of ref: pub.layers.defs#knowledgeRef
licensingrefLicensing terms governing this ontology (supports dual/multi/component licensing). Ref: pub.layers.defs#licensing
eprintRefsarrayEprint records (papers/preprints) describing or associated with this ontology. Array of at-uri (max 64)
languagesarrayBCP-47 language tags this ontology covers. Empty when language-independent. Array of strings (item max 32). No array-level cap.
languageRefsarrayStructured language references (canonical BCP-47 tag plus optional script, region, variety, and role) grounding the languages this ontology covers. Array of ref: pub.layers.defs#languageRef
metadatarefProvenance: who authored this ontology, with what tool, under what persona. Ref: pub.layers.defs#annotationMetadata
featuresrefOpen-ended features describing this ontology (e.g., release channel, coverage, status). Ref: pub.layers.defs#featureMap
reproducibilityrefHow this ontology was produced (code, commit, command, environment, seed, funding, ethics approvals). Ref: pub.layers.defs#reproducibilityInfo
createdAtdatetimeRecord creation timestamp.

typeDef

NSID: pub.layers.ontology.typeDef Type: Record

A type definition within an ontology. Covers entity types, situation types, role types, and relation types in a single unified model.

FieldTypeDescription
ontologyRefat-uriThe ontology this type belongs to.
namestringThe type name/label.
typeKindUriat-uriAT-URI of the type kind definition node. Community-expandable via knowledge graph.
typeKindstringType kind slug (fallback when typeKindUri unavailable). Known values: entity-type, situation-type, role-type, relation-type, attribute-type
glossstringRich text definition/gloss of this type. May include references to other types and Wikidata entities.
parentTypeRefat-uriReference to a parent type (for type hierarchies/inheritance).
allowedRolesarrayFor frame/situation types: the roles that can be filled. Array of ref: pub.layers.ontology.defs#roleSlot
allowedValuesarrayFor attribute types: enumerated allowed values. Array of strings
knowledgeRefsarrayKnowledge graph groundings (Wikidata, chive.pub, FrameNet, etc.). Array of ref: pub.layers.defs#knowledgeRef
featuresrefOpen-ended features. For relation-type typeDefs, standardized feature keys include: symmetric (boolean, if true A→B implies B→A), transitive (boolean, if true A→B and B→C implies A→C), reflexive (boolean, if true A→A is valid), inverse (AT-URI of the inverse relation typeDef), domain (AT-URI of required source type), range (AT-URI of required target type). Ref: pub.layers.defs#featureMap
createdAtdatetimeRecord creation timestamp.

roleSlot

NSID: pub.layers.ontology.defs#roleSlot Type: Object

A role/argument slot in a frame or event type definition. Structurally parallel to pub.layers.resource.defs#slot: both represent named positions with type constraints.

FieldTypeDescription
roleNamestringThe role label (e.g., Agent, Patient, Theme, ARG0).
roleDescriptionstringDescription of the role.
fillerTypeRefsarrayReferences to allowed filler types (pub.layers.ontology.typeDef AT-URIs). Array of at-uri
collectionRefat-uriAT-URI of a pub.layers.resource.collection constraining allowed fillers.
requiredbooleanWhether this role is obligatory.
defaultValuestringDefault filler value if not explicitly filled.
constraintsarrayDeclarative constraints on fillers of this role. Array of ref: pub.layers.defs#constraint
knowledgeRefsarrayKnowledge graph references. Array of ref: pub.layers.defs#knowledgeRef
featuresrefOpen-ended features for this role slot. Ref: pub.layers.defs#featureMap

XRPC Queries

getOntology

NSID: pub.layers.ontology.getOntology

Retrieve a single ontology record by AT-URI.

ParameterTypeDescription
uriat-uri (required)The AT-URI of the ontology record.

Output: { uri, cid, value: ontology }

listOntologies

NSID: pub.layers.ontology.listOntologies

List ontology records in a repository with pagination.

ParameterTypeDescription
repoat-identifier (required)The handle or DID of the repository.
domainstringFilter ontologies by domain slug.
limitintegerMaximum number of records to return (1-100, default 50).
cursorstringPagination cursor from previous response.

Output: { records: { uri, cid, value: ontology }[], cursor?: string }

getTypeDef

NSID: pub.layers.ontology.getTypeDef

Retrieve a single type definition record by AT-URI.

ParameterTypeDescription
uriat-uri (required)The AT-URI of the type definition record.

Output: { uri, cid, value: typeDef }

listTypeDefs

NSID: pub.layers.ontology.listTypeDefs

List type definition records in a repository with pagination.

ParameterTypeDescription
ontologyRefat-uri (required)The AT-URI of the ontology whose type definitions to list.
typeKindstringFilter by type kind.
limitintegerMaximum number of records to return (1-100, default 50).
cursorstringPagination cursor from previous response.

Output: { records: { uri, cid, value: typeDef }[], cursor?: string }