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
Download Code
Copy to Clipboard