Skip to main content

Dataset Ontology

Data Metadata
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 08 October 2026
Audio Overview
FLOW ALGEBRA

Ontology: Dataset Ontology
Domain: Metadata Ontologies > Data Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/data-metadata/dataset-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "DatasetOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: DataMetadata
  subject: Dataset
  purpose:
    - represent datasets as identifiable collections of data
    - describe dataset structure, semantics, format, quality, provenance, and lifecycle
    - support dataset discovery, validation, integration, comparison, and reuse
    - preserve relationships between datasets, records, fields, values, schemas, and sources
    - enable machine-readable reasoning over dataset resources

# ---------- CORE ENTITY ----------
entity Dataset:
  type: DataResource
  contains:
    - DataRecord
    - DataField
    - DataValue
  may_include:
    - dataset_identifier
    - title
    - description
    - schema
    - data_format
    - encoding
    - variables
    - dimensions
    - record_count
    - field_count
    - temporal_coverage
    - spatial_coverage
    - quality
    - provenance
    - source
    - version
    - licence
    - access_metadata
    - rights_metadata

entity DatasetIdentifier:
  type: Identifier
  identifies: Dataset

entity DataRecord:
  type: StructuredDataEntity
  belongs_to: Dataset

entity DataField:
  type: SchemaElement
  may_have:
    - field_name
    - semantic_definition
    - datatype
    - unit
    - value_domain
    - nullability
    - constraint

entity DataValue:
  type: DataElement
  belongs_to: DataField

entity DatasetSchema:
  type: StructuralMetadata
  defines:
    - fields
    - datatypes
    - constraints
    - relationships
    - cardinality

# ---------- RELATIONSHIPS ----------
relationships:
  Dataset -> IDENTIFIED_BY -> DatasetIdentifier
  Dataset -> CONFORMS_TO -> DatasetSchema
  DatasetSchema -> DEFINES -> DataField
  Dataset -> CONTAINS -> DataRecord
  DataRecord -> HAS_VALUE -> DataValue
  DataValue -> BELONGS_TO -> DataField
  DataField -> HAS_DATATYPE -> DataType
  DataField -> MAY_USE -> Unit
  DataField -> MAY_HAVE -> ValueDomain
  Dataset -> HAS_FORMAT -> DataFormat
  Dataset -> MAY_HAVE_ENCODING -> DataEncoding
  Dataset -> MAY_HAVE -> DataQuality
  Dataset -> MAY_HAVE_VERSION -> DatasetVersion
  Dataset -> MAY_BE_DERIVED_FROM -> Dataset
  Dataset -> MAY_REFERENCE -> DataSource
  Dataset -> MAY_HAVE_TEMPORAL_COVERAGE -> TemporalMetadata
  Dataset -> MAY_HAVE_SPATIAL_COVERAGE -> SpatialMetadata
  Dataset -> MAY_REFERENCE -> Provenance

# ---------- DATASET IDENTITY ----------
rule dataset_identity:
  Dataset SHOULD have stable DatasetIdentifier
  where persistent citation, reuse, or provenance is required

rule identifier_namespace:
  DatasetIdentifier MUST be interpreted within declared namespace
  unless globally unique by specification

rule title_not_identity:
  dataset title MUST NOT be assumed globally unique

# ---------- STRUCTURE ----------
rule schema_conformance:
  IF Dataset declares DatasetSchema
  THEN DataRecords SHOULD conform to declared schema

rule field_identity:
  each DataField SHOULD have distinct identity within DatasetSchema

rule datatype:
  DataValue SHOULD conform to DataField datatype
  unless explicitly marked invalid, missing, or unresolved

rule cardinality:
  DatasetSchema cardinality constraints SHOULD be validated
  where deterministic structure is required

# ---------- VALUES ----------
entity ValueDomain:
  type: SemanticConstraint
  may_define:
    - allowed_values
    - minimum_value
    - maximum_value
    - pattern
    - vocabulary
    - unit

rule value_domain:
  IF DataField has ValueDomain
  THEN DataValue SHOULD be validated against it

rule null_semantics:
  null MUST be distinguished from:
    - missing
    - empty_string
    - zero
    - false
    - not_applicable
    - below_detection_limit

rule controlled_vocabulary:
  categorical fields SHOULD preserve controlled vocabulary identifiers
  where available

# ---------- FORMAT / ENCODING ----------
entity DataFormat:
  type: RepresentationMetadata
  examples:
    - CSV
    - JSON
    - XML
    - RDF
    - Parquet
    - binary
    - plain_text

entity DataEncoding:
  type: RepresentationMetadata
  describes: CharacterOrBinaryEncoding

rule format_semantics:
  DataFormat describes representation
  AND MUST NOT alone determine dataset semantics

rule encoding:
  textual Dataset SHOULD preserve character encoding
  where required for deterministic interpretation

# ---------- UNITS ----------
rule unit_context:
  quantitative DataField SHOULD declare Unit
  where value interpretation depends on measurement unit

rule unit_compatibility:
  quantitative comparison requires compatible dimensions

rule unit_conversion:
  compatible units MAY be normalised through valid conversion
  while preserving original value and unit

# ---------- TEMPORAL / SPATIAL COVERAGE ----------
rule temporal_coverage:
  IF Dataset contains time-dependent data
  THEN temporal coverage SHOULD be preserved

rule spatial_coverage:
  IF Dataset contains spatially referenced data
  THEN spatial coverage and reference context SHOULD be preserved

rule coverage_not_content:
  declared coverage describes dataset scope
  AND MUST NOT imply every possible time or location within coverage has data

# ---------- QUALITY ----------
entity DataQuality:
  type: QualityMetadata
  dimensions:
    - completeness
    - validity
    - consistency
    - accuracy
    - uniqueness
    - timeliness
    - integrity

rule quality_scope:
  DataQuality assertion SHOULD identify scope:
    - dataset
    - field
    - record
    - value

rule completeness:
  completeness MUST be interpreted relative_to expected data population

# ---------- PROVENANCE ----------
entity Provenance:
  type: MetadataEntity
  may_include:
    - creator
    - source
    - collection_method
    - processing_history
    - transformation
    - software
    - creation_time
    - revision_history

rule provenance_chain:
  DerivedDataset SHOULD retain links to source Dataset or DataSource

rule transformation:
  dataset transformation SHOULD record:
    - input_dataset
    - operation
    - parameters
    - software_or_agent
    - output_dataset
    - timestamp

# ---------- VERSION ----------
entity DatasetVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - creation_time
    - predecessor
    - successor
    - change_description
    - status

rule dataset_version:
  material content or structural change SHOULD create distinguishable DatasetVersion

rule historical_version:
  superseded versions SHOULD remain traceable
  where citation, audit, or reproducibility requires

# ---------- DERIVATION ----------
entity DerivedDataset:
  subtype_of: Dataset
  derived_from: Dataset

rule derivation:
  DerivedDataset MUST preserve source relationship
  where lineage is required

rule aggregation:
  IF Dataset is aggregated from source data
  THEN aggregation method SHOULD be preserved

rule subset:
  Dataset subset SHOULD preserve relationship to parent Dataset
  where provenance is relevant

# ---------- ACCESS / RIGHTS ----------
entity DatasetAccess:
  type: AccessMetadata
  may_include:
    - access_level
    - access_method
    - authentication_requirement
    - availability

entity DatasetRights:
  type: RightsMetadata
  may_include:
    - licence
    - copyright
    - usage_constraint
    - attribution_requirement

rule access_rights_distinction:
  DatasetAccess != DatasetRights

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_dataset

  validate_if_present:
    - identifier
    - schema
    - records
    - fields
    - datatypes
    - value_domains
    - units
    - format
    - encoding
    - quality
    - provenance
    - version
    - temporal_coverage
    - spatial_coverage

  reject:
    - schema_record_contradiction
    - incompatible_datatype_value
    - mandatory_value_domain_violation
    - incompatible_unit_comparison
    - contradictory_version_relationship
    - broken_derivation_chain where lineage is mandatory

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "dataset" ~= "data set"
  "dataset metadata" ~= "metadata describing a dataset"
  "dataset schema" ~= "data schema" WHEN schema applies to dataset
  "dataset record" ~= "data record" WHEN record belongs to dataset
  "dataset provenance" ~= "data lineage" WHEN describing dataset derivation
  "derived dataset" ~= "derived data set"

  PRESERVE distinctions:
    dataset != database
    dataset != schema
    dataset != data_format
    record != field
    field != value
    null != missing
    provenance != version
    source_dataset != derived_dataset
    access != rights
    coverage != completeness

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_dataset_metadata:
    score: 1.00

  explicit_schema:
    score: 1.00

  explicit_provenance:
    score: 1.00

  validated_schema_conformance:
    score: 0.95

  inferred_schema:
    score: 0.80

  inferred_field_semantics:
    score: 0.75

  ambiguous_dataset_context:
    score: <= 0.60
    action: preserve uncertainty

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_dataset_update:
    - preserve previous version where required
    - validate changed records and values
    - update quality metadata
    - update provenance
    - reassess coverage

  on_schema_update:
    - preserve previous schema version
    - validate compatibility
    - revalidate affected records
    - record migration
    - update provenance

  on_derivation:
    - preserve source Dataset
    - create DerivedDataset identity
    - record transformation
    - preserve parameters
    - update provenance

  on_format_conversion:
    - preserve source representation
    - validate semantic preservation
    - record conversion method
    - update provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - dataset_entities
    - relationships
    - identity_rules
    - schema_rules
    - value_rules
    - quality_rules
    - provenance_rules
    - validation
    - semantic_equivalence
    - confidence
    - update_model

  canonicalisation:
    - normalise_whitespace
    - preserve_case_sensitive_identifiers
    - sort_unordered_property_sets
    - preserve_rule_order

  output:
    deterministic_semantic_hash

# ---------- AI CONSUMPTION ----------
AI_CONSUMPTION:
  interpret_as:
    - data metadata ontology
    - dataset semantic model
    - dataset validation structure
    - provenance and lineage model
    - semantic retrieval structure

  operations:
    - identify datasets
    - resolve dataset schemas
    - interpret fields, records, and values
    - validate datatypes
    - validate value domains
    - resolve units
    - evaluate temporal and spatial coverage
    - assess data quality
    - trace provenance and derivation
    - traverse dataset versions
    - preserve uncertainty

  constraints:
    - do_not_invent_missing_values
    - do_not_treat_null_as_zero
    - do_not_equate_dataset_with_schema
    - do_not_equate_format_with_semantics
    - do_not_discard_source_dataset_provenance
    - preserve_version_and_derivation_history

# ---------- QUERY MODEL ----------
query:
  input:
    - dataset_identifier
    - field
    - datatype
    - value_constraint
    - format
    - temporal_constraint
    - spatial_constraint
    - quality_constraint
    - provenance_constraint
    - version

  resolve:
    1. identify Dataset
    2. retrieve DatasetSchema
    3. resolve fields and datatypes
    4. apply value-domain constraints
    5. validate units
    6. apply temporal and spatial coverage
    7. evaluate quality
    8. trace provenance and derivation
    9. resolve version
    10. rank by confidence

  output:
    - dataset
    - schema
    - fields
    - format
    - coverage
    - quality
    - provenance
    - derivation
    - version
    - confidence

# ---------- INFERENCE ----------
inference:
  IF DataResource contains structured records and fields
  THEN infer Dataset candidate
  WITH confidence <= 0.90

  IF records consistently conform to observed structure
  THEN infer candidate DatasetSchema
  WITH confidence <= 0.80

  IF Dataset B is produced by documented transformation of Dataset A
  THEN infer B DERIVED_FROM A
  WITH confidence = 0.95

  IF Dataset is explicitly extracted from parent Dataset
  THEN infer subset relationship

  IF dataset semantics remain ambiguous
  THEN preserve candidate interpretations
  AND reduce confidence

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: Dataset
  dataset_structure: machine_interpretable
  schema: explicit_where_available
  fields_and_records: semantically_addressable
  quality: reportable
  temporal_spatial_coverage: preserved
  provenance: traceable
  derivation_history: preserved
  version_history: traversable
  uncertainty: explicit
  semantic_retrieval: enabled

end flow
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ