This commit is contained in:
Hassan Abedi 2026-03-24 09:47:25 +01:00
parent 63e28fc7a9
commit 86e7669e51

View File

@ -440,6 +440,56 @@ Here is a useful one-sentence definition:
--- ---
## How Useful This Subset Would Be
This subset would be genuinely useful, but only for the right jobs.
It would be useful for:
- understanding a Geolog theory in simpler rule form,
- debugging the rule part of a theory,
- exporting some Geolog programs to Datalog tools,
- comparing Geolog evaluation with Datalog evaluation,
- and teaching the parts of Geolog that are close to rule-based database logic.
It would be especially useful for theories that are mostly:
- relation-based,
- rule-based,
- and not dependent on creating fresh objects during chase.
Good examples include:
- graph reachability,
- transitive closure,
- propagation rules,
- dependency rules,
- and many database-style logic programs.
But this subset would not cover the full point of Geolog.
It becomes less useful when a theory depends on:
- existential conclusions,
- equality-heavy reasoning,
- or the full meaning of native functions.
So the best way to think about it is this:
- it is a very useful **bridge**,
- a useful **debugging view**,
- and a useful **restricted compilation target**,
- but it is not a replacement for full Geolog.
If built well, the ideal behavior would be:
- if a Geolog program fits inside the subset, export it cleanly,
- if it does not fit, explain clearly why not.
That alone would make the subset valuable.
---
## Final Summary ## Final Summary
If you only want a practical translator, the right plan is: If you only want a practical translator, the right plan is:
@ -451,4 +501,3 @@ If you only want a practical translator, the right plan is:
- reject existential and equality-heavy features. - reject existential and equality-heavy features.
That gives a subset that is useful, understandable, and realistic to translate automatically. That gives a subset that is useful, understandable, and realistic to translate automatically.