allofphysicsgraph / ui_v8_website_flask_neo4j

version 8 of the Physics Derivation Graph UI: a flask-based website with Neo4j property graph backend
https://allofphysics.com
0 stars 0 forks source link
flask knowledge-graph neo4j physics python python3

This repo contains a new web UI (still using flask) and a new backend -- Neo4j. The previous version that is currently used for https://allofphysics.com/ is https://github.com/allofphysicsgraph/ui_v7_website_flask_json

Status

The website and back-end work locally.

Quickstart

To start the containers, run

docker kill $(docker ps -q); make up

and then, in a web browser, go to http://localhost:5000

As a developer repeatedly restarting the containers, I use

make black_out; docker ps | grep property | cut -d' ' -f1 | xargs docker kill; date; make up

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

Project contents

Two containers: Neo4j (port 7474) and a flask 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.

Nodes and edges in Neo4j are described using the following jargon:

:label {key1:'value1', key2:'value2'}

where the key-value pairs are properties. The schema is effectively the labels and keys for edges and nodes.

"Node labels, relationship types, and properties (the key part) are case sensitive." (citation)[https://neo4j.com/docs/getting-started/current/appendix/graphdb-concepts/]

Licensing

Creative Commons Attribution 4.0 International License

Software Requirements

Contributing

Before submitting code via a pull request, please open an issue (feature or bug) and describe your question or intent.

Python code is formatted using Black.