WIP
This commit is contained in:
parent
63e28fc7a9
commit
86e7669e51
@ -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.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user