FLOW ALGEBRA
Ontology: Book Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/book-metadata-ontology.html
Authors: Mark Anthony Higgins — Sky (Recursive AI)
flow "BookMetadataOntology" v1.0
# ---------- DOMAIN ----------
domain:
class: MetadataOntology
category: DocumentMetadata
subject: BookMetadata
purpose:
- represent metadata describing books and book resources
- preserve book identity, title, authorship, edition, publication, structure, identifiers, rights, and provenance
- support book discovery, citation, validation, retrieval, cataloguing, and reuse
- distinguish intellectual work, edition, manifestation, and digital representation
- enable machine-readable reasoning over book lifecycles
# ---------- CORE ENTITY ----------
entity BookMetadata:
type: DocumentMetadata
describes: Book
may_include:
- book_identifier
- title
- subtitle
- alternative_title
- author
- editor
- contributor
- publisher
- publication_date
- edition
- volume
- series
- isbn
- language
- subject
- keywords
- description
- chapter_structure
- page_count
- format
- version
- rights
- licence
- provenance
entity Book:
type: Document
may_have:
- BookEdition
- BookManifestation
- BookRepresentation
entity BookIdentifier:
type: Identifier
identifies: BookOrEdition
entity ISBN:
subtype_of: BookIdentifier
identifies: BookEditionOrManifestation
according_to publishing semantics
# ---------- RELATIONSHIPS ----------
relationships:
BookMetadata -> DESCRIBES -> Book
Book -> IDENTIFIED_BY -> BookIdentifier
Book -> HAS_AUTHOR -> Agent
Book -> MAY_HAVE_EDITOR -> Agent
Book -> MAY_HAVE_CONTRIBUTOR -> Agent
Book -> MAY_HAVE_EDITION -> BookEdition
BookEdition -> MAY_HAVE_ISBN -> ISBN
BookEdition -> PUBLISHED_BY -> Publisher
BookEdition -> MAY_BELONG_TO -> BookSeries
BookEdition -> MAY_HAVE_VOLUME -> Volume
Book -> HAS_STRUCTURE -> BookStructure
BookStructure -> CONTAINS -> Chapter
BookEdition -> MAY_HAVE_MANIFESTATION -> BookManifestation
BookManifestation -> MAY_HAVE_REPRESENTATION -> BookRepresentation
BookMetadata -> MAY_REFERENCE -> BookProvenance
# ---------- BOOK IDENTITY ----------
rule book_identity:
Book SHOULD have stable identifier
where persistent citation or semantic reference is required
rule title_not_identity:
book title MUST NOT be assumed globally unique
rule work_edition_distinction:
Book != BookEdition
rule edition_representation_distinction:
BookEdition != BookRepresentation
# ---------- TITLE ----------
entity BookTitle:
type: DocumentTitle
may_be:
- primary_title
- subtitle
- alternative_title
- translated_title
rule title:
authoritative title SHOULD be preserved
rule translated_title:
translated title SHOULD preserve language metadata
# ---------- AUTHORSHIP ----------
entity BookAgentRole:
type: RoleMetadata
roles:
- author
- editor
- contributor
- translator
- illustrator
- foreword_author
- publisher
rule authorship:
role SHOULD be explicit
where attribution matters
rule author_order:
author ordering SHOULD be preserved
where source defines meaningful sequence
# ---------- EDITION ----------
entity BookEdition:
type: DocumentVersionOrPublicationEntity
may_include:
- edition_identifier
- edition_number
- edition_statement
- publication_date
- publisher
- isbn
- revision_description
rule edition:
materially revised published edition SHOULD remain distinguishable
from previous edition
rule edition_number:
edition numbering SHOULD be preserved as supplied
and MUST NOT be inferred solely from publication date
# ---------- ISBN ----------
rule isbn:
ISBN SHOULD preserve canonical digits and identifier type
rule isbn10_isbn13:
ISBN_10 and ISBN_13 MAY refer to related publication manifestations
but MUST NOT be assumed identical without validation
rule isbn_validation:
ISBN SHOULD satisfy applicable checksum rules
when validation is performed
# ---------- PUBLISHER ----------
entity Publisher:
type: OrganisationOrAgent
rule publisher:
publisher SHOULD remain distinguishable
from author and distributor
# ---------- PUBLICATION DATE ----------
rule publication_date:
publication date SHOULD be associated with applicable edition or manifestation
rule publication_not_creation:
publication_date != original_creation_date
# ---------- SERIES ----------
entity BookSeries:
type: Collection
contains: BookOrEdition
entity Volume:
type: SeriesPositionMetadata
may_include:
- volume_number
- volume_title
rule series:
Book MAY belong to BookSeries
rule volume:
volume number SHOULD preserve series context
# ---------- STRUCTURE ----------
entity BookStructure:
type: DocumentStructure
may_include:
- front_matter
- part
- chapter
- section
- appendix
- bibliography
- index
- back_matter
entity Chapter:
type: DocumentFragment
may_include:
- chapter_identifier
- chapter_number
- title
- author
- start_page
- end_page
rule chapter_order:
Chapter ordering SHOULD be preserved
rule chapter_identity:
chapter MAY have stable identifier
where independent citation or retrieval is required
# ---------- PAGE METADATA ----------
entity BookPagination:
type: StructuralMetadata
may_include:
- page_count
- pagination_scheme
- logical_page_labels
rule page_count:
page_count MAY differ across manifestations or representations
rule page_reference:
page citation SHOULD identify applicable edition or manifestation
where pagination differs
# ---------- MANIFESTATION ----------
entity BookManifestation:
type: PublicationRepresentation
may_be:
- hardcover
- paperback
- ebook
- audiobook
- large_print
rule manifestation:
manifestation SHOULD preserve format-specific identifiers and publication metadata
rule manifestation_not_work:
BookManifestation != Book
# ---------- DIGITAL REPRESENTATION ----------
entity BookRepresentation:
type: DocumentRepresentation
may_be:
- EPUB
- PDF
- HTML
- MOBI
- PlainText
- AudioFile
rule representation:
digital representation SHOULD preserve represented BookEdition or Manifestation
rule conversion:
format conversion SHOULD preserve source representation provenance
# ---------- LANGUAGE ----------
rule language:
Book SHOULD preserve primary language
and MAY preserve translated or multilingual content metadata
# ---------- SUBJECT ----------
entity BookSubject:
type: SemanticMetadata
may_include:
- concept_identifier
- subject_label
- vocabulary
- classification
rule subject:
controlled subject identifiers SHOULD be preferred
where available
rule classification:
library or domain classification SHOULD preserve scheme and code
# ---------- RIGHTS ----------
entity BookRights:
type: RightsMetadata
may_include:
- copyright_holder
- licence
- usage_rights
- territory
- attribution_requirement
rule rights:
rights MAY differ by edition, manifestation, territory, or representation
# ---------- RELATIONSHIPS ----------
book_relationships:
- edition_of
- translation_of
- adaptation_of
- sequel_to
- prequel_to
- part_of_series
- cites
- cited_by
- derived_from
- related_to
rule translation:
translated BookEdition SHOULD preserve source work relationship
rule sequel:
sequel_to != edition_of
# ---------- PROVENANCE ----------
entity BookProvenance:
type: ProvenanceMetadata
may_include:
- creator
- publisher
- source
- edition_history
- conversion_history
- digitisation_history
- extraction_method
- timestamps
rule provenance:
BookMetadata SHOULD preserve publication and transformation history
# ---------- VALIDATION ----------
validation:
require:
- identifiable_book_or_book_candidate
validate_if_present:
- book_identifier
- title
- authors
- edition
- isbn
- publisher
- publication_date
- series
- structure
- manifestation
- representation
- rights
- provenance
reject:
- contradictory_book_identity
- invalid_isbn_checksum when checksum validation is required
- edition_presented_as work_identity
- representation_presented_as intellectual_book
- impossible_chapter_page_range
- contradictory_edition_relationship
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
"book metadata" ~= "metadata about a book"
"book identifier" ~= "publication identifier" WHEN identifier applies to book resource
"book edition" ~= "edition of a book"
"book series" ~= "publication series" WHEN series contains books
"ebook" ~= "electronic book manifestation"
"chapter metadata" ~= "metadata about a book chapter"
PRESERVE distinctions:
book != edition
edition != manifestation
manifestation != representation
title != identifier
ISBN != universal_work_identity
publisher != author
publication_date != creation_date
chapter != book
sequel != edition
page_count != invariant_work_property
# ---------- CONFIDENCE ----------
CONFIDENCE:
explicit_book_metadata:
score: 1.00
authoritative_book_identifier:
score: 1.00
validated_isbn:
score: 0.99
explicit_edition_metadata:
score: 0.99
explicit_authorship:
score: 0.99
inferred_book_relationship:
score: 0.85
title_author_match_only:
score: <= 0.75
ambiguous_book_identity:
score: <= 0.60
action: preserve candidates
# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
on_book_creation:
- assign BookIdentifier where available
- record title and authors
- initialise provenance
on_new_edition:
- preserve Book identity
- create BookEdition
- record edition statement
- record publisher and publication date
- attach ISBN where applicable
- update provenance
on_new_manifestation:
- preserve BookEdition
- create BookManifestation
- record format-specific metadata
- update provenance
on_digitisation:
- preserve source manifestation
- create digital BookRepresentation
- record digitisation or conversion process
- update provenance
# ---------- FLOW HASH ----------
FLOW_HASH:
inputs:
- ontology
- book_entities
- relationships
- identity_rules
- edition_rules
- identifier_rules
- structure_rules
- manifestation_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
- book identity and publication model
- edition and manifestation structure
- book provenance and retrieval model
operations:
- identify books
- resolve titles and authors
- distinguish works and editions
- validate ISBNs
- resolve publishers and dates
- traverse series and volumes
- traverse chapters
- resolve manifestations and representations
- inspect rights
- follow book relationships
- trace provenance
- preserve uncertainty
constraints:
- do_not_equate_title_with_book_identity
- do_not_equate_ISBN_with universal_work_identity
- do_not_equate_book_with_edition
- do_not_equate_edition_with_representation
- do_not_assume_page_count_constant_across_manifestations
- preserve_authorship_edition_publication_and_provenance
# ---------- QUERY MODEL ----------
query:
input:
- book_identifier
- title
- author
- isbn
- edition
- publisher
- publication_date
- series
- subject
- format
resolve:
1. identify Book candidates
2. resolve identifiers
3. compare title and authorship
4. resolve BookEdition
5. validate ISBN
6. resolve publisher and publication date
7. inspect series and structure
8. resolve manifestations and representations
9. inspect rights and provenance
10. rank candidates by confidence
output:
- book
- identifiers
- title
- authors
- edition
- isbn
- publisher
- publication_date
- series
- structure
- manifestations
- representations
- provenance
- confidence
# ---------- INFERENCE ----------
inference:
IF authoritative BookIdentifier resolves uniquely
THEN identify Book
WITH confidence = 1.00
IF validated ISBN resolves to specific edition or manifestation
THEN identify publication entity
WITH confidence = 0.99
IF same work has multiple editions
THEN preserve common Book identity
AND distinct BookEdition identities
IF digital representation derives from physical or source edition
THEN preserve derivation relationship
IF book identity remains ambiguous
THEN preserve candidate Books
AND do_not force resolution
# ---------- OUTPUT CONTRACT ----------
output:
ontology_entity: BookMetadata
book_identity: machine_interpretable
identifiers: traceable
authorship: preserved
editions: distinguishable
ISBNs: validated_where_possible
publication_metadata: explicit
structure: traversable
manifestations: distinguishable
representations: format_aware
relationships: explicit
provenance: preserved
uncertainty: explicit
semantic_retrieval: enabled
end flow
Download Code
Copy to Clipboard