FLOW ALGEBRA
Ontology: Article Metadata Ontology
Domain: Metadata Ontologies > Document Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/document-metadata/article-metadata-ontology.html
Authors: Mark Anthony Higgins — Sky (Recursive AI)
flow "ArticleMetadataOntology" v1.0
# ---------- DOMAIN ----------
domain:
class: MetadataOntology
category: DocumentMetadata
subject: ArticleMetadata
purpose:
- represent metadata describing articles and article resources
- preserve article identity, title, authorship, publication, structure, citations, versions, rights, and provenance
- support article discovery, citation, validation, retrieval, indexing, and reuse
- distinguish intellectual article identity from publication and digital representations
- enable machine-readable reasoning over article lifecycles
# ---------- CORE ENTITY ----------
entity ArticleMetadata:
type: DocumentMetadata
describes: Article
may_include:
- article_identifier
- title
- subtitle
- author
- contributor
- abstract
- article_type
- publication
- publisher
- publication_date
- volume
- issue
- page_range
- article_number
- doi
- language
- subject
- keywords
- sections
- references
- citations
- version
- status
- format
- rights
- licence
- provenance
entity Article:
type: Document
may_be:
- JournalArticle
- ResearchArticle
- ReviewArticle
- NewsArticle
- MagazineArticle
- ConferenceArticle
- WebArticle
- TechnicalArticle
- Editorial
- Commentary
entity ArticleIdentifier:
type: Identifier
identifies: Article
entity DOI:
subtype_of: ArticleIdentifier
identifies: ScholarlyOrDigitalResource
# ---------- RELATIONSHIPS ----------
relationships:
ArticleMetadata -> DESCRIBES -> Article
Article -> IDENTIFIED_BY -> ArticleIdentifier
Article -> MAY_HAVE_DOI -> DOI
Article -> HAS_AUTHOR -> Agent
Article -> MAY_HAVE_CONTRIBUTOR -> Agent
Article -> HAS_TYPE -> ArticleType
Article -> MAY_BE_PUBLISHED_IN -> PublicationContainer
Article -> MAY_HAVE_PUBLISHER -> Publisher
Article -> HAS_STRUCTURE -> ArticleStructure
Article -> MAY_CITE -> Document
Article -> MAY_HAVE_VERSION -> ArticleVersion
Article -> MAY_HAVE_REPRESENTATION -> ArticleRepresentation
ArticleMetadata -> MAY_REFERENCE -> ArticleProvenance
# ---------- ARTICLE IDENTITY ----------
rule article_identity:
Article SHOULD have stable ArticleIdentifier
where persistent citation or retrieval is required
rule title_not_identity:
article title MUST NOT be assumed globally unique
rule doi_identity:
DOI SHOULD be interpreted according_to DOI registration semantics
rule article_version_identity:
Article != ArticleVersion
# ---------- TITLE ----------
entity ArticleTitle:
type: DocumentTitle
may_be:
- primary_title
- subtitle
- translated_title
- alternative_title
rule title:
authoritative title SHOULD be preserved
rule title_language:
translated titles SHOULD preserve language metadata
# ---------- AUTHORSHIP ----------
entity ArticleAgentRole:
type: RoleMetadata
roles:
- author
- corresponding_author
- editor
- contributor
- reviewer
- translator
rule authorship:
Agent role SHOULD be explicit
where attribution matters
rule author_order:
author ordering SHOULD be preserved
where publication defines meaningful sequence
rule corresponding_author:
corresponding author role SHOULD remain distinct
from general authorship
# ---------- ABSTRACT ----------
entity ArticleAbstract:
type: DocumentFragment
may_include:
- abstract_text
- language
- structured_sections
rule abstract:
ArticleAbstract != full Article
rule abstract_provenance:
externally generated abstract or summary SHOULD remain distinguishable
from publisher-authoritative abstract
# ---------- ARTICLE TYPE ----------
entity ArticleType:
type: Classification
rule type:
ArticleType SHOULD preserve classification scheme
where article categories differ across publishers or domains
# ---------- PUBLICATION CONTAINER ----------
entity PublicationContainer:
type: DocumentCollection
may_be:
- Journal
- Magazine
- Newspaper
- ConferenceProceedings
- Website
entity Journal:
subtype_of: PublicationContainer
may_include:
- journal_identifier
- journal_title
- issn
- publisher
rule container:
Article SHOULD preserve publication container
where citation or discovery depends on it
# ---------- VOLUME / ISSUE ----------
entity VolumeMetadata:
type: PublicationMetadata
may_include:
- volume_number
- volume_title
entity IssueMetadata:
type: PublicationMetadata
may_include:
- issue_number
- issue_title
- publication_date
rule volume_issue:
volume and issue SHOULD preserve publication-container context
# ---------- PAGINATION ----------
entity ArticlePagination:
type: StructuralMetadata
may_include:
- start_page
- end_page
- page_range
- article_number
- electronic_location
rule page_range:
IF start_page AND end_page are ordinal-compatible
THEN start_page SHOULD NOT follow end_page
rule article_number:
ArticleNumber MAY replace conventional page range
in electronic publication systems
# ---------- PUBLICATION DATE ----------
rule publication_date:
publication date SHOULD preserve precision
where only year, month, or full date is known
rule online_print_dates:
online_publication_date MAY differ from print_publication_date
# ---------- STRUCTURE ----------
entity ArticleStructure:
type: DocumentStructure
may_include:
- title
- abstract
- introduction
- methods
- results
- discussion
- conclusion
- acknowledgements
- references
- supplementary_material
rule structure:
section order SHOULD be preserved
rule section_identifier:
stable section identifiers SHOULD be preserved
where fragment citation is required
# ---------- SUBJECT / KEYWORDS ----------
entity ArticleSubject:
type: SemanticMetadata
may_include:
- concept_identifier
- subject_label
- vocabulary
- classification
rule subject:
controlled subject identifiers SHOULD be preferred
where available
rule keyword:
Keyword != ConceptIdentifier
# ---------- REFERENCES ----------
entity ArticleReference:
type: CitationMetadata
may_include:
- cited_resource
- citation_text
- identifier
- reference_number
rule reference:
cited resource SHOULD resolve to stable identifier
where available
rule citation_inverse:
IF Article A cites Resource B
THEN B cited_by A
rule citation_not_support:
citation != endorsement
citation != agreement
# ---------- VERSION ----------
entity ArticleVersion:
type: VersionMetadata
may_include:
- version_identifier
- version_type
- predecessor
- successor
- creation_time
- change_description
article_version_types:
- submitted_manuscript
- accepted_manuscript
- preprint
- version_of_record
- corrected_version
- retracted_version
rule version:
ArticleVersion SHOULD preserve version type
where publication state matters
rule preprint:
Preprint != VersionOfRecord
unless publication metadata explicitly establishes equivalence
# ---------- STATUS ----------
article_status:
- draft
- submitted
- accepted
- published
- corrected
- retracted
- withdrawn
- superseded
rule status:
Article status SHOULD remain explicit
rule retraction:
retracted Article SHOULD remain identifiable
with retraction metadata where available
# ---------- REPRESENTATION ----------
entity ArticleRepresentation:
type: DocumentRepresentation
may_be:
- HTML
- PDF
- XML
- PlainText
- EPUB
rule representation:
ArticleRepresentation != Article
rule multiple_representations:
same ArticleVersion MAY have multiple representations
# ---------- RIGHTS ----------
entity ArticleRights:
type: RightsMetadata
may_include:
- copyright_holder
- licence
- open_access_status
- usage_rights
- attribution_requirement
rule rights:
rights SHOULD preserve applicable ArticleVersion or representation scope
# ---------- PROVENANCE ----------
entity ArticleProvenance:
type: ProvenanceMetadata
may_include:
- authors
- publisher
- publication_container
- submission_history
- review_history
- revision_history
- correction_history
- retraction_history
- extraction_method
rule provenance:
ArticleMetadata SHOULD preserve publication and revision history
# ---------- VALIDATION ----------
validation:
require:
- identifiable_article
validate_if_present:
- article_identifier
- doi
- title
- authors
- article_type
- publication_container
- publication_date
- volume
- issue
- pagination
- structure
- references
- version
- status
- rights
- provenance
reject:
- contradictory_article_identity
- invalid_doi_syntax where DOI validation is required
- impossible_page_range
- contradictory_version_relationship
- preprint_presented_as version_of_record_without evidence
- retracted_status_hidden_when known
- representation_presented_as intellectual_article
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
"article metadata" ~= "metadata about an article"
"article identifier" ~= "article ID"
"journal article" ~= "scholarly journal article" WHEN publication context matches
"article version" ~= "manuscript version" WHEN version applies to article lifecycle
"article references" ~= "bibliographic references"
"publication container" ~= "host publication"
PRESERVE distinctions:
article != article_metadata
article != article_version
article != representation
title != identifier
DOI != title
abstract != full_article
preprint != version_of_record
citation != endorsement
publication_date != modification_date
article_number != page_range
retracted != deleted
# ---------- CONFIDENCE ----------
CONFIDENCE:
explicit_article_metadata:
score: 1.00
authoritative_article_identifier:
score: 1.00
DOI_resolved_identity:
score: 0.99
explicit_authorship:
score: 0.99
explicit_publication_metadata:
score: 0.99
metadata_extracted_from_article:
score: 0.95
title_author_match:
score: <= 0.85
title_only_match:
score: <= 0.65
ambiguous_article_identity:
score: <= 0.60
action: preserve candidates
# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
on_article_creation:
- assign ArticleIdentifier where available
- record title and authors
- classify ArticleType
- initialise provenance
on_publication:
- record PublicationContainer
- record publisher and publication date
- attach DOI or publication identifier
- establish ArticleVersion
- update status and provenance
on_revision:
- preserve previous ArticleVersion
- create new version
- record changes
- update status
- preserve provenance
on_retraction:
- preserve Article and versions
- set status = retracted
- attach retraction notice where available
- preserve historical citation and provenance
# ---------- FLOW HASH ----------
FLOW_HASH:
inputs:
- ontology
- article_entities
- relationships
- identity_rules
- publication_rules
- structure_rules
- citation_rules
- version_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
- article identity and publication model
- citation and versioning structure
- scholarly and web article retrieval model
operations:
- identify articles
- resolve identifiers and DOIs
- resolve authorship
- classify article types
- resolve publication containers
- inspect volume, issue, and pagination
- traverse article structure
- resolve references and citations
- distinguish article versions
- inspect status including retraction
- resolve representations
- trace provenance
- preserve uncertainty
constraints:
- do_not_equate_title_with_identity
- do_not_equate_article_with_representation
- do_not_equate_preprint_with version_of_record
- do_not_treat_citation_as endorsement
- do_not_hide_known_retraction_status
- preserve_authorship_publication_version_citation_and_provenance
# ---------- QUERY MODEL ----------
query:
input:
- article_identifier
- doi
- title
- author
- article_type
- publication_container
- publication_date
- subject
- version
- status
resolve:
1. identify Article candidates
2. resolve ArticleIdentifier and DOI
3. compare title and authorship
4. resolve ArticleType
5. resolve PublicationContainer
6. inspect publication date, volume, issue, and pagination
7. inspect structure and references
8. resolve ArticleVersion and status
9. inspect representations, rights, and provenance
10. rank candidates by confidence
output:
- article
- identifiers
- title
- authors
- article_type
- publication_container
- publication_date
- volume
- issue
- pagination
- version
- status
- references
- provenance
- confidence
# ---------- INFERENCE ----------
inference:
IF authoritative ArticleIdentifier resolves uniquely
THEN identify Article
WITH confidence = 1.00
IF DOI resolves to ArticleVersion
THEN associate DOI with publication entity
WITH confidence = 0.99
IF A cites B
THEN infer B cited_by A
IF ArticleVersion has status = retracted
THEN preserve Article identity
AND expose retraction state
IF article identity remains ambiguous
THEN preserve candidate Articles
AND do_not force resolution
# ---------- OUTPUT CONTRACT ----------
output:
ontology_entity: ArticleMetadata
article_identity: machine_interpretable
identifiers: traceable
authorship: preserved
publication_context: explicit
structure: traversable
citations: resolvable
versions: distinguishable
status: explicit
representations: format_aware
rights: preserved
provenance: preserved
uncertainty: explicit
semantic_retrieval: enabled
end flow
Download Code
Copy to Clipboard