Line 1: |
Line 1: |
| [[Category:Knowledge panels]] | | [[Category:Knowledge panels]] |
− | Knowledge panels are json data that describe content to be displayed to the user. | + | Knowledge panels are an extensible way to convey data, knowledge and recommendations to users when they view a product page or a facet page (e.g. a category page). They are used on the Open Food Facts website ([[Product Opener]]) and mobile app ([[Project Smoothie|Flutter application]]), and could be used in the future in 3rd party apps. |
| | | |
− | They are currently used on the [[Project Smoothie|new smoothie flutter application]] and on the [[Product Opener]] web platform.
| + | Knowledge panels: |
| | | |
| + | * are generated server side by [[Product Opener]] and sent to clients through the API |
| + | * turn structured raw data (e.g. nutrition data) into structured ready-to-display data (e.g. a nutrition table), knowledge (e.g. why it's important to reduce salt) and recommendations (e.g. how to reduce salt) |
| + | * contain a limited set of display elements (e.g. titles, icons, images, tables etc.) |
| + | * are hierarchical (panels can contain subpanels that can be shown opened or that users can drilldown on) |
| + | |
| + | == Reference == |
| Introduction: https://openfoodfacts.github.io/openfoodfacts-server/introduction/knowledge-panels/ | | Introduction: https://openfoodfacts.github.io/openfoodfacts-server/introduction/knowledge-panels/ |
| | | |
| Reference documentation: https://openfoodfacts.github.io/openfoodfacts-server/reference/api/#get-/api/v2/product/-barcode--fields-knowledge_panels | | Reference documentation: https://openfoodfacts.github.io/openfoodfacts-server/reference/api/#get-/api/v2/product/-barcode--fields-knowledge_panels |
| | | |
− | == Testing it == | + | == Existing and proposed new knowledge panels == |
| + | Most of the product page on the OFF website and mobile app is generated through knowledge panels (with the exception of product images and [[Product Attributes]]). |
| + | |
| + | == Technical issues and questions == |
| + | |
| + | === Testing it === |
| Knowledge panels are already deployed for every body ! | | Knowledge panels are already deployed for every body ! |
| | | |
Line 17: |
Line 28: |
| '''FIXME:''' eventually move this part of this to https://openfoodfacts.github.io/openfoodfacts-server/introduction/api/ | | '''FIXME:''' eventually move this part of this to https://openfoodfacts.github.io/openfoodfacts-server/introduction/api/ |
| | | |
− | == The flexibility of a static page ? == | + | === The flexibility of a static page ? === |
| * Use the same system as for static pages, with much more Q&A ? | | * Use the same system as for static pages, with much more Q&A ? |
| * Add a mode to get the raw file without the Product Opener UI | | * Add a mode to get the raw file without the Product Opener UI |
Line 24: |
Line 35: |
| * Would allow to display them on the web as well | | * Would allow to display them on the web as well |
| | | |
− | == What should we do with the native Wikidata integration on Android ? == | + | === What should we do with the native Wikidata integration on Android ? === |
| * Move the logic on the server, with caching, and let iOS and other apps benefit as well ? | | * Move the logic on the server, with caching, and let iOS and other apps benefit as well ? |
| * Blend the Wikidata info with our own | | * Blend the Wikidata info with our own |
| * System to add Wikidata IDs to categories, labels… (working as a special language, using the existing translation system ?) | | * System to add Wikidata IDs to categories, labels… (working as a special language, using the existing translation system ?) |
| | | |
− | == When should network calls be made ? == | + | === When should network calls be made ? === |
| * The apps would attempt to call all labels at setup, and then refresh on some heuristic | | * The apps would attempt to call all labels at setup, and then refresh on some heuristic |
| * On demand call when clicking on an attribute or a label | | * On demand call when clicking on an attribute or a label |
| | | |
− | == Support for HTML embedding on Android == | + | === Support for HTML embedding on Android === |
| * https://stackoverflow.com/questions/2116162/how-to-display-html-in-textview | | * https://stackoverflow.com/questions/2116162/how-to-display-html-in-textview |
| * https://github.com/openfoodfacts/openfoodfacts-androidapp/issues/2205 | | * https://github.com/openfoodfacts/openfoodfacts-androidapp/issues/2205 |
Line 41: |
Line 52: |
| * Support for webviews | | * Support for webviews |
| | | |
− | == Support for HTML embedding on iOS == | + | === Support for HTML embedding on iOS === |
| * https://github.com/openfoodfacts/openfoodfacts-ios/pull/192/files | | * https://github.com/openfoodfacts/openfoodfacts-ios/pull/192/files |
| * Authorized HTML tags | | * Authorized HTML tags |
Line 47: |
Line 58: |
| * Support for webviews | | * Support for webviews |
| | | |
− | == Support for HTML embedding on Flutter == | + | === Support for HTML embedding on Flutter === |
| * https://pub.dev/packages/flutter_html | | * https://pub.dev/packages/flutter_html |
| * https://pub.dev/packages/flutter_widget_from_html | | * https://pub.dev/packages/flutter_widget_from_html |