FLOW ALGEBRA
Ontology: Document Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/document-metadata-ontology.html
Authors: Mark Anthony Higgins — Sky (Recursive AI)
flow "DocumentMetadataOntology" v1.0
# ---------- DOMAIN ----------
domain:
class: MetadataOntology
category: DocumentMetadata
subject: DocumentMetadata
purpose:
- represent metadata describing document resources
- preserve identity, authorship, structure, format, dates, versions, rights, access, and provenance
- support document discovery, validation, citation, retrieval, governance, and reuse
- distinguish document content, representation, version, and metadata
- enable machine-readable reasoning over document lifecycles
# ---------- CORE ENTITY ----------
entity DocumentMetadata:
type: MetadataEntity
describes: Document
may_include:
- document_identifier
- title
- subtitle
- alternative_title
- description
- document_type
- author
- contributor
- editor
- publisher
- creation_date
- publication_date
- modification_date
- language
- subject
- keywords
- structure
- format
- encoding
- version
- status
- rights
- licence
- access_metadata
- provenance
- document_relationships
entity Document:
type: InformationResource
may_be:
- Article
- Report
- Book
- Chapter
- Manual
- Specification
- PolicyDocument
- ResearchPaper
- WebDocument
- TechnicalDocument
- LegalDocument
- Documentation
entity DocumentIdentifier:
type: Identifier
identifies: Document
entity DocumentType:
type: Classification
classifies: Document
# ---------- RELATIONSHIPS ----------
relationships:
DocumentMetadata -> DESCRIBES -> Document
Document -> IDENTIFIED_BY -> DocumentIdentifier
Document -> HAS_TYPE -> DocumentType
Document -> HAS_AUTHOR -> Agent
Document -> MAY_HAVE_CONTRIBUTOR -> Agent
Document -> MAY_HAVE_EDITOR -> Agent
Document -> MAY_HAVE_PUBLISHER -> Agent
Document -> HAS_STRUCTURE -> DocumentStructure
Document -> HAS_REPRESENTATION -> DocumentRepresentation
DocumentRepresentation -> HAS_FORMAT -> DocumentFormat
Document -> MAY_HAVE_VERSION -> DocumentVersion
Document -> MAY_HAVE_STATUS -> DocumentStatus
Document -> MAY_HAVE_RIGHTS -> RightsMetadata
Document -> MAY_HAVE_ACCESS -> AccessMetadata
Document -> MAY_RELATE_TO -> Document
DocumentMetadata -> MAY_REFERENCE -> DocumentProvenance
# ---------- DOCUMENT IDENTITY ----------
rule document_identity:
Document SHOULD have stable DocumentIdentifier
where persistent citation, retrieval, or provenance is required
rule title_not_identity:
title MUST NOT be assumed globally unique
rule identifier_namespace:
DocumentIdentifier SHOULD preserve namespace
where identifier is not globally unique
rule document_version_identity:
Document != DocumentVersion
rule document_representation_identity:
Document != DocumentRepresentation
# ---------- TITLES ----------
entity DocumentTitle:
type: LexicalMetadata
may_be:
- primary_title
- subtitle
- alternative_title
- translated_title
rule title:
primary title SHOULD be preserved from authoritative source
rule title_language:
translated or multilingual titles SHOULD preserve language metadata
# ---------- AUTHORSHIP ----------
entity DocumentAgentRole:
type: RoleMetadata
roles:
- author
- editor
- contributor
- translator
- reviewer
- publisher
rule authorship:
Agent role SHOULD be explicit
where attribution matters
rule author_order:
author ordering SHOULD be preserved
where source defines meaningful sequence
rule corporate_author:
Organisation MAY act as Author
# ---------- DATES ----------
entity DocumentDateMetadata:
type: TemporalMetadata
may_include:
- creation_date
- publication_date
- modification_date
- revision_date
- access_date
rule date_distinction:
creation_date != publication_date
publication_date != modification_date
rule date_context:
dates SHOULD preserve timezone or precision
where interpretation depends on them
# ---------- LANGUAGE ----------
rule language:
Document SHOULD preserve language
where interpretation or discovery depends on it
rule multilingual:
multilingual Document MAY preserve language at:
- document_level
- section_level
- fragment_level
# ---------- SUBJECT ----------
entity DocumentSubject:
type: SemanticMetadata
may_include:
- concept_identifier
- subject_label
- vocabulary
- ontology
rule subject:
semantic concept identifiers SHOULD be preferred
where controlled vocabulary is available
rule keyword:
Keyword != ConceptIdentifier
# ---------- STRUCTURE ----------
entity DocumentStructure:
type: StructuralMetadata
may_include:
- section
- chapter
- heading
- paragraph
- list
- table
- figure
- appendix
- reference
- footnote
rule structure_order:
ordered components SHOULD preserve sequence
rule hierarchy:
nested document components SHOULD preserve parent-child structure
rule fragment_identifier:
stable fragment identifiers SHOULD be preserved
where citation or retrieval requires
# ---------- REPRESENTATION ----------
entity DocumentRepresentation:
type: InformationRepresentation
represents: Document
may_include:
- representation_identifier
- format
- encoding
- file_size
- checksum
- media_type
entity DocumentFormat:
type: RepresentationMetadata
examples:
- HTML
- PDF
- DOCX
- ODT
- Markdown
- PlainText
- XML
- EPUB
rule format:
DocumentFormat != DocumentType
rule multiple_representations:
same Document MAY have multiple DocumentRepresentations
without creating different intellectual document identity
rule format_conversion:
converted representation SHOULD preserve source representation provenance
# ---------- ENCODING ----------
rule encoding:
textual DocumentRepresentation SHOULD preserve character encoding
where byte interpretation depends on encoding
rule encoding_not_format:
Encoding != DocumentFormat
# ---------- VERSION ----------
entity DocumentVersion:
type: VersionMetadata
may_include:
- version_identifier
- predecessor
- successor
- creation_time
- revision_description
- status
rule version:
material content change SHOULD create distinguishable DocumentVersion
where history or citation requires
rule historical_version:
superseded versions SHOULD remain traceable
rule representation_version:
format conversion alone SHOULD NOT automatically create new intellectual DocumentVersion
unless content changes
# ---------- STATUS ----------
document_status:
- draft
- review
- approved
- published
- deprecated
- superseded
- archived
- withdrawn
rule status:
DocumentStatus SHOULD be explicit
rule historical_status:
status changes SHOULD preserve effective time
where lifecycle history matters
# ---------- RIGHTS ----------
entity DocumentRights:
type: RightsMetadata
may_include:
- copyright_holder
- licence
- usage_rights
- redistribution_rights
- attribution_requirement
- restrictions
rule rights:
Document use SHOULD respect declared rights
rule rights_access:
RightsMetadata != AccessMetadata
# ---------- ACCESS ----------
entity DocumentAccess:
type: AccessMetadata
may_include:
- access_level
- access_method
- authentication_requirement
- availability
- embargo
rule access:
access state SHOULD remain separate from legal usage rights
# ---------- DOCUMENT RELATIONSHIPS ----------
document_relationships:
- cites
- cited_by
- references
- referenced_by
- is_part_of
- has_part
- supersedes
- superseded_by
- translation_of
- adaptation_of
- derived_from
- related_to
rule citation_inverse:
IF A cites B
THEN B cited_by A
rule part_inverse:
IF A is_part_of B
THEN B has_part A
rule supersession:
IF A supersedes B
THEN B superseded_by A
# ---------- CITATION ----------
entity CitationMetadata:
type: DocumentMetadata
may_include:
- cited_document
- citation_location
- citation_text
- identifier
- access_date
rule citation:
citation SHOULD resolve to stable DocumentIdentifier
where available
rule citation_not_endorsement:
citation != endorsement
# ---------- CHECKSUM ----------
entity DocumentChecksum:
type: IntegrityMetadata
may_include:
- algorithm
- digest
rule checksum:
checksum applies to DocumentRepresentation
NOT necessarily intellectual Document identity
# ---------- PROVENANCE ----------
entity DocumentProvenance:
type: ProvenanceMetadata
may_include:
- creator
- source
- creation_process
- publication_process
- revision_history
- conversion_history
- extraction_method
- timestamps
rule provenance:
DocumentMetadata SHOULD preserve document origin and transformations
rule extracted_metadata:
automatically extracted metadata SHOULD remain distinguishable
from authoritative supplied metadata
# ---------- VALIDATION ----------
validation:
require:
- identifiable_document
validate_if_present:
- identifier
- title
- document_type
- authors
- dates
- language
- subject
- structure
- representation
- format
- version
- status
- rights
- provenance
reject:
- contradictory_document_identity
- invalid_version_chain
- impossible_date_relationship_without explanation
- format_presented_as document_type
- encoding_presented_as format
- unresolved_mandatory_document_relationship
- contradictory_status_at_same_time
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
"document metadata" ~= "metadata about documents"
"document identifier" ~= "document ID"
"document version" ~= "document revision" WHEN revision represents version
"document format" ~= "file format" WHEN document representation is file-based
"document subject" ~= "document topic" WHEN semantic scope matches
"document provenance" ~= "document history" WHEN describing origin and transformations
PRESERVE distinctions:
document != document_metadata
document != document_version
document != document_representation
title != identifier
document_type != document_format
format != encoding
author != publisher
creation_date != publication_date
rights != access
keyword != concept_identifier
citation != endorsement
# ---------- CONFIDENCE ----------
CONFIDENCE:
explicit_document_metadata:
score: 1.00
authoritative_document_identifier:
score: 1.00
explicit_version_metadata:
score: 1.00
explicit_authorship:
score: 0.99
metadata_extracted_from_document:
score: 0.95
inferred_document_type:
score: 0.85
title_only_identity_match:
score: <= 0.65
ambiguous_document_identity:
score: <= 0.60
action: preserve candidates
# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
on_document_creation:
- assign DocumentIdentifier
- record title and type
- record authorship
- record creation date
- initialise version and provenance
on_document_revision:
- preserve previous DocumentVersion
- create new version
- record revision description
- update modification date
- preserve provenance
on_representation_creation:
- preserve intellectual Document identity
- create DocumentRepresentation
- record format and encoding
- record source representation where converted
- preserve provenance
on_status_change:
- preserve previous status
- record new status and effective time
- preserve lifecycle history
# ---------- FLOW HASH ----------
FLOW_HASH:
inputs:
- ontology
- document_metadata_entities
- relationships
- identity_rules
- structure_rules
- representation_rules
- version_rules
- rights_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:
- document metadata ontology
- document identity model
- document representation model
- lifecycle, citation, and provenance structure
operations:
- identify documents
- resolve document identifiers
- interpret document types
- resolve authorship
- apply date and language metadata
- resolve semantic subjects
- traverse document structure
- inspect representations and formats
- traverse versions
- evaluate status
- inspect rights and access
- follow document relationships
- trace provenance
- preserve uncertainty
constraints:
- do_not_equate_title_with_identity
- do_not_equate_document_type_with_format
- do_not_equate_document_with_representation
- do_not_equate_format_with_encoding
- do_not_equate_rights_with_access
- preserve_authorship_dates_versions_relationships_and_provenance
# ---------- QUERY MODEL ----------
query:
input:
- document_identifier
- title
- document_type
- author
- subject
- language
- format
- version
- status
- date_constraint
resolve:
1. identify Document
2. resolve DocumentIdentifier
3. retrieve title and type
4. resolve authors and contributors
5. apply date and language context
6. resolve subject metadata
7. inspect structure and representations
8. traverse versions and relationships
9. inspect rights, access, and provenance
10. return confidence
output:
- document
- identifier
- title
- document_type
- authors
- dates
- language
- subjects
- structure
- representations
- version
- status
- provenance
- confidence
# ---------- INFERENCE ----------
inference:
IF authoritative DocumentIdentifier resolves uniquely
THEN identify Document
WITH confidence = 1.00
IF DocumentVersion explicitly references predecessor
THEN reconstruct version history
IF representation is converted from another format
THEN preserve same intellectual Document identity
unless substantive content transformation creates distinct work
IF A cites B
THEN infer B cited_by A
IF document identity remains ambiguous
THEN preserve candidate Documents
AND do_not force resolution
# ---------- OUTPUT CONTRACT ----------
output:
ontology_entity: DocumentMetadata
document_identity: machine_interpretable
identifiers: stable
authorship: traceable
temporal_metadata: preserved
structure: traversable
representations: format_aware
versions: traversable
relationships: explicit
rights_and_access: distinguishable
provenance: preserved
uncertainty: explicit
semantic_retrieval: enabled
end flow
Download Code
Copy to Clipboard