Web reasoning internals
StandardWebReasoning is an opt-in bridge from immutable HTTP observations to Bayesian technology and authentication hypotheses. It performs no requests and never marks a claim confirmed or rejected.
HttpEvidenceExecutor
|
v
typed Evidence -------> Standard web ontology
| |
v v
Expression trace -----> Bayesian policy likelihood
|
v
Weak / Strong Hypothesis
|
v
Planner / Verifier
Standard ontology
The profile defines categories for technology, server software, programming languages, web frameworks, UI frameworks, and authentication mechanisms. Product concepts include nginx, Apache HTTP Server, PHP, Laravel, Livewire, Sanctum, HTTP Basic, and HTTP Bearer.
Relationships retain domain meaning. For example:
laravel --is_a----------> web-framework --is_a--> technology
laravel --implemented_in-> php
livewire --depends_on----> laravel
sanctum --depends_on----> laravel
Installation preflights ontology and rule identities on owned clones, then registers them idempotently. The default DecisionLoop remains empty so hosts explicitly choose the domain profile they trust.
Fingerprint rules
Rules use ASCII case-insensitive substring matching for protocol and product tokens while preserving the exact contributing evidence IDs in their expression traces.
| Observation | Conclusion | Strength |
|---|---|---|
Server contains nginx or Apache |
web-server hypothesis | Weak |
X-Powered-By contains PHP |
language=php | Weak |
X-Powered-By names Laravel, or Laravel session plus XSRF cookies |
framework=laravel | Strong |
| Bounded body sample contains a Livewire DOM marker | ui-framework=livewire | Weak |
| Laravel session plus XSRF cookies | authentication=sanctum | Weak |
WWW-Authenticate advertises Basic or Bearer |
authentication mechanism | Strong |
The Sanctum conclusion deliberately remains weak because the cookie pair is compatible with Sanctum but is not exclusive proof. An isolated XSRF cookie produces no Laravel or Sanctum claim. The corresponding planner action is knowledge-only: re-observing the pair records action success without confirming the Sanctum hypothesis.
Bayesian behavior
Each rule declares a prior and deterministic P(E|H) / P(E|not H) policy likelihood. These fixed weights have not yet been calibrated against a labelled field corpus, so the posterior is a reproducible ranking signal rather than a measured real-world frequency. The fixed-point implementation produces the same result on every platform. A hypothesis records the contributing evidence and rationale, making every planner input explainable.
Only passive or active verifiers may move a hypothesis to Confirmed or Rejected. Re-running reasoning cannot reverse a verifier-owned state.
Usage
let knowledge = KnowledgeBase::new();
let mut decision_loop = DecisionLoop::new(config);
StandardWebReasoning::new()?
.install(&knowledge, decision_loop.rules_mut())?;
Evidence can then be inserted in atomic batches. The next decision-loop reasoning turn evaluates the standard rules before planning.
The resulting hypotheses can be connected to the opt-in standard web attack profile.