Add a deontic-reasoning agent skill#183
Open
MesTTo wants to merge 3 commits into
Open
Conversation
A non-monotonic + normative reasoner — Defeasible Logic DL(d) (Nute; Antoniou et al.), Standard Deontic Logic (Governatori: O/P/F, F p =def O not-p, contrary-to-duty reparation chains, dilemmas), Event Calculus + the 13 Allen interval relations + temporal deadlines, and weakest-link trust. Complements lib_nal/lib_pln: they grade how much a fact is believed; this decides what defeasibly holds and what one ought to do. Theories and plans are ordinary .metta files read by PeTTa's native loader (no bespoke parser; .dfl arrow syntax also accepted). API: dl-run / dl-run-deontic / dl-run-at, deontic-compliance / deontic-dilemmas, the non-monotonic queries (dl-what-if / dl-why-not / dl-abduce / dl-requires), Event Calculus, and trust. Golden test suite under tests/deontic/. Docs: docs/reference-lib-deontic.md.
The same theory runs through either the fast indexed Prolog kernel or the atomspace-native MeTTa engine (ground.metta / reason.metta) with identical conclusions; select with (dl-engine! native) or $OMEGACLAW_DL_ENGINE=native. Native grounding uses a semi-naive frontier fixpoint. prolog stays the default — native grounding is ~4-5x slower on grounding-heavy theories (per-operation MeTTa-eval overhead, see the perf note in ground.metta), while native is ideal for propositional plans and inspection. Docs: docs/deontic/README.md.
Exposes the lib_deontic engine to the agent as a skill (load a theory, reason, check compliance), so the agent can invoke defeasible and normative reasoning. Stacked on lib_deontic. Adds src/skills_deontic.metta.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #180.
This exposes the deontic engine to the agent as a skill. With it the agent can load a theory, run the reasoning and check compliance from inside its own loop, so defeasible and normative inference becomes an action it can take rather than something external to it. It adds src/skills_deontic.metta.