Ambiguous description of 'ingredients', 'recipeInstructions' in Recipe #165

Closed
LJWatson opened this Issue Nov 17, 2014 · 27 comments

Projects

None yet
@LJWatson

http://schema.org/ingredients
http://schema.org/recipeInstructions

The description of the "ingredients" property in the Recipe schema is "An ingredient used in the recipe".

The property name is plural and the description singular, which makes its scope ambiguous. Should the property be applied to a collection of ingredients, or to an individual ingredient, or doesn't it matter?

Suggest changing the description to provide greater clarity.

@danbri
Contributor
danbri commented Nov 18, 2014

Good point, thanks. There was an initial bad idea to use a plural 's' on property names whenever a property was repeatable. We cleaned most of those a while back - http://www.w3.org/wiki/WebSchemas/Singularity - but this looks to have slipped through, perhaps due to mass nouns values like 'butter', 'sugar' making it not so obviously wrong as using 'actors' to refer to a single person.

Perhaps "An ingredient used in the recipe." should become "An ingredient used in the recipe e.g. "sugar", "egg"? Then "Use repeated properties for each ingredient."

@danbri danbri added this to the sdo-stantz release milestone Nov 18, 2014
@danbri danbri self-assigned this Nov 18, 2014
@scor
Contributor
scor commented Nov 18, 2014

This change was requested more than 2 years ago at http://www.w3.org/wiki/WebSchemas/Singularity#Follow_up_.28June_29th.2C_2012.29 as follow up but it was just never made. So yes, we're good to make that change here.

@twamarc
Contributor
twamarc commented Nov 18, 2014

It's maybe important also in definition to state that this is different from 'activeIngredient' used for drugs. Just to disambiguate.

@LJWatson

A slightly shorter version might be:

“A single ingredient used in the recipe, for example sugar, flour or garlic.”

At the risk of cluttering up the wrong bug, the same problem exists with recipeInstructions, the definition for which is currently “The steps to make the dish.”

On the assumption that the property should be applied to a single instruction, suggest:

“A step or instruction involved in making the recipe.”

@danbri danbri changed the title from Ambiguous description of 'ingredients' in Recipe to Ambiguous description of 'ingredients', 'recipeInstructions' in Recipe Jan 29, 2015
@danbri danbri referenced this issue Apr 9, 2015
Closed

Meta bug for sdo-gozer release - vocab issues #418

19 of 36 tasks complete
@danbri danbri added a commit that closed this issue Apr 16, 2015
@danbri danbri Reworded description of 'ingredients', 'recipeInstructions' to avoid …
…ambiguity.

Fixes #165
Thanks, Leonie!
949f4ca
@danbri danbri closed this in 949f4ca Apr 16, 2015
@scor
Contributor
scor commented Apr 16, 2015

This is not fixed. I think we should rename the 'ingredients' property to be singluar according to my comment from http://www.w3.org/wiki/WebSchemas/Singularity#Follow_up_.28June_29th.2C_2012.29:

'ingredients' from Recipe ought to be singular since 1) its definition is "An ingredient used in the recipe." and 2) the example shows a list of multiple instances of ingredients. Finally 'ingredient' (singular) is consistent with the property defined in the Google documentation for Rich snippets - Recipes and used in microformats, microdata and RDFa. (I know this is not schema.org, but it will make the migration to schema.org markup easier and less error prone).

@danbri
Contributor
danbri commented Apr 16, 2015

OK, re-opening.

@danbri danbri reopened this Apr 16, 2015
@danbri
Contributor
danbri commented Apr 16, 2015

questions -

  • Would adding singular form i.e. 'ingredient' (superceding 'ingredients') fix things adequately?
  • same for recipeInstruction(s)?
  • should we add Product or Thing as another expected value, to open door to more structure? or delay that and just fix basics here?
@scor
Contributor
scor commented Apr 16, 2015

Would adding singular form i.e. 'ingredient' (superceding 'ingredients') fix things adequately?

yes IMO

same for recipeInstruction(s)?

I think this one is fine. According to the examples of https://developers.google.com/structured-data/rich-snippets/recipes and http://schema.org/Recipe, the instructions are not meant to be a list of single instructions, but rather a single text value (with maybe an HTML list).

should we add Product or Thing as another expected value, to open door to more structure? or delay that and just fix basics here?

just fix the basics here.

@danbri
Contributor
danbri commented Apr 16, 2015

Ah, so you prefer the current "The steps to make the dish." for recipeInstructions, rather than proposed "A step or instruction involved in making the recipe."...

@vholland
Contributor

It would be nice if recipeInstructions took an ItemList so one could mark up instructions separately and specify their order.

@scor
Contributor
scor commented Apr 16, 2015

Ah, so you prefer the current "The steps to make the dish." for recipeInstructions, rather than proposed "A step or instruction involved in making the recipe."...

Yes. It is also what Google and schema.org currently recommends and show in their examples.

@DDeering

should we add Product or Thing as another expected value, to open door to more structure? or delay that and just fix basics here?

Dan, if you're referring to adding a Product or Thing type for the ingredients property, I like that idea. It would provide more structure to the recipe markup and disambiguate things a little more, in my opinion.

@rvguha
Contributor
rvguha commented Apr 22, 2015

Rather than just rename it to ingredient, can we make it 'recipeIngredient' so that it is less ambiguous?

@thadguidry

@rvguha partially less ambiguous... I have a recipe for natural dog food and another recipe for Playdoh...so perhaps instead humanFoodRecipeIngredient ;)

@danbri
Contributor
danbri commented Apr 22, 2015

So, can we all live with:

  • recipeIngredient “A single ingredient used in the recipe, for example sugar, flour or garlic.”
  • recipeInstructions "The steps to make the dish." (Text or ItemList)

(with appropriate supersededBy assertions for the earlier (quite widely used) spellings.)

@thadguidry

+1 Can live with recipeIngredient and recipeInstructions

@danbri danbri added a commit that closed this issue Apr 22, 2015
@danbri danbri Updated recipe vocabulary: ingredients becomes recipeIngredient, and
recipeInstructions allows ItemList values.
Fixes #165
10ae2f3
@danbri danbri closed this in 10ae2f3 Apr 22, 2015
@LJWatson

@danbri
If the intention is to markup an individual ingredient or instruction (by putting the property on each list item in a list for example), then I think the property name should be singular. If the intention is to markup a collection of ingredients or instructions (by putting the property on a list for example), then it should be plural.

@chaals
Contributor
chaals commented Apr 22, 2015

Sigh. I can live with recipeingredient.

But "ingredients" in english are almost always things that are in food - apart from recipes the term is used for the same thing in food labelling, and that is pretty much it. So we weren't IMHO saving ourselves from a real ambiguity, for once.

It seems to me that recipe would be appropriate for playdough, dog food, perfume and soap. Would using it in those ways cause problems?

@danbri
Contributor
danbri commented Apr 22, 2015

@chaals note that @twamarc pointed out above the common other use of ingredients - for medicines and drugs. http://schema.org/Recipe has always been pretty oriented towards food recipes, even if the description is ... curt. The more extended use of Recipe you outline slides quickly into metaphor. At Google we have noticed that publishers do try to stretch Recipe to cover all kinds of other situations, hence https://developers.google.com/structured-data/rich-snippets/recipes "Recipe markup should be used for content about preparing a particular dish. For example, "facial scrub" or "party ideas" are not valid names for a dish", i.e. "Recipe for success!", howtos etc are out of scope.

@LjWatson - yes I think that fits the newly updated distinction between recipeIngredient (which would be repeated for each single ingredient) vs recipeInstructions (which is all the instructions in a blob of text, or in a list that would be the single value of one recipeInstructions property).

@LJWatson

@Danbri

I dislike recipeInstruction and recipeIngredient. They both seem unwieldy, and I’m not sure how either will stop people trying to use Recipe for unintended purposes?

@danbri
Contributor
danbri commented Apr 22, 2015

@LjWatson it has already been "recipeInstructions" for several years. For the other property, @scor asked that "ingredients" become "ingredient" for the good reason you've also given re singular (essentially this job was overlooked a few years ago when we de-pluralized many other properties that ended in a final 's'). The change from "ingredient" to "recipeIngredient" comes as both @twamarc and @rvguha noted that this is one of several cases where a very general word is used to mean something very specific. Changing it won't stop people's behavior, but it is an alternative to @chaals suggestion that the scope of the recipe terms could be broadened (e.g. from food to include e.g. soap making) i.e. bringing it closer to its dictionary reading.

It may not be the most elegant package but i think it is reasonable. We already do have recipeCategory, recipeYield, recipeCuisine, recipeInstructions. We will never achieve 100% internal stylistic consistency but I still think this change will be progress.

@nicolastorzec

Questions:

  • What's the plan regarding food items in general?
  • And how do they relate to recipes and ingredients.
  • Especially, a food item can exist independently of a recipe (i.e. it's not just an ingredient)

For example, I may be interested in capturing information about natural food items (e.g. an apple) and prepared food items (e.g. Ben & Jerry chocolate ice cream), independently of the recipes they may be involved in, if any.

Specifically, an apple can exist without being part of a recipe, and I may want to describe its country of origin, scientific name, and nutrition facts.

@ekgs1
ekgs1 commented Apr 28, 2015

A distinction should be made between food items and ingredients. Ingredients can be captured for both a recipe and an item. It could be beneficial though to be able to link a recipe to a specific item in addition to ingredients for example "tabasco-original-red-sauce". This would support the use case of a recipe promoting a specific food item instead of hot sauce in general.

@chaals
Contributor
chaals commented Apr 28, 2015

Drugs are close enough to food items that I think trying to preserve the distinction is interesting to ontologists, but less so in the "real world", where people do want recipes for play-dough and soap - and most of those people also have recipes for bread and a medicinal herbal tea mix.

@thadguidry

@nicolastorzec @ekgs1 @danbri @chaals
Currently our "Food" is just a text type now and sits under here: http://schema.org/foodWarning and http://schema.org/ingredients

I opened a new issue #458 that addresses the need for a new Food type.

@rvguha
Contributor
rvguha commented Apr 29, 2015

Food/nutrition 'labels' are quite interesting and important. It would be
nice to have a detailed vocabulary for it.

guha

On Tue, Apr 28, 2015 at 5:55 PM, Thad Guidry notifications@github.com
wrote:

@nicolastorzec https://github.com/nicolastorzec @ekgs1
https://github.com/ekgs1 @danbri https://github.com/danbri @chaals
https://github.com/chaals
Currently our "Food" is just a text type now and sits under here:
https://schema.org/foodWarning

I opened a new issue #458
#458 that addresses this
need.


Reply to this email directly or view it on GitHub
#165 (comment).

@danbri
Contributor
danbri commented Apr 29, 2016

re Food/nutrition, GS1's external extension covered this in epic detail - http://blog.schema.org/2016/02/gs1-milestone-first-schemaorg-external.html (cheeseFirmness etc :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment