Skip to content

Name collisions across spec and implementation #129

@Gozala

Description

@Gozala

Summary

Implementation defines types Tuple and Fact to describe what I believe PomoLogic calls ground atom. This gets even more confusing given that PomoDB calls EAVT (4-tuples) facts

Problem

  1. This naming conflicts make it really difficult to build up and retain mental model of the implementation logic.
  2. I think Tuple and Fact also describe same concept but in different contexts and two names here which makes things even more confusing.

Impact

Makes it difficult to learn and contribute to the project.

Solution

  1. Rename Fact so it does not collide with a name "fact" when referencing EAVT tuples. I would propose calling it Association as it associates multiple attributes and makes intuitive sense to me. Alternative it can be called GroundAtom which would be very clear reference to a terminology used in the spec.
  2. Avoid name Tuple given how overloaded it is, even EAVTs are frequently referred as tuples (even spec the spec does it). Again I think Association seems like an intuitive term for me but anything less overloaded would do.
  3. Assuming Tuple and Fact do indeed refer to the concept of "ground atom" in different contexts it would be good to use same name (e.g. there are multiple Program types for different contexts) or alternatively have same term with different suffix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions