https://github.com/allofphysicsgraph/ui_v8_website_flask_neo4j
version 8 of the Physics Derivation Graph UI: a flask-based website with Neo4j property graph backend
https://github.com/allofphysicsgraph/ui_v8_website_flask_neo4j
flask knowledge-graph neo4j physics python python3
Last synced: 4 months ago
JSON representation
version 8 of the Physics Derivation Graph UI: a flask-based website with Neo4j property graph backend
- Host: GitHub
- URL: https://github.com/allofphysicsgraph/ui_v8_website_flask_neo4j
- Owner: allofphysicsgraph
- Created: 2024-05-25T10:54:22.000Z (about 2 years ago)
- Default Branch: gh-pages
- Last Pushed: 2025-05-07T13:19:47.000Z (about 1 year ago)
- Last Synced: 2025-08-20T02:03:09.558Z (9 months ago)
- Topics: flask, knowledge-graph, neo4j, physics, python, python3
- Language: Cypher
- Homepage: https://allofphysics.com
- Size: 2.71 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 38
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
The Physics Derivation Graph is web server for building, managing, and exploring mathematical derivations in physics (and potentially other fields). Knowledge management software tailored for structured mathematical reasoning.
The Physics Derivation Graph combines a user-friendly interface with rigorous mathematical capabilities. The intended audience includes physicists, mathematicians, and other researchers who need to create, manage, and validate derivations.
The Physics Derivation Graph supports investigation of the following claims:
- Claim: a directed graph exists which describes all of mathematical Physics.
- Claim: the graph representation is machine parsable.
This repo contains a new web interface and a new API and a new backend -- Neo4j property graph. The previous version that is currently used for is
# Status
The website and back-end work. The Docker images are not currently in use for
# Quickstart
Launching locally will require generating the certificates for https. See
To start the containers, run
```bash
make up
```
and then, in a web browser, go to
Some pages require Google authentication. You can either
- edit your Google Auth Platform Clients on
or
- remove the `@login_required` decorator in `pdg_app.py`
Because software is in Docker containers (for reproducibility), the versions of the Docker software you're using matter. The software in this repo has been tested with
* `docker compose version` yields "2.34.0-desktop.1" on a Mac Airbook arm64; "v2.2.1" on a Mac Airbook amd64
* Compose file format 3.6
* `docker --version` yields "Docker version 28.0.4, build b8034c0" on a Mac Airbook arm64; "Docker version 20.10.11" on a Mac Airbook amd64
See for compatibility of versions.
## Project contents
Two containers managed using docker compose: Neo4j (port 7474) and a Flask-based Python web server (port 5000)
## Neo4j for newbies
A graph has "nodes" and "edges". A property graph extends that
data structure to allow "properties" for both the nodes and the edges.
In general, nodes in Neo4j are described using the following jargon:
:label {key1:'value1', key2:'value2'}
where the key-value pairs are properties.
"Node labels, relationship types, and properties (the key part) are case sensitive." [citation](https://neo4j.com/docs/getting-started/current/appendix/graphdb-concepts/)
# Goals
[x] Document Derivations. Provide a structured way to represent mathematical derivations by breaking them into steps, expressions, and symbols.
[x] Facilitate Collaboration and Sharing by using open source and publicly accessible information.
[x] Enable programmatic interaction with the data using both a web interface and API.
# Licensing
The content of this repo is covered by the
[Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/)
# Software Requirements
* Docker
* `git`
* `make`
* a web browser
## Key features
The architecture is Neo4j-Flask-Gunicorn-Nginx all inside a Docker container on an Ubuntu VPS that includes UFW
The Docker images include the software needed for the webserver (Python Flask)
* Latex for rendering equations as PNG and PDF
* SymPy for validating steps in derivations
* Lean
* Graphviz for static visualization of graphs
* d3js for interactive visualizations of graphs
See VERSIONS.md for details.
## Debugging
To enter the container for debugging purposes,
```bash
docker exec -it `docker ps | grep ui_v8_website_flask_neo4j_webserver | cut -d' ' -f1` /bin/bash
```
Stuck? Contact the author for help! (See the bottom of .)
## Contributing
See CONTRIBUTING.md for guidance.
# Licensing
Unless otherwise noted, all source code is covered by the [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/)
#EOF