status updates after ~30 hours of work over the course of 1 weekend.
- made good progress with text input to web UI for Neo4j property graph back-end.
- new user workflow: instead of user providing expressions during specification of step, now expressions are separate. (Not clear how well this will work for actually use.)
- new schema: see https://physicsderivationgraph.blogspot.com/2024/05/distinguishing-scalars-vectors-and.html
I'm happy with the rewrite of the back-end since it makes the design more robust and flexible.
I've learned enough Cypher to feel comfortable continuing with this path. I'm also somewhat confident (with no basis in experience) that switching to a different property graph is feasible without having to rewrite the front-end and controller).
Developer workflow
make black_out docker run --rm -v`pwd`:/scratch --entrypoint='' -w /scratch/ property_graph_webserver mypy --check-untyped-defs webserver/app.pyTo launch the web UI,
make black_out; docker ps | grep property | cut -d' ' -f1 | xargs docker kill; date; make up
I added Selenium tests to speed up the UI validation.
Near-term plans
- Convert Latex expressions to Sympy
- Check the dimensionality and consistency of expressions using sympy
- Provide feedback to user on invalid inputs using dimensionality checks and symbol consistency
- Check steps using SymPy. Currently in the v7 code base the file "validate_steps_sympy.py" takes Latex as input, converts to SymPy, then validates step. I think the step validation should be done using pure SymPy? (rather than taking Latex as input).
Lean: Explorer how to include lean derivations per step. Can I get lean to run on my computer?
Add API support to enable curl interactions.
This would improve command line testability of workflows
Write more selenium tests.
This assumes the web UI is stable.
Make the HTML tables sortable (as already exists on https://derivationmap.net/)
Support rendering latex in HTML (as already exists on https://derivationmap.net/)
Migrating existing content into the new back end
Convert latex strings into PNG files for visualization (as already exists on https://derivationmap.net/)
Render derivations as PDF (as already exists on https://derivationmap.net/)