Skip to main content

Web Metadata Ontology

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

Ontology: Web Metadata Ontology
Domain: Metadata Ontologies > Web Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/web-metadata/web-metadata-ontology.html

Authors: Mark Anthony Higgins — Sky (Recursive AI)

flow "WebMetadataOntology" v1.0

# ---------- DOMAIN ----------
domain:
  class: MetadataOntology
  category: WebMetadata
  subject: WebMetadata
  purpose:
    - represent metadata describing web resources, web pages, websites, and network representations
    - preserve web identity, URLs, canonicalisation, HTTP state, semantic markup, indexing, cache, security, and provenance
    - support web discovery, crawling, validation, retrieval, accessibility, semantic search, and AI consumption
    - distinguish resource identity from locators, representations, redirects, and cached copies
    - enable machine-readable reasoning over web-resource lifecycles

# ---------- CORE ENTITY ----------
entity WebMetadata:
  type: MetadataEntity
  describes: WebResource
  may_include:
    - web_resource_identifier
    - resource_type
    - url
    - canonical_url
    - site_identifier
    - title
    - description
    - language
    - author
    - publisher
    - creation_date
    - publication_date
    - modification_date
    - representation_metadata
    - http_metadata
    - link_metadata
    - structured_data
    - semantic_metadata
    - indexing_metadata
    - cache_metadata
    - accessibility_metadata
    - security_metadata
    - version
    - provenance

entity WebResource:
  type: InformationResource
  may_be:
    - Website
    - WebPage
    - WebDocument
    - WebApplication
    - APIResource
    - MediaResource
    - DownloadableResource

entity WebResourceIdentifier:
  type: Identifier
  identifies: WebResource

entity ResourceLocator:
  type: Locator
  may_be:
    - URL
    - URI

# ---------- RELATIONSHIPS ----------
relationships:
  WebMetadata -> DESCRIBES -> WebResource
  WebResource -> IDENTIFIED_BY -> WebResourceIdentifier
  WebResource -> MAY_BE_LOCATED_AT -> URL
  WebResource -> MAY_HAVE_CANONICAL -> CanonicalURL
  WebPage -> MAY_BELONG_TO -> Website
  WebResource -> HAS_REPRESENTATION -> WebRepresentation
  WebRepresentation -> MAY_BE_RETURNED_BY -> HTTPResponse
  WebResource -> MAY_LINK_TO -> WebResource
  WebResource -> MAY_HAVE_STRUCTURED_DATA -> StructuredData
  WebResource -> MAY_HAVE_INDEXING_METADATA -> IndexingMetadata
  WebResource -> MAY_HAVE_CACHE_METADATA -> CacheMetadata
  WebResource -> MAY_HAVE_SECURITY_METADATA -> WebSecurityMetadata
  WebMetadata -> MAY_REFERENCE -> WebProvenance

# ---------- RESOURCE IDENTITY ----------
rule resource_identity:
  WebResource SHOULD have stable semantic identity
  where persistent reference is required

rule locator_identity:
  URL != WebResource

rule multiple_locators:
  one WebResource MAY have multiple URLs

rule moved_resource:
  WebResource MAY change URL
  while preserving identity where continuity evidence supports it

# ---------- URL ----------
entity URL:
  subtype_of: ResourceLocator
  may_include:
    - scheme
    - host
    - port
    - path
    - query
    - fragment

rule URL_syntax:
  URL SHOULD conform to applicable URI/URL syntax

rule host:
  host component != Website identity

rule query:
  query parameters MAY alter represented resource or representation
  according_to application semantics

rule fragment:
  fragment generally identifies a secondary resource or document fragment
  without being sent as HTTP request target fragment component

# ---------- CANONICALISATION ----------
entity CanonicalURL:
  subtype_of: URL
  role: PreferredLocator

rule canonical:
  declared CanonicalURL indicates preferred locator
  within canonicalisation context

rule canonical_not_redirect:
  canonical declaration != HTTP redirect

rule canonical_evidence:
  canonical declaration alone MUST NOT be treated as absolute proof
  that two resources are semantically identical

# ---------- WEBSITE ----------
entity Website:
  type: WebResourceCollection
  may_include:
    - site_identifier
    - site_name
    - base_url
    - publisher
    - primary_language
    - navigation_structure

rule website:
  Website MAY contain WebPages and other WebResources

rule domain_site:
  domain name != Website
  because one domain MAY host multiple sites, services, or applications

# ---------- WEB PAGE ----------
entity WebPage:
  type: WebDocument
  may_include:
    - page_identifier
    - title
    - meta_description
    - headings
    - main_content
    - navigation
    - links
    - structured_data
    - language

rule page_title:
  document title != H1 heading
  unless content explicitly makes them equivalent

rule meta_description:
  MetaDescription is descriptive metadata
  NOT complete page content

# ---------- REPRESENTATION ----------
entity WebRepresentation:
  type: InformationRepresentation
  may_include:
    - representation_identifier
    - media_type
    - charset
    - content_encoding
    - content_language
    - content_length
    - entity_tag
    - last_modified

rule representation:
  WebRepresentation != WebResource

rule negotiation:
  one WebResource MAY produce different WebRepresentations
  according_to request headers, device, language, or content negotiation

# ---------- HTTP ----------
entity HTTPMetadata:
  type: ProtocolMetadata
  may_include:
    - request_method
    - request_headers
    - status_code
    - response_headers
    - redirect_target
    - retrieval_time

rule status_code:
  HTTP status describes response state
  NOT necessarily permanent resource state

rule success:
  2xx response generally indicates successful request processing
  according_to specific status semantics

rule redirection:
  3xx response SHOULD preserve redirect target and status code

rule error:
  4xx or 5xx response != proof of permanent resource nonexistence

# ---------- CONTENT TYPE ----------
rule content_type:
  ContentType SHOULD derive from response metadata or validated representation

rule file_extension:
  URL extension MUST NOT be treated as definitive media type

rule charset:
  Charset SHOULD be preserved
  where textual byte decoding depends on it

# ---------- LINKS ----------
entity WebLink:
  type: RelationshipMetadata
  may_include:
    - source_resource
    - target_locator
    - resolved_target
    - relation_type
    - anchor_text
    - attributes
    - context

rule link:
  link SHOULD preserve source, target, and relation context

rule anchor_text:
  AnchorText != target title

rule broken_link:
  failed retrieval of target at one time != permanent broken identity
  without temporal context

# ---------- STRUCTURED DATA ----------
entity StructuredData:
  type: SemanticMetadata
  may_be:
    - JSON_LD
    - RDFa
    - Microdata
    - RDF
    - embedded_graph_data

rule structured_data:
  StructuredData SHOULD preserve:
    - vocabulary
    - entity_identifiers
    - types
    - properties
    - relationships

rule structured_assertion:
  structured data assertion != independently verified fact

# ---------- SEMANTIC METADATA ----------
entity WebSemanticMetadata:
  type: SemanticMetadata
  may_include:
    - ontology
    - vocabulary
    - entity
    - concept
    - relationship
    - semantic_equivalence
    - confidence

rule semantic_identifier:
  stable semantic identifiers SHOULD be preferred
  over label-only matching

# ---------- INDEXING ----------
entity IndexingMetadata:
  type: DiscoveryMetadata
  may_include:
    - robots_directive
    - indexability
    - sitemap_reference
    - canonical_url
    - alternate_language
    - crawl_time
    - crawl_status

rule robots:
  robots directives SHOULD be interpreted in applicable crawler context

rule noindex:
  noindex != resource deletion

rule nofollow:
  nofollow directive != absence of hyperlink relationship

# ---------- SITEMAP ----------
entity SitemapMetadata:
  type: DiscoveryMetadata
  may_include:
    - sitemap_url
    - listed_url
    - lastmod
    - alternate_language

rule sitemap:
  sitemap inclusion supports discovery
  but != guarantee of indexing or canonical identity

# ---------- CACHE ----------
entity CacheMetadata:
  type: WebMetadata
  may_include:
    - cache_control
    - expires
    - age
    - entity_tag
    - last_modified
    - validation_state
    - cache_status

rule cached_copy:
  cached representation != guaranteed current origin representation

rule stale:
  stale cache SHOULD preserve freshness uncertainty

rule revalidation:
  cache revalidation MAY use ETag or LastModified
  according_to HTTP semantics

# ---------- ACCESSIBILITY ----------
entity WebAccessibilityMetadata:
  type: AccessibilityMetadata
  may_include:
    - document_language
    - heading_structure
    - landmarks
    - alternative_text
    - labels
    - keyboard_access
    - contrast
    - accessibility_conformance

rule accessibility:
  accessibility conformance claim SHOULD preserve assessment method

# ---------- SECURITY ----------
entity WebSecurityMetadata:
  type: SecurityMetadata
  may_include:
    - HTTPS
    - TLS_version
    - certificate
    - content_security_policy
    - HSTS
    - referrer_policy
    - authentication_requirement

rule secure_transport:
  HTTPS supports transport security
  but != truth or trustworthiness of page content

# ---------- TEMPORAL METADATA ----------
entity WebTemporalMetadata:
  type: TemporalMetadata
  may_include:
    - creation_date
    - publication_date
    - modification_date
    - retrieval_date
    - archive_date
    - last_modified_header

rule temporal:
  publication_date != retrieval_date

rule last_modified:
  HTTP LastModified != guaranteed semantic content modification date

# ---------- VERSION / SNAPSHOT ----------
entity WebResourceVersion:
  type: VersionMetadata
  may_include:
    - version_identifier
    - predecessor
    - successor
    - capture_time
    - change_description

entity WebSnapshot:
  type: ArchivedRepresentation
  may_include:
    - snapshot_identifier
    - capture_time
    - source_url
    - archive_source

rule snapshot:
  WebSnapshot SHOULD preserve capture time and source URL

rule snapshot_current:
  archived snapshot != current resource state

# ---------- PROVENANCE ----------
entity WebProvenance:
  type: ProvenanceMetadata
  may_include:
    - source_url
    - canonical_url
    - publisher
    - author
    - retrieval_time
    - crawl_process
    - transformation
    - archive_source
    - version_history

rule provenance:
  WebMetadata SHOULD preserve origin, retrieval, and transformation history

# ---------- VALIDATION ----------
validation:
  require:
    - identifiable_web_resource_or_locator

  validate_if_present:
    - resource_identifier
    - url
    - canonical_url
    - site
    - title
    - representation
    - HTTP_metadata
    - structured_data
    - indexing
    - cache
    - accessibility
    - security
    - version
    - provenance

  reject:
    - malformed_url
    - contradictory_canonical_relationship
    - representation_presented_as resource_identity
    - file_extension_presented_as definitive_content_type
    - cached_copy_presented_as guaranteed_current_origin
    - structured_data_presented_as verified_truth_without evidence
    - archived_snapshot_presented_as current_state_without temporal context

# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
  "web metadata" ~= "metadata about web resources"
  "web resource metadata" ~= "web metadata"
  "web page metadata" ~= "metadata about a web page"
  "canonical URL" ~= "preferred web locator" WHEN canonical semantics apply
  "web representation" ~= "HTTP representation" WHEN delivered through HTTP
  "web structured data" ~= "semantic web markup" WHEN embedded machine-readable semantics are intended

  PRESERVE distinctions:
    web_resource != URL
    URL != canonical_URL
    web_resource != representation
    website != domain_name
    page_title != heading
    meta_description != page_content
    canonical != redirect
    structured_data != verified_truth
    cached_copy != current_origin
    snapshot != current_state
    noindex != deleted
    HTTPS != content_truth

# ---------- CONFIDENCE ----------
CONFIDENCE:
  explicit_web_metadata:
    score: 1.00

  authoritative_resource_identifier:
    score: 1.00

  HTTP_resolved_representation:
    score: 0.98

  declared_canonical_url:
    score: 0.95

  parser_validated_structured_data:
    score: 0.95

  consistent_redirect_and_canonical_evidence:
    score: 0.95

  inferred_site_membership:
    score: 0.85

  URL_only_identity:
    score: <= 0.75

  ambiguous_resource_identity:
    score: <= 0.60
    action: preserve candidates

# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
  on_resource_discovery:
    - record URL
    - retrieve representation metadata
    - inspect HTTP state
    - resolve canonical hints
    - assign or resolve WebResource identity
    - initialise provenance

  on_content_change:
    - preserve previous WebResourceVersion where required
    - record change evidence
    - create new version or snapshot
    - update semantic and indexing metadata
    - preserve provenance

  on_url_change:
    - preserve previous URL
    - record redirect or canonical relationship
    - evaluate resource continuity
    - update provenance

  on_cache_revalidation:
    - preserve previous cache state where required
    - validate ETag or LastModified
    - update freshness state
    - preserve retrieval provenance

# ---------- FLOW HASH ----------
FLOW_HASH:
  inputs:
    - ontology
    - web_metadata_entities
    - relationships
    - identity_rules
    - URL_rules
    - HTTP_rules
    - structured_data_rules
    - indexing_rules
    - cache_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:
    - web metadata ontology
    - web resource identity model
    - HTTP representation structure
    - semantic web discovery and provenance model

  operations:
    - identify web resources
    - resolve URLs and canonical relationships
    - distinguish sites, pages, and representations
    - inspect HTTP status and headers
    - interpret content type and charset
    - traverse links
    - parse structured data
    - resolve semantic metadata
    - inspect indexing and sitemap metadata
    - evaluate cache freshness
    - inspect accessibility and security
    - traverse versions and snapshots
    - trace provenance
    - preserve uncertainty

  constraints:
    - do_not_equate_URL_with resource_identity
    - do_not_equate_canonical_with redirect
    - do_not_equate_representation_with resource
    - do_not_treat_structured_data_as verified_truth
    - do_not_treat_cached_copy_or_snapshot_as current_origin_without validation
    - preserve_URL_HTTP_temporal_version_and_provenance_context

# ---------- QUERY MODEL ----------
query:
  input:
    - web_resource_identifier
    - url
    - canonical_url
    - resource_type
    - site
    - title
    - content_type
    - structured_data_type
    - indexing_state
    - retrieval_time

  resolve:
    1. identify WebResource candidate
    2. resolve URL and canonical evidence
    3. resolve Website or WebPage context
    4. inspect WebRepresentation
    5. inspect HTTP status, headers, content type, and charset
    6. traverse links
    7. inspect structured and semantic metadata
    8. inspect indexing, cache, accessibility, and security
    9. traverse versions, snapshots, and provenance
    10. return confidence

  output:
    - web_resource
    - identifier
    - urls
    - canonical_url
    - resource_type
    - site
    - representation
    - HTTP_metadata
    - structured_data
    - indexing
    - cache
    - security
    - versions
    - provenance
    - confidence

# ---------- INFERENCE ----------
inference:
  IF authoritative WebResourceIdentifier resolves uniquely
  THEN identify WebResource
  WITH confidence = 1.00

  IF multiple URLs consistently resolve and declare same canonical target
  THEN infer shared-resource candidate
  WITH confidence <= 0.95

  IF HTTP redirect maps old locator to new locator
  THEN preserve redirect relationship
  AND evaluate identity continuity separately

  IF cached representation is stale
  THEN expose freshness uncertainty
  AND do_not assume origin content unchanged

  IF web-resource identity remains ambiguous
  THEN preserve candidate resources
  AND do_not force resolution

# ---------- OUTPUT CONTRACT ----------
output:
  ontology_entity: WebMetadata
  web_resource_identity: machine_interpretable
  locators_and_canonicalisation: explicit
  representations: distinguishable
  HTTP_metadata: preserved
  links: traversable
  structured_and_semantic_data: machine_interpretable
  indexing_and_cache: explicit
  accessibility_and_security: reportable
  versions_and_snapshots: traversable
  provenance: preserved
  uncertainty: explicit
  semantic_retrieval: enabled

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