Changes

Jump to navigation Jump to search
Created page with " === Project 9: Build an automatic rule editing engine === Description: Every day, Open Food Facts receives a lot of data from different sources, but the main contribution c..."

=== Project 9: Build an automatic rule editing engine ===
Description:

Every day, Open Food Facts receives a lot of data from different sources, but the main contribution comes from users using a smartphone and contributing photos, data, answers to simple questions, etc. While this is a really efficient way to get data, quality is an important challenge. We have contributors capable of observing data, finding anomalies and applying corrections.

For example, one might observe that if a yogurt has sugar in it, it must belong to the “sweetened yogurt” category (and not only to the yogurt category).

Many corrections can lead to massive edits, and there is a dedicated tool. But a correction might be immediately overwritten by a new contribution. This is discouraging for advanced contributors. This one shot modification process does not permit capitalizing on fixes.

While thinking about it with some advanced contributors, we imagined a solution, which would involve While the implementation of rule resolution and application in the server code is quite easy, the hard part is to have a tool for contributors to find and test rules before capitalizing them.

Expected outcomes:

You will have to build a tool to give advanced contributors  the ability to write rules that are applied automatically to data.

* The tool must help users write rules (either directly or maybe with an interface) and validates their syntactic correctness.
* It must provide a way to test the impact of a rule. The ability to cross the result (and non result) with a search, or easily test different versions of the rule, might help digging into the results and refine it.
* The tool must provide a management of rule ownership and versioning.
* The tool can be online or standalone. It may use the api to measure the impacts of a rule (a specific api can be developed by the team, if needed), or maybe directly the mongo database, or if needed a specific database (but synchronization would have to be considered).
* Optionally, gamification might be considered. We have a gamification service to collect achievements, and rule impact could be registered.
* Optionally we could consider if the rule building service might also become, in the future, the service that applies rules to incoming edits.

Skills required/preferred:  A first experience with databases is necessary, Mongo knowledge would be a plus. An understanding of things like regular expressions is also required..

* Slack channels: #product-opener
* Potential mentors: Alexandre Fauquette / Pierre Slamich
* Project duration: 350h
* Difficulty rating: Hard

Navigation menu