Difference between revisions of "Project:Taxonomy Editor"

From Open Food Facts wiki
Jump to navigation Jump to search
(Created page with "Project 7: Build a taxonomy editor Description: Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…)...")
 
Line 1: Line 1:
Project 7: Build a taxonomy editor
+
=== Build a taxonomy editor ===
 
Description:  
 
Description:  
  
 
Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…) and link them to useful properties, at the base of nutri-score, eco-score, allergens identification and some other properties.
 
Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…) and link them to useful properties, at the base of nutri-score, eco-score, allergens identification and some other properties.
  
Each taxonomy is a DAG (directed acyclic graph) where leaves have one or more parents. Currently the taxonomy is in a raw text file in our repository: https://github.com/openfoodfacts/openfoodfacts-server/tree/main/taxonomies.
+
Each taxonomy is a DAG (directed acyclic graph) where leaves have one or more parents. Currently the taxonomy is in a raw text file in our repository: <nowiki>https://github.com/openfoodfacts/openfoodfacts-server/tree/main/taxonomies</nowiki>.
  
 
While effective for the application, this format is quite cumbersome to edit for contributors.
 
While effective for the application, this format is quite cumbersome to edit for contributors.
Line 14: Line 14:
 
The tool should:
 
The tool should:
  
help quickly find an element with a search
+
* help quickly find an element with a search
 
+
* help visualize the hierarchy of components
help visualize the hierarchy of components
+
* help visualize the component, it’s synonyms in multiple languages
 
+
* indicate inherited properties for an element, and signal when there are more than one
help visualize the component, it’s synonyms in multiple languages
+
* enable edition of those names, synonyms and properties
 
+
* run some validation on names, synonyms and properties (no duplicate, specific formats, etc.)
indicate inherited properties for an element, and signal when there are more than one
 
 
 
enable edition of those names, synonyms and properties
 
 
 
run some validation on names, synonyms and properties (no duplicate, specific formats, etc.)
 
  
 
As a bonus, it would be really interesting to know the impact of a modification on the application. For that we could imagine simple API’s (one for each taxonomy) on the openfoodfact application to visualize which products would be affected by a change. This feedback could be a really interesting tool to ensure no error is made (unexpected side effects)
 
As a bonus, it would be really interesting to know the impact of a modification on the application. For that we could imagine simple API’s (one for each taxonomy) on the openfoodfact application to visualize which products would be affected by a change. This feedback could be a really interesting tool to ensure no error is made (unexpected side effects)
Line 32: Line 27:
 
Skills required/preferred: The candidate should be creative, but also have a good logical thinking capacity and also be able to track possible problems ahead.  
 
Skills required/preferred: The candidate should be creative, but also have a good logical thinking capacity and also be able to track possible problems ahead.  
  
Slack channels: #taxonomies
+
* Slack channels: #taxonomies
 
+
* Potential mentors: Stéphane Gigandet / Alexandre Garel
Potential mentors: Stéphane Gigandet / Alexandre Garel
+
* Project duration: 350h
 
+
* Difficulty rating: Medium
Project duration: 350h
 
 
 
Difficulty rating: Medium
 

Revision as of 17:50, 11 March 2022

Build a taxonomy editor

Description:

Taxonomies are at the heart of openfoodfacts in many aspects. It helps identify components (ingredients, labels, brands,…) and link them to useful properties, at the base of nutri-score, eco-score, allergens identification and some other properties.

Each taxonomy is a DAG (directed acyclic graph) where leaves have one or more parents. Currently the taxonomy is in a raw text file in our repository: https://github.com/openfoodfacts/openfoodfacts-server/tree/main/taxonomies.

While effective for the application, this format is quite cumbersome to edit for contributors.

We would like to have a tool (online or standalone) to edit taxonomies.

Expected outcomes:

The tool should:

  • help quickly find an element with a search
  • help visualize the hierarchy of components
  • help visualize the component, it’s synonyms in multiple languages
  • indicate inherited properties for an element, and signal when there are more than one
  • enable edition of those names, synonyms and properties
  • run some validation on names, synonyms and properties (no duplicate, specific formats, etc.)

As a bonus, it would be really interesting to know the impact of a modification on the application. For that we could imagine simple API’s (one for each taxonomy) on the openfoodfact application to visualize which products would be affected by a change. This feedback could be a really interesting tool to ensure no error is made (unexpected side effects)

Technologies: On the technical side, you can choose freely, in accordance with your mentor, which technology to use, still the capacity for the contributors community to maintain it in the long run is an important criteria.

Skills required/preferred: The candidate should be creative, but also have a good logical thinking capacity and also be able to track possible problems ahead.

  • Slack channels: #taxonomies
  • Potential mentors: Stéphane Gigandet / Alexandre Garel
  • Project duration: 350h
  • Difficulty rating: Medium