Skip to content

More consistent property naming #407

@maxitg

Description

@maxitg

The problem

Property names as they are right now are very confusing. I for one cannot remember them at all, and it takes me minutes to figure out what the correct property is for something. The entire naming convention needs to be rethought, and we should come up with names that are intuitive, and easy to deduce. This is related to #376.

Issues that need to be fixed (the suggestions below are not final and need to be thought through much more carefully):

  • Some properties still use vertex and edge names instead of atom and expression.
  • There are many unnecessary words in the names, which don't add to the meaning and are outright confusing, such as "AllEvents...", "...List", etc. We should keep the property names short, simple, and, if possible, memorable.
  • We need consistency regarding the output. For example, the properties by default should always return indices of expressions instead of their contents unless the property has "...Contents" in its name.
  • We should prefer super-properties with many options and arguments instead of many options with similar names. One example is "Expressions...", which should just take arguments which would specify whether a generation, an event, or a manual foliation is requested (State after manually chosen set of events #375). It will then encompass "AllExpressions", "FinalState", "StateAfterEvent", etc.
  • Graphs should have names that describe their contents. Perhaps the form should be "VertexEdges(Hyperg|G)raph". So, for example, instead of "State", it should be "AtomsExpressionsHypergraph". Instead of "CausalGraph", it should be "EventsCausalGraph". Instead of "ExpressionsEventsGraph", it should be "ExpressionsEventsCausalGraph", etc.
  • The old names for properties should be deprecated and eventually removed to simplify things. $WolframModelProperties and "Properties" property should immediately stop returning deprecated old property names.

Metadata

Metadata

Assignees

Labels

analysisAdds or changes evolution analysis tools, e.g., `WolframModelEvolutionObject` propertiesfeatureNew functionality, or change in existing functionalitywolfram languageRequires Wolfram Language implementation

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions