Web Metadata
Authors:
MArk Anthony Higgins - Sky Recursive Ai
MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: July 6th 2026
Revised Date: July 6th 2026
AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.
FLOW ALGEBRA
Ontology: Web Metadata Ontology
Domain: Metadata Ontologies > Web Metadata
Canonical URL: https://kirethresearch.org/booksai-core/ontologies/metadata-ontologies/web-metadata.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, pages, sites, links, and web representations
- preserve resource identity, canonical location, document metadata, semantic markup, technical state, versions, and provenance
- support web discovery, indexing, validation, retrieval, accessibility, semantic search, and AI consumption
- distinguish web resource identity from URL strings, representations, and cached copies
- enable machine-readable reasoning over web-resource lifecycles
# ---------- CORE ENTITY ----------
entity WebMetadata:
type: MetadataEntity
describes: WebResource
may_include:
- web_resource_identifier
- url
- canonical_url
- title
- description
- resource_type
- site
- language
- author
- publisher
- creation_date
- publication_date
- modification_date
- content_type
- charset
- status_code
- headers
- links
- structured_data
- semantic_metadata
- accessibility_metadata
- indexing_metadata
- cache_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 URL:
type: ResourceLocator
locates: WebResourceOrRepresentation
# ---------- RELATIONSHIPS ----------
relationships:
WebMetadata -> DESCRIBES -> WebResource
WebResource -> IDENTIFIED_BY -> WebResourceIdentifier
WebResource -> MAY_HAVE_URL -> URL
WebResource -> MAY_HAVE_CANONICAL_URL -> CanonicalURL
WebPage -> BELONGS_TO -> Website
WebResource -> HAS_REPRESENTATION -> WebRepresentation
WebRepresentation -> HAS_CONTENT_TYPE -> MediaType
WebResource -> MAY_LINK_TO -> WebResource
WebResource -> MAY_HAVE_STRUCTURED_DATA -> StructuredData
WebResource -> MAY_HAVE_SEMANTIC_METADATA -> SemanticMetadata
WebResource -> MAY_HAVE_ACCESSIBILITY_METADATA -> AccessibilityMetadata
WebResource -> MAY_HAVE_INDEXING_METADATA -> IndexingMetadata
WebResource -> MAY_HAVE_CACHE_METADATA -> CacheMetadata
WebResource -> MAY_HAVE_SECURITY_METADATA -> WebSecurityMetadata
WebMetadata -> MAY_REFERENCE -> WebProvenance
# ---------- WEB RESOURCE IDENTITY ----------
rule resource_identity:
WebResource SHOULD have stable identity
where persistent semantic reference is required
rule url_not_identity:
URL != WebResource
rule url_change:
WebResource MAY move between URLs
while preserving resource identity
rule multiple_urls:
multiple URLs MAY resolve to same WebResource
subject_to canonicalisation evidence
# ---------- URL ----------
entity URLMetadata:
type: WebMetadata
may_include:
- scheme
- host
- port
- path
- query
- fragment
rule url:
URL components SHOULD preserve URI syntax semantics
rule fragment:
URL fragment MAY identify subresource or document fragment
without identifying a separate fetched representation
# ---------- CANONICAL URL ----------
entity CanonicalURL:
subtype_of: URL
role: PreferredResourceLocator
rule canonical:
CanonicalURL indicates preferred URL
according_to declared canonicalisation semantics
rule canonical_not_redirect:
canonical declaration != redirect
rule canonical_not_identity_proof:
canonical link alone MAY support but does_not absolutely prove resource identity
# ---------- WEBSITE ----------
entity Website:
type: WebResourceCollection
contains: WebPage
may_include:
- site_identifier
- site_name
- base_url
- publisher
- language
- navigation_structure
rule site_page:
WebPage MAY belong to Website
rule host_not_site:
hostname != Website identity
because one host MAY contain multiple sites or applications
# ---------- WEB PAGE ----------
entity WebPage:
type: WebDocument
may_include:
- page_identifier
- title
- meta_description
- headings
- body_content
- links
- structured_data
- language
- publication_metadata
rule page_title:
page title SHOULD remain distinguishable
from heading content
rule meta_description:
meta description is descriptive metadata
and MUST NOT be treated as 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 content_negotiation:
same WebResource MAY return different representations
according_to request headers or negotiation
# ---------- HTTP STATUS ----------
entity HTTPStatusMetadata:
type: ProtocolMetadata
may_include:
- status_code
- status_class
- reason
status_classes:
- informational
- success
- redirection
- client_error
- server_error
rule status:
HTTP status applies to a response
and MUST NOT automatically define permanent resource state
# ---------- HEADERS ----------
entity HTTPHeaderMetadata:
type: ProtocolMetadata
may_include:
- header_name
- header_value
- response_or_request_context
rule header:
header interpretation MUST follow applicable HTTP semantics
# ---------- CONTENT TYPE / CHARSET ----------
rule content_type:
ContentType SHOULD describe representation media type
rule charset:
Charset SHOULD preserve character encoding
where textual representation depends on it
rule extension_not_type:
URL file extension != definitive ContentType
# ---------- LINKS ----------
entity WebLink:
type: RelationshipMetadata
may_include:
- source_resource
- target_url
- relation_type
- anchor_text
- context
- attributes
link_relations:
- canonical
- alternate
- next
- prev
- stylesheet
- author
- licence
- external
- related
rule link:
hyperlink target SHOULD preserve resolved URL and relation context
rule anchor:
AnchorText != target resource title
# ---------- STRUCTURED DATA ----------
entity StructuredData:
type: SemanticMetadata
may_be:
- JSON_LD
- RDFa
- Microdata
- RDF
- embedded_semantic_markup
rule structured_data:
StructuredData SHOULD preserve vocabulary and identifiers
rule markup_not_truth:
structured data assertion != independently verified fact
# ---------- SEMANTIC METADATA ----------
rule semantic_metadata:
WebResource MAY reference:
- ontology
- vocabulary
- entity
- concept
- relationship
- provenance
rule semantic_identifier:
stable semantic identifiers SHOULD be preferred
over labels where available
# ---------- INDEXING ----------
entity IndexingMetadata:
type: DiscoveryMetadata
may_include:
- robots_directive
- indexability
- sitemap_reference
- canonical_url
- alternate_language
- crawl_metadata
rule robots:
robots directive SHOULD be interpreted in applicable crawler context
rule noindex:
noindex directive != resource deletion
# ---------- CACHE ----------
entity CacheMetadata:
type: WebMetadata
may_include:
- cache_control
- expires
- age
- entity_tag
- last_modified
- validation_state
rule cache:
cached representation != necessarily current origin representation
rule stale:
stale cache != deleted resource
# ---------- ACCESSIBILITY ----------
entity WebAccessibilityMetadata:
type: AccessibilityMetadata
may_include:
- language
- headings
- landmarks
- alternative_text
- labels
- keyboard_access
- contrast
- accessibility_conformance
rule accessibility:
accessibility claim SHOULD preserve assessment method
where formal conformance is asserted
# ---------- SECURITY ----------
entity WebSecurityMetadata:
type: SecurityMetadata
may_include:
- transport_security
- certificate
- content_security_policy
- security_headers
- authentication_requirement
rule HTTPS:
secure transport supports connection confidentiality and integrity
but != factual trustworthiness of web content
# ---------- TEMPORAL METADATA ----------
entity WebTemporalMetadata:
type: TemporalMetadata
may_include:
- creation_date
- publication_date
- modification_date
- retrieval_date
- last_modified
rule date_distinction:
publication_date != retrieval_date
modification_date != HTTP LastModified necessarily
# ---------- VERSION ----------
entity WebResourceVersion:
type: VersionMetadata
may_include:
- version_identifier
- predecessor
- successor
- capture_time
- change_description
rule version:
material content change MAY create distinguishable WebResourceVersion
rule snapshot:
archived or cached snapshot SHOULD preserve capture time
# ---------- PROVENANCE ----------
entity WebProvenance:
type: ProvenanceMetadata
may_include:
- source_url
- canonical_url
- publisher
- author
- retrieval_time
- transformation
- archive_source
- version_history
rule provenance:
WebMetadata SHOULD preserve origin, retrieval, and transformation history
# ---------- VALIDATION ----------
validation:
require:
- identifiable_web_resource_or_url
validate_if_present:
- web_resource_identifier
- url
- canonical_url
- title
- resource_type
- site
- representation
- content_type
- status
- structured_data
- indexing
- cache
- security
- version
- provenance
reject:
- malformed_url
- contradictory_canonical_identity
- representation_presented_as resource_identity
- file_extension_presented_as definitive_content_type
- cached_representation_presented_as guaranteed_current_origin
- structured_data_presented_as verified_truth_without evidence
# ---------- SEMANTIC EQUIVALENCE ----------
SEMANTIC_EQUIVALENCE:
"web metadata" ~= "metadata about web resources"
"web page metadata" ~= "metadata about a web page"
"canonical URL" ~= "preferred URL" WHEN canonical semantics apply
"web representation" ~= "HTTP representation" WHEN delivered through HTTP
"structured data" ~= "semantic web markup" WHEN machine-readable semantics are embedded
"web provenance" ~= "web resource origin and retrieval history"
PRESERVE distinctions:
web_resource != URL
URL != canonical_URL
web_resource != representation
website != hostname
page_title != heading
meta_description != page_content
canonical != redirect
structured_data != verified_truth
cached_copy != current_origin
noindex != deleted
HTTPS != content_truth
# ---------- CONFIDENCE ----------
CONFIDENCE:
explicit_web_metadata:
score: 1.00
authoritative_resource_identifier:
score: 1.00
declared_canonical_url:
score: 0.95
HTTP_resolved_representation:
score: 0.98
parser_validated_structured_data:
score: 0.95
inferred_site_membership:
score: 0.85
URL_only_identity:
score: <= 0.75
ambiguous_web_resource_identity:
score: <= 0.60
action: preserve candidates
# ---------- UPDATE MODEL ----------
UPDATE_MODEL:
on_resource_discovery:
- identify URL
- retrieve representation metadata
- resolve canonical hints
- assign or resolve WebResource identity
- initialise provenance
on_content_change:
- preserve previous version where required
- record modification evidence
- create WebResourceVersion
- update semantic and indexing metadata
- preserve provenance
on_url_change:
- preserve previous URL
- record redirect or canonical relationship
- maintain WebResource identity where evidence supports continuity
- update provenance
on_cache_refresh:
- preserve previous cached representation where required
- validate cache state
- retrieve or revalidate origin representation
- update cache metadata and provenance
# ---------- FLOW HASH ----------
FLOW_HASH:
inputs:
- ontology
- web_entities
- relationships
- identity_rules
- URL_rules
- representation_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:
- metadata ontology
- web resource identity model
- web representation and discovery structure
- semantic web and provenance model
operations:
- identify web resources
- resolve URLs and canonical URLs
- distinguish sites, pages, and representations
- inspect HTTP metadata
- interpret content type and charset
- traverse links
- parse structured data
- apply semantic metadata
- inspect indexing directives
- evaluate cache state
- inspect accessibility and security metadata
- traverse web-resource versions
- 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_as guaranteed_current_origin
- preserve_URLs_versions_retrieval_context_and_provenance
# ---------- QUERY MODEL ----------
query:
input:
- web_resource_identifier
- url
- canonical_url
- title
- resource_type
- site
- content_type
- structured_data_type
- indexing_state
- time_constraint
resolve:
1. identify WebResource candidate
2. resolve URL and canonical hints
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 and provenance
10. return confidence
output:
- web_resource
- identifiers
- urls
- canonical_url
- resource_type
- site
- representation
- http_metadata
- structured_data
- indexing
- cache
- security
- provenance
- confidence
# ---------- INFERENCE ----------
inference:
IF authoritative WebResourceIdentifier resolves uniquely
THEN identify WebResource
WITH confidence = 1.00
IF multiple URLs declare and resolve consistent canonical target
THEN infer shared-resource candidate
WITH confidence <= 0.95
IF HTTP redirect maps old URL to new URL
THEN preserve redirect relationship
AND evaluate resource continuity separately
IF cached representation is stale
THEN mark 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
URLs_and_canonicalisation: explicit
representations: distinguishable
HTTP_metadata: preserved
links: traversable
structured_data: machine_interpretable
indexing_and_cache: explicit
accessibility_and_security: reportable
versions: traversable
provenance: preserved
uncertainty: explicit
semantic_retrieval: enabled
end flow