https://github.com/openculinary/knowledge-graph
The RecipeRadar knowledge graph stores and provides access to recipe and ingredient relationship information.
https://github.com/openculinary/knowledge-graph
flask
Last synced: 5 months ago
JSON representation
The RecipeRadar knowledge graph stores and provides access to recipe and ingredient relationship information.
- Host: GitHub
- URL: https://github.com/openculinary/knowledge-graph
- Owner: openculinary
- License: agpl-3.0
- Created: 2019-12-04T14:05:34.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-05-12T15:08:29.000Z (about 1 year ago)
- Last Synced: 2025-05-12T16:28:06.060Z (about 1 year ago)
- Topics: flask
- Language: Python
- Homepage:
- Size: 917 KB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# RecipeRadar Knowledge Graph
The RecipeRadar knowledge graph stores and provides access to recipe and ingredient relationship information.
This information includes facts such as 'lettuce is-a vegetable' as well as potential ingredient substitutions.
### Product Parsing
Ingredient descriptions generally include some combination of a quantity (i.e. `1 kg`) and a product (i.e. `potatoes`). Since they are written as unstructured text in most recipes, parsing products can be a challenge.
The [`backend`](https://codeberg.org/openculinary/backend/) service provides the source-of-truth for product metadata, and it makes this available at the [`/products/hierarchy`](https://codeberg.org/openculinary/backend/src/commit/cd029da0bd9caab7f490f5299018934db10ed0ec/reciperadar/api/products.py#L51-L70) endpoint.
The knowledge graph loads this data at runtime, and we build an in-process search-engine index that allows us to find candidate ingredient matches, which are then narrowed down to a single best-match per ingredient line.
## Install dependencies
Make sure to follow the RecipeRadar [infrastructure](https://codeberg.org/openculinary/infrastructure) setup to ensure all cluster dependencies are available in your environment.
## Development
To install development tools and run linting and tests locally, execute the following commands:
```sh
$ make lint tests
```
## Local Deployment
To deploy the service to the local infrastructure environment, execute the following commands:
```sh
$ make
$ make deploy
```