schemaorg / suggestions-questions-brainstorming

Suggestions, questions, and brainstorming
20 stars 15 forks source link

Enumerated values for Recipe cookingMethod ? #120

Open MichaelAndrews-RM opened 6 years ago

MichaelAndrews-RM commented 6 years ago

Recipes are one of the biggest sources of structured data. Currently cookingMethod is a text value. While a text property provides data publishers with flexibility, it reduces precision. Different data publishers will describe cooking methods using different terms.

I want to propose allowing enumerated values for cookingMethod. This would provide several benefits:

The proposal overlaps with a previous discussion about cooking implements.

Fortunately, a comprehensive enumeration of cooking methods exists and is quite mature.

1, The LanguaL (for Langua aLimentaria) http://www.langual.org/ , is a food description vocabulary, represented by codes, that has been under development since the 1970s, starting in the US (FDA etc.) and currently maintained in Europe (Denmark). LanguaL has codes for several dozen cooking methods, with definitions and a multi-lingual thesaurus of cooking method terms for several European languages (CZ, DA, DE, ES, FR, IT, PT).

  1. FoodOn http://foodon.org , a "farm-to-fork" food ontology managed in Canada, has converted the Langual cooking method codes into dereferenceable URIs.

Almost 50 cooking method enumerated values are available in Langual/FoodOn. It is comprehensive, though not exhaustive (it lacks some Indian cooking methods, for example, but covers Western and East Asian methods extensively.)

Here is the list of cooking methods from Langual/FoodOn:

food cooking process:

A sample of a full cooking method profile from Langual/FoodOn:

COOKED IN WATER BATH [G0034] Cooking in a container that is placed in another container filled with water kept near the boiling point. See also Cooking in double boiler.

UF: bain-marie cooked cs: TEPELNE UPRAVENÝ VE VODNÍ LÁZNI da: TILBEREDT (OPVARMET) I VANDBAD de: IM WASSERBAD GEKOCHT es: COCINADO EN BAÑO DE AGUA fr: CUIT AU BAIN-MARIE SUR EAU FRÉMISSANTE it: COTTO A BAGNO MARIA pt: COZINHADO EM BANHO-DE-MARIA COM A ÁGUA ABIXO DE PONTO DE EBULIÇÃO

langual:G0034 FOODON:03450034 URI: http://purl.obolibrary.org/obo/FOODON_03450034

I can envision alternate ways to implement these enumerations. But first, I want to poll community interest in this proposal.

RichardWallis commented 6 years ago

A simple approach to this could be to expand the rangeIncludes of cookingMethod to include URL (or just take account of the default capabilities of Schema that any property value can also be a URL).

Then the following would be valid

"cookingMethod": "http://www.langual.org/langual_thesaurus.asp?termid=G0023", or "cookingMethod": "http://purl.obolibrary.org/obo/FOODON_03450034",

jaygray0919 commented 6 years ago

We implement the above as an @Property tree. It would be good if it were formalized as an @Recipe hierarchy.

RichardWallis commented 4 years ago

See issue #7 for the context of the move from the main Schema.org issue tracker to this repository.