Folksonomy Engine Features

From Open Food Facts wiki
Revision as of 08:59, 24 February 2021 by Stephane (talk | contribs) (Created page with "= Introduction = This is a proposal on how the use cases described in the [https://docs.google.com/document/d/1vYOAXGCatRx_wThW-JvOiM7P6VIIlweXr4uCOAhvEgU/edit#heading=h.oxg1...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

This is a proposal on how the use cases described in the Folksonomy Engine white paper can be translated into features that can support those use cases.

This feature list is only a functional specification, those features could be implemented in many different technical ways.

Ideally, each feature would need a corresponding API in Folksonomy Engine, and corresponding UIs on the web and/or mobile.

Features

Setting an unique property of a product

The product can have only one value for this property. e.g. main_color = yellow

Adding / removing properties in property arrays of a product

Property arrays can have multiple values. e.g. colors = red, blue, green

Accessing the value(s) of a specific property of a product

Accessing the value(s) of all properties of a product

Searching for all products with a specific value of a specific property

Listing all values of a specific property and the number of products associated with each

Searching products and listing property values matching a combination of properties values

Supporting numeric property values with units

e.g. sizes, weights, dates etc. e.g. launch_date

Both the numeric value and the unit are recorded and internally converted to a standard unit for the dimension, so that they can be compared, converted to other units etc.

Searching for all products with conditions on numeric properties

e.g. package_weight > 100 g

Supporting multilingual property values with a taxonomy

e.g. main_color = en:red (matched to a colors taxonomy so that users can enter/retrieve the color in their language)

Supporting private user specific properties

e.g. stephane:any_property_i_want=any_value_i_want