Add Suitability to Restricted Diets to Recipe #845

Closed
bbdg opened this Issue Oct 16, 2015 · 47 comments

Projects

None yet
@bbdg
Contributor
bbdg commented Oct 16, 2015

Many recipe sites that already use schema.org markup have tags or categories for restricted diets such as Gluten Free or Low Fat but no way to markup those attributes formally. I would like to propose a closed set of common dietary restrictions that could be used to tag such recipes.

Here are some examples of where these kinds of concepts are used on popular, existing recipe sites.

  • All Recipes has a section for Special Diets that includes Dairy Free, Low Sodium, etc.
  • Food Network has sections for Gluten Free, Low Sodium and others.
  • Food.com has a faceted search category called Diet & Nutrition (seen under the Advanced Search drop-down with queries such as chicken recipes), which includes categories such as Diabetic, Kosher, Vegetarian and others.

In addition to these large, general purpose recipe sites, there are smaller boutique sites that address specific dietary needs.

While there are a many different types (and sub-types) of diets, providing a small list of common ones should cover most of the prevalent use cases and simplify the task of the recipe publisher. The list I propose (in a forthcoming pull request) was inspired by the meal types offered by major airlines. While there is no official standard as to the specific list of dietary names, there is a large degree of overlap among the world's major international airlines. The list was adapted to suitability to the recipe domain and use of those dietary types in major recipe sites.

@bbdg
Contributor
bbdg commented Oct 16, 2015

This carves off a piece of #458.

As mentioned in that thread, it follows the suggestion of airline meal codes (such as listed by vktravels), with certain irrelevant codes like Baby Meal removed.

That thread also brought up allergens in the context of proposed Unicode emoji for common allergy-sensitive ingredients. This proposal is related, in that some diets focus on avoiding ingredients due to sensitivity, such as lactose intolerance. However, this proposal focuses on more coarse-grained categories of foods that users might want to avoid -- anything with gluten, anything with lactose, etc. It seems that many recipe sites offer categories at this more coarse-grained level.

@bbdg
Contributor
bbdg commented Oct 16, 2015

There is also overlap here with some comments in #607. This proposal (suitableForDiet) subsumes parts of the allergens and dietaryLaws properties discussed there.

As discussed above, suitableForDiet is purposefully at a different level of granularity than allergens. It also combines dietary laws with other reasons for dietary restriction, such as lifestyle choice (vegetarianism) or general health (low sodium diet). By being more broad, it avoids the need to introduce new categories of dietary restrictions in the future, and simplifies tagging for the publishers.

@danbri danbri self-assigned this Oct 22, 2015
@danbri
Contributor
danbri commented Oct 22, 2015

Thanks for this and for the pull request including examples (often we miss out on getting examples with new vocab).

Let me just lift out the main terms from the pull request here for wider visibility: a property suitableForDiet and an enumerated type, RestrictedDiet whose enumerated instances are currently: DiabeticDiet, GlutenFreeDiet, HalalDiet, HinduDiet, KosherDiet, LowCalorieDiet, LowLactoseDiet, LowSaltDiet, VeganDiet, VegetarianDiet.

I'm personally a big fan of this proposal, but would encourage at least a little consideration here of scope and potential overlaps before proceedings.

If we do something like this for Recipe we should at least consider whether it can also improve other areas of our schemas that touch on this issue. For example http://schema.org/FoodEstablishmentReservation and http://schema.org/FoodEstablishment - perhaps now or later we might add a catersForRestrictedDiet property linking a FoodEstablishment to these same values. Or perhaps home-cooked recipes and professional restaurants use different terminology, different granularity?

Similarly there is the question of food-oriented Product description, medical/health etc. I do not want to encourage us to attempt to solve everything relating to food, nutrition and diets in one set of schema changes. However we should have a rough sense how these areas fit together. @mgh128 and @ekgs1 may be able to comment from the GS1 perspective. My feeling is that these proposed terms are useful, and may also be relevant to describing 'food establishments' and potentially products. And that they will be complemented later by richer food packaging label -style product data most likely in an external extension to schema.org from GS1.

Pinging schema.org steering group: @scor @mfhepp @pmika @chaals @tilid @shankarnat @ajax-als @rvguha @vholland --- any views?

@vholland
Contributor

Is this pull request #846?

It looks good to me. I am assuming we will just wave our hands at the idea of "kosher" and not get into the nitty details about different distinctions of kosher.

Adding something like catersForRestrictedDiet to FoodEstablisment makes sense as well.

@bbdg
Contributor
bbdg commented Oct 22, 2015

Yes, this is pull request #846.

About the various types of kosher, I see this as a trade-off between being as accurate as possible and reducing burden on the publishers. I felt like including too many sub-types would make it more likely that publishers would either get it wrong or not bother at all. There is a similar trade-off with vegetarianism.

@mgh128
mgh128 commented Oct 22, 2015

Thanks for alerting me and Eric Kauz at GS1 to this discussion and proposal.
We're also supportive of better indications of suitability for specific diet types, especially as we have some colleagues who are coeliac and others who follow a strict kosher diet.

Within the GS1 web vocabulary, we have a few ways of indicating diet type:

We currently have a code list gs1:DietTypeCode with instances representing:

COELIAC
DIETETIC (specially prepared or processed for people on restrictive diets)
FREE FROM GLUTEN
HALAL
KOSHER
ORGANIC
VEGAN
VEGETARIAN
WITHOUT BEEF
WITHOUT PORK

The property gs1:dietCode links a gs1:FoodBeverageTobaccoProduct to an instance of gs1:DietTypeCodeDetails, which in turn links via gs1:dietType to one or more instances of gs1:DietTypeCode above and may also link via gs1:dietTypeSubCode to a free-text localised string (rdf:langString) that indicates a specific diet sub-type, such as a Pareve diet type sub code of Kosher.

We also have a property gs1:dietTypeDescription that expects a free text (rdf:langString) description of the diet if this is not stated in the list of diets.

We have another code list gs1:PackagingMarkedDietAllergenCode with instances representing dietary/allergen information marked on the packaging of a product, with the following instances:

APPROVED BY ASTHMA AND ALLERGY ASSOCIATION
APPROVED FOR TUBE FEEDING
BIOLOGICAL (fairly synonymous with 'Organic' - indicates that the product has been marked as having been produced with the use of feed or fertilizer of plant or animal origin, without use of chemically formulated fertilisers, growth stimulants, antibiotics or pesticides)
CALORIES PER PORTION (indicates that the product has a marking with the calories per portion contained in the product)
CONTAINS LATEX
CONTAINS PVC
CONTAINS PVC WITHOUT PHTHALATES
DIET PRODUCT 450-800 KCAL PER DAY (approved for a 450-800 kilocalorie/day diet by the appropriate authority of the target market for the product)
DIET PRODUCT 800-1200 KCAL PER DAY
HALAL
IK-KIES-BEWUST (used in the Netherlands to indicate a cholesterol-reducing product)
GEZONDE_KEUZE_KLAVERTJE (used in the Netherlands to indicate products low in saturated fat, trans fatty acids, sugar and salt)
KOSHER
LACTASE ENZYME
LOW ON PHENYLALANINE
LOW ON SUGAR
MOTHER'S MILK SUBSTITUTE
NUTRITION SUPPLEMENT (for approved nutrition supplements)
NYCKELHAL MARK (lean product mark used in Norway, Sweden and Denmark)
VEGETARIAN

We also have a code list gs1:PackagingMarkedFreeFromCode with instances corresponding to freedom from:

ARTIFICIAL COLOURING
ARTIFICIAL FLAVOURING
ARTIFICIAL PRESERVATIVES
CHOLESTEROL
CLONED FOOD
DAIRY
EGG
FISH
GLUTEN
LACTOSE
LATEX
LEGUME PROTEIN
MILK
MILK PROTEIN
NATURAL GLUTEN
PEANUTS
PROTEIN
PVC
SOYA
SUGAR
TRANS FATS

as well as other instances for where the packaging indicates reduced levels of:

LACTOSE
PROTEIN
TRANS FAT
VERY LOW GLUTEN
WITHOUT ADDED SALT
WITHOUT ADDED SUGAR
WITHOUT ADDED SWEETENER

A further code list gs1:PackagingMarkedLabelAccreditationCode indicates various national and global certification marks present on the packaging - not only related to diet but also sustainability (e.g. FSC, MSC) and ethical and environmental considerations (e.g. Leaping Bunny / cruelty-free cosmetics etc., RSPO mark for certified sustainable palm oil)

All of these values have been derived from previous work on the GS1 Global Data Dictionary, GDSN data model and GS1 Global Product Classification, all of which are the result of a global multi-sector industry-driven consensus-based standardisation process over the last 40+ years, involving over 1 million companies including most manufacturers and major retailers.

I hope this info is useful for filling in some of the gaps - but I realise that there may also be some gaps we need to fill.
We appear to be missing any specific code for diabetic or Hindu - probably something we should address soon.

We do have a fairly extensive set of nutritional information properties which are used in combination with an explicit gs1:nutrientBasisQuantity so that there is no ambiguity about whether the nutritional values are expressed per pack, per serving, per 100g / 100ml of product. We have already shared that info with the ScheMed folks who are developing a healthcare extension to schema.org. I have attached a PDF document that we recently shared with them, which gives an indication of the coverage and some draft examples using JSON-LD.

Thanks to the alert from Dan Brickley last week, we're also looking into extending the GS1 web vocabulary to support provision of nutritional information for meals at restaurants and takeaways, building on the requirements from the forthcoming FDA legislation in the USA - so we should have a further draft update to our GS1 web vocabulary to support that very soon.

Best wishes,

  • Mark

On 22 Oct 2015, at 16:35, Dan Brickley notifications@github.com wrote:

Thanks for this and for the pull request including examples (often we miss out on getting examples with new vocab).

Let me just lift out the main terms from the pull request here for wider visibility: a property suitableForDiet and an enumerated type, RestrictedDiet whose enumerated instances are currently: DiabeticDiet, GlutenFreeDiet, HalalDiet, HinduDiet, KosherDiet, LowCalorieDiet, LowLactoseDiet, LowSaltDiet, VeganDiet, VegetarianDiet.

I'm personally a big fan of this proposal, but would encourage at least a little consideration here of scope and potential overlaps before proceedings.

If we do something like this for Recipe we should at least consider whether it can also improve other areas of our schemas that touch on this issue. For example http://schema.org/FoodEstablishmentReservation and http://schema.org/FoodEstablishment - perhaps now or later we might add a catersForRestrictedDiet property linking a FoodEstablishment to these same values. Or perhaps home-cooked recipes and professional restaurants use different terminology, different granularity?

Similarly there is the question of food-oriented Product description, medical/health etc. I do not want to encourage us to attempt to solve everything relating to food, nutrition and diets in one set of schema changes. However we should have a rough sense how these areas fit together. @mgh128 and @ekgs1 may be able to comment from the GS1 perspective. My feeling is that these proposed terms are useful, and may also be relevant to describing 'food establishments' and potentially products. And that they will be complemented later by richer food packaging label -style product data most likely in an external extension to schema.org from GS1.

Pinging schema.org steering group: @scor @mfhepp @pmika @chaals @tilid @shankarnat @ajax-als @rvguha @vholland --- any views?

β€”
Reply to this email directly or view it on GitHub.

@ekgs1
ekgs1 commented Oct 22, 2015

In the GS1 standards around diet types, we decided not to try to manage the sub-types around Kosher since there are so many varieties some of which are managed regionally (for example CRC Kosher which is a Chicago based certification). Instead we established a Diet Type of Kosher using a code list and managed specific types of Kosher using a Diet Sub-type which is an open string. As mentioned below, this concern can also apply to other diet types.

Best Regards

Eric

From: Benjamin Douglas [mailto:notifications@github.com]
Sent: Thursday, October 22, 2015 12:54 PM
To: schemaorg/schemaorg schemaorg@noreply.github.com
Cc: Eric Kauz eric.kauz@gs1.org
Subject: Re: [schemaorg] Add Suitability to Restricted Diets to Recipe (#845)

Yes, this is pull request #846#846.

About the various types of kosher, I see this as a trade-off between being as accurate as possible and reducing burden on the publishers. I felt like including too many sub-types would make it more likely that publishers would either get it wrong or not bother at all. There is a similar trade-off with vegetarianism.

β€”
Reply to this email directly or view it on GitHubhttps://github.com/schemaorg/schemaorg/issues/845#issuecomment-150289637.

CONFIDENTIALITY / DISCLAIMER: The contents of this e-mail are confidential and are not to be regarded as a contractual offer or acceptance from GS1 (registered in Belgium).
If you are not the addressee, or if this has been copied or sent to you in error, you must not use data herein for any purpose, you must delete it, and should inform the sender.
GS1 disclaims liability for accuracy or completeness, and opinions expressed are those of the author alone.
GS1 may monitor communications.
Third party rights acknowledged.
(c) 2012.

@danbri
Contributor
danbri commented Oct 22, 2015

Thanks @mgh128 . Could you perhaps post the PDF somewhere in the public Web so that it can be found from Github too? The (presumably emailed) attachment didn't seem to get linked from the issue automatically.

This confirms my suspicion that we are dealing here with overlapping domains but very different levels of detail. I propose that we continue with these efforts in (communicative) parallel - looking for opportunities to align each list but not attempt any 'grand reconciliation' into a single effort. It may be useful to create a table of equivalences and perhaps make those machine-readable in some way. At least for humans a simple 'see also' table that compares/contrasts would be useful. But considering "NATURAL GLUTEN" and "GlutenFreeDiet" for example, there are often close but indirect matches.

For the record we have a precedent for similar but related terms between restaurants and recipes: http://schema.org/recipeCuisine and http://schema.org/servesCuisine.

Aside to @mgh128 re "APPROVED BY ASTHMA AND ALLERGY ASSOCIATION", "APPROVED FOR TUBE FEEDING" - on the former, there appear to be several such associations. On the latter, ... approved by whom? (we should probably move the GS1 details to a separate issue when you're ready for such things).

@mgh128
mgh128 commented Oct 22, 2015

Hi Dan,

Yes - I'll check with Eric if we can host that PDF document somewhere on
the GS1 Digital website - but if not, then I'm happy to post it as a public
Google doc or on one of my own websites to provide a public link to it.

Yes, I agree that continuing the development in parallel and keeping the
communications open helps everyone to identify gaps, without being coerced
into a reconciliation effort at this stage. We already have some
rdfs:seeAlso / SKOS / rdfs:subClassOf / rdfs:subPropertyOf links from our
GS1 web vocabulary to related terms in schema.org and elsewhere, so we'd be
happy to extend those further to cross-reference to related terms in
extensions of schema.org - ideally on a reciprocal basis as things
stabilise.

Regarding 'approved for tube feeding', our rdfs:comment says 'The item is
physically marked that it is approved for tube feeding by the appropriate
authority of the target market.' (i.e. it depends on which country [target
market] the product is intended for)

For 'approved by the asthma and allergy association', the rdfs:comment is
'Definitions made by the asthma and allergist association.'
Eric Kauz can probably be more specific about which association that is.
Ideally our comment should also include a URL to the website of the
specific association, to avoid ambiguity, if a specific organisation is
intended, rather than just the relevant one for the intended target market.

Thanks - this is all very useful feedback.

Best wishes,

  • Mark

On Thu, Oct 22, 2015 at 6:58 PM, Dan Brickley notifications@github.com
wrote:

Thanks @mgh128 https://github.com/mgh128 . Could you perhaps post the
PDF somewhere in the public Web so that it can be found from Github too?
The (presumably emailed) attachment didn't seem to get linked from the
issue automatically.

This confirms my suspicion that we are dealing here with overlapping
domains but very different levels of detail. I propose that we continue
with these efforts in (communicative) parallel - looking for opportunities
to align each list but not attempt any 'grand reconciliation' into a single
effort. It may be useful to create a table of equivalences and perhaps make
those machine-readable in some way. At least for humans a simple 'see also'
table that compares/contrasts would be useful. But considering "NATURAL
GLUTEN" and "GlutenFreeDiet" for example, there are often close but
indirect matches.

For the record we have a precedent for similar but related terms between
restaurants and recipes: http://schema.org/recipeCuisine and
http://schema.org/servesCuisine.

Aside to @mgh128 https://github.com/mgh128 re "APPROVED BY ASTHMA AND
ALLERGY ASSOCIATION", "APPROVED FOR TUBE FEEDING" - on the former, there
appear to be several such associations. On the latter, ... approved by
whom? (we should probably move the GS1 details to a separate issue when
you're ready for such things).

β€”
Reply to this email directly or view it on GitHub
#845 (comment)
.

@mgh128
mgh128 commented Oct 22, 2015

Sorry - the link to the PDF file I previously attempted to post is now http://tinyurl.com/GS1webVocabNutrition

Best wishes,

  • Mark

On 22 Oct 2015, at 18:58, Dan Brickley notifications@github.com wrote:

Thanks @mgh128 . Could you perhaps post the PDF somewhere in the public Web so that it can be found from Github too? The (presumably emailed) attachment didn't seem to get linked from the issue automatically.

This confirms my suspicion that we are dealing here with overlapping domains but very different levels of detail. I propose that we continue with these efforts in (communicative) parallel - looking for opportunities to align each list but not attempt any 'grand reconciliation' into a single effort. It may be useful to create a table of equivalences and perhaps make those machine-readable in some way. At least for humans a simple 'see also' table that compares/contrasts would be useful. But considering "NATURAL GLUTEN" and "GlutenFreeDiet" for example, there are often close but indirect matches.

For the record we have a precedent for similar but related terms between restaurants and recipes: http://schema.org/recipeCuisine and http://schema.org/servesCuisine.

Aside to @mgh128 re "APPROVED BY ASTHMA AND ALLERGY ASSOCIATION", "APPROVED FOR TUBE FEEDING" - on the former, there appear to be several such associations. On the latter, ... approved by whom? (we should probably move the GS1 details to a separate issue when you're ready for such things).

οΏ½
Reply to this email directly or view it on GitHub.

@bbdg
Contributor
bbdg commented Oct 23, 2015

I also like the idea of applying these labels to restaurants and restaurant reservations. I did some browsing around restaurant review and reservation sites and it looks like the granularity level is roughly similar. There is little consistency among these sites in terms of organization of filters/facets, but at least the terminology and granularity level of restricted diet types is similar to what recipe sites use.

Yelp has a filter on restaurant "Category", which mixes cuisine (New American and Asian Fusion), meal type (Breakfast & Brunch and Dessert) and other features. Included in this list are diets "Gluten-Free", "Vegan" and "Vegetarian".

Opentable has a "Cuisine" filter that mostly aligns with regional food types such as Brazilian Steakhouse and Contemporary Asian. Included in this list are diets "Halal", "Kosher", "Vegan" and "Vegetarian/Vegan".

Zagat has a "Cuisine" filter that mixes a number of concepts such as restaurant type (Bistro and Gastropub), region (German and Argentinian) and representative foods (Burger and Ramen). Included in this list are diets "Gluten Free", "Kosher", "Vegan" and "Vegetarian".

@danbri danbri pushed a commit that referenced this issue Jan 13, 2016
Dan Brickley Added suitableForDiet to examples and release notes.
For #845
c44427a
@danbri
Contributor
danbri commented Jan 13, 2016

Thanks all for the discussion and attention to detail. I have merged in #846 from @bbdg (technically via #957 as it needed to target sdo-deimos instead of sdo-phobos branch), so that we can handle any 'final polish' tweaks against a concrete proposal. I've also published this as work-in-progress for our next release candidate:

One specific concern on the wording of the suitableForDiet property. The meaning is clear enough overall but "Followers of this diet are allowed to eat the dish." has a top-down feel to it. Can we say the same thing in a way that covers dietary choices that are not externally imposed?

@vholland
Contributor

How about "A dish which follows the guidelines of this diet"?

@danbri
Contributor
danbri commented Jan 13, 2016

That describes the inverse relationship pretty well

@danbri
Contributor
danbri commented Jan 13, 2016

Could we live with "Indicates a dietary restriction for which this recipe is suitable, e.g. diabetic, halal etc."

/cc @bbdg

@bbdg
Contributor
bbdg commented Jan 13, 2016

The wording "Indicates a dietary restriction..." sounds fine to me.

@danbri danbri pushed a commit that referenced this issue Jan 13, 2016
Dan Brickley Improved wording of suitableForDiet following #845 discussion. 811667b
@danbri
Contributor
danbri commented Jan 13, 2016

Ok, updated to "Indicates a dietary restriction for which this recipe is suitable, e.g. diabetic, halal etc.".

@ekgs1
ekgs1 commented Jan 13, 2016

Hi, minor comment. diets are sometimes based on religious guidelines and are not necessarily deemed as restrictions which have a stronger meaning. Guidelines can be observed more or less closely. Perhaps "Indicates a dietary restriction or guideline for which this recipe is suitable, e.g. diabetic, halal etc."

@danbri danbri pushed a commit that referenced this issue Jan 14, 2016
Dan Brickley Added "or guideline" following @ekgs1 's suggestion in #845. f87b5b2
@danbri
Contributor
danbri commented Jan 14, 2016

Thanks @ekgs1, I wasn't conscious of that nuance but it makes sense - I have amended the definition.

@danbri
Contributor
danbri commented Jan 16, 2016

@scor @shankarnat @mfhepp @tmarshbing @pmika @chaals @ajax-als @vholland @rvguha - please take a look; I'm queuing this for our next release.

@vholland
Contributor

+1

@chaals
Contributor
chaals commented Jan 22, 2016

it's on my to-do list

@shankarnat
Contributor

This is on my to-do list too, would respond by Monday. Thanks!

@shankarnat
Contributor

I am fine with just approaching the dietary restriction separately and I look at the pull request at #846 .

I have some observation on the enums http://sdo-deimos.appspot.com/RestrictedDiet ->
I am not sure do we mean by Hindu Diet mean ? There is no specific diet in Hinduism -> It varies from vegetarian to non-vegetarian and is very varied. I am not sure if this is a good category as it is quite varied. Maybe, I am mistaken in my inference. Can you help here ?

Also wanted to add a set of vegetarian food where people do not eat Onions, Garlic etc. This is called as Jain Food. https://en.wikipedia.org/wiki/Jain_vegetarianism . There are specific restaurants which do that. Not sure if it is a large enough phenomenon to add Jain Diet as one of the values in Enum.

Rest all look good to me.

@danbri Let me know if there anything else that you need us to look at.

Thanks,
Shankar N

@bbdg
Contributor
bbdg commented Jan 24, 2016

Thank you for your comments, Shankar.

On the issue of Hindu Diet, admittedly there are not as uniform a set of rules as for Halal or Kosher, but it seemed appropriate to add it for completeness. It is naturally up to the recipe creator to determine this, but it most likely would at least imply avoiding beef. Also, when combined with Vegetarian, it would likely imply lacto-vegetarian as opposed to the ovo-lacto variant more common in Europe.

As a practical matter, one of the inspirations for this list was the set of airline meal types offered by international airlines. Many carriers with flights to and from India include Hindu Diet as a category of special meal, for example in this list by Singapore Airlines.

As for Jain vegetarianism, I considered it but left it out of this list because the global population is relatively small and I wanted to start with coverage of major diets. We could certainly add it later if this attribute gains traction and a need for further specialization was evident. There are a number of flavors (excuse the pun) of vegetarianism that could be added in the future as well if the need arose, including pareve kosher, raw vegan, etc. For the first iteration, I didn't want to muddle the vegetarian story too much.

@danbri
Contributor
danbri commented Jan 24, 2016

Currently, "A diet conforming to Hindu dietary practices."

How about A diet conforming to Hindu dietary practices, in particular, beef-free."

... or similar.

We might also benefit from an example and wording tweak for Recipe that shows multiple dietary restrictions on a single recipe.

@shankarnat
Contributor

@bbdg Thanks for the explanation, the vegetarian definition is quite complex . I just wanted to be sure on what we are saying by Hindu diet and now it makes sense, given it is a more international definition used by Singapore airlines etc.
I agree Jain is a small segment and we can add it later as well.
+1 from me. Thanks!

@danbri
Contributor
danbri commented Jan 27, 2016

re-pinging @scor @mfhepp @tmarshbing @pmika @chaals @ajax-als for more views.

Based on this discussion and looking around a bit, my inclination is to deal with vegetarian/vegan distinctions in more detail in future revisions, but make the amendment I propose above for Hindu diet, mentioning beef-free. That said if there is a clear, small, and stable set of vegan/veggie-related codes we could adopt quickly that would be fine by me too. Reminder, current proposed list is http://sdo-deimos.appspot.com/RestrictedDiet :

DiabeticDiet
GlutenFreeDiet
HalalDiet
HinduDiet
KosherDiet
LowCalorieDiet
LowFatDiet
LowLactoseDiet
LowSaltDiet
VeganDiet
VegetarianDiet

@mgh128
mgh128 commented Jan 27, 2016

In the GS1 web vocabulary, we define the following instances of DietTypeCode:

COELIAC (Denotes a product that can be safely consumed by a person with coeliac disease. Coeliac disease is caused by a reaction to gladin (a gluten protein found in wheat) and similar proteins found in other crops.)
DIETETIC (Denotes a product that is specially prepared or processed for people on restrictive diets.)
FREE_FROM_GLUTEN
HALAL
KOSHER
ORGANIC
VEGAN
VEGETARIAN
WITHOUT_BEEF
WITHOUT_PORK

We also define the following instances of PackagingMarkedFreeFromCode:

FREE_FROM_ ...
ARTIFICIAL_COLOURING
ARTIFICIAL_FLAVOURING
ARTIFICIAL_PRESERVATIVES
CHOLESTEROL
CLONED_FOOD
DAIRY
EGG
FISH
GLUTEN
LACTOSE
LATEX
LEGUME_PROTEIN
MILK
MILK_PROTEIN
NATURAL_GLUTEN
PEANUTS
PROTEIN
PVC
SOYA
SUGAR
TRANSFAT

REDUCED_LACTOSE
REDUCED_PROTEIN
REDUCED_TRANSFAT

VERY_LOW_GLUTEN
WITHOUT_ADDED_SALT
WITHOUT_ADDED_SUGAR
WITHOUT_ADDED_SWEETENER

We also define various instances of AllergenTypeCode to refer to specific allergens that may be present or are known to be present.

I hope that the above are useful to consider. As far as I understand it, these are based on terms in the GS1 Global Data Dictionary and have been compiled based on input from multiple manufacturers regarding the diet markings for their products.

More info, instances and definitions at:

http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:DietTypeCode&release=1
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:PackagingMarkedFreeFromCode&release=2
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:PackagingMarkedDietAllergenCode&release=2
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gdd:cl:PackagingMarkedLabelAccreditationCode&release=2

Best wishes,

Mark Harrison

On 27 Jan 2016, at 18:15, Dan Brickley notifications@github.com wrote:

re-pinging @scor @mfhepp @tmarshbing @pmika @chaals @ajax-als for more views.

Based on this discussion and looking around a bit, my inclination is to deal with vegetarian/vegan distinctions in more detail in future revisions, but make the amendment I propose above for Hindu diet, mentioning beef-free. That said if there is a clear, small, and stable set of vegan/veggie-related codes we could adopt quickly that would be fine by me too. Reminder, current proposed list is http://sdo-deimos.appspot.com/RestrictedDiet :

DiabeticDiet
GlutenFreeDiet
HalalDiet
HinduDiet
KosherDiet
LowCalorieDiet
LowFatDiet
LowLactoseDiet
LowSaltDiet
VeganDiet
VegetarianDiet

β€”
Reply to this email directly or view it on GitHub.

CONFIDENTIALITY / DISCLAIMER: The contents of this e-mail are confidential and are not to be regarded as a contractual offer or acceptance from GS1 (registered in Belgium).
If you are not the addressee, or if this has been copied or sent to you in error, you must not use data herein for any purpose, you must delete it, and should inform the sender.
GS1 disclaims liability for accuracy or completeness, and opinions expressed are those of the author alone.
GS1 may monitor communications.
Third party rights acknowledged.
(c) 2016.

@citizencontact

I think that referring to representations of food that are controlled by
other groups is a mistake.

For example, Organic in the United States is a regulatory certification
that can change overtime. Better to link to a USDA Organic page or reg
to indicate it. (e.g.
http://www.ams.usda.gov/grades-standards/organic-standards )
Other legal entities may define it differently.

Kosher is a similar thing. The Orthodox Union certifies Kosher (and
there are competing organizations). And once you indicate Kosher, there
are several aspects, like for Passover, or whether Meat, Dairy or
"Parve" (Parve includes eggs and fish). Also, there are aspects of how
food is prepared....

And even on the medical ones like allergies, it might be better to allow
others to analyze recipes or indicate things about disease that may
change over time.

By helping to add a few of the many tags, you may be making identifying
things harder, not easier. Or worse, less accurate.

Daniel Bennett
daniel@citizencontact.com

On 1/27/2016 1:44 PM, Mark Harrison wrote:

In the GS1 web vocabulary, we define the following instances of
DietTypeCode:

COELIAC (Denotes a product that can be safely consumed by a person
with coeliac disease. Coeliac disease is caused by a reaction to
gladin (a gluten protein found in wheat) and similar proteins found in
other crops.)
DIETETIC (Denotes a product that is specially prepared or processed
for people on restrictive diets.)
FREE_FROM_GLUTEN
HALAL
KOSHER
ORGANIC
VEGAN
VEGETARIAN
WITHOUT_BEEF
WITHOUT_PORK

We also define the following instances of PackagingMarkedFreeFromCode:

FREE_FROM_ ...
ARTIFICIAL_COLOURING
ARTIFICIAL_FLAVOURING
ARTIFICIAL_PRESERVATIVES
CHOLESTEROL
CLONED_FOOD
DAIRY
EGG
FISH
GLUTEN
LACTOSE
LATEX
LEGUME_PROTEIN
MILK
MILK_PROTEIN
NATURAL_GLUTEN
PEANUTS
PROTEIN
PVC
SOYA
SUGAR
TRANSFAT

REDUCED_LACTOSE
REDUCED_PROTEIN
REDUCED_TRANSFAT

VERY_LOW_GLUTEN
WITHOUT_ADDED_SALT
WITHOUT_ADDED_SUGAR
WITHOUT_ADDED_SWEETENER

We also define various instances of AllergenTypeCode to refer to
specific allergens that may be present or are known to be present.

I hope that the above are useful to consider. As far as I understand
it, these are based on terms in the GS1 Global Data Dictionary and
have been compiled based on input from multiple manufacturers
regarding the diet markings for their products.

More info, instances and definitions at:

http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gddπŸ†‘DietTypeCode&release=1
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gddπŸ†‘PackagingMarkedFreeFromCode&release=2
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gddπŸ†‘PackagingMarkedDietAllergenCode&release=2
http://apps.gs1.org/GDD/Pages/clDetails.aspx?semanticURN=urn:gs1:gddπŸ†‘PackagingMarkedLabelAccreditationCode&release=2

Best wishes,

Mark Harrison

On 27 Jan 2016, at 18:15, Dan Brickley notifications@github.com wrote:

re-pinging @scor @mfhepp @tmarshbing @pmika @chaals @ajax-als for
more views.

Based on this discussion and looking around a bit, my inclination is
to deal with vegetarian/vegan distinctions in more detail in future
revisions, but make the amendment I propose above for Hindu diet,
mentioning beef-free. That said if there is a clear, small, and stable
set of vegan/veggie-related codes we could adopt quickly that would be
fine by me too. Reminder, current proposed list is
http://sdo-deimos.appspot.com/RestrictedDiet :

DiabeticDiet
GlutenFreeDiet
HalalDiet
HinduDiet
KosherDiet
LowCalorieDiet
LowFatDiet
LowLactoseDiet
LowSaltDiet
VeganDiet
VegetarianDiet

β€”
Reply to this email directly or view it on GitHub.

CONFIDENTIALITY / DISCLAIMER: The contents of this e-mail are
confidential and are not to be regarded as a contractual offer or
acceptance from GS1 (registered in Belgium).
If you are not the addressee, or if this has been copied or sent to
you in error, you must not use data herein for any purpose, you must
delete it, and should inform the sender.
GS1 disclaims liability for accuracy or completeness, and opinions
expressed are those of the author alone.
GS1 may monitor communications.
Third party rights acknowledged.
(c) 2016.

β€”
Reply to this email directly or view it on GitHub
#845 (comment).

@ekgs1
ekgs1 commented Jan 27, 2016

I believe Kosher can be viewed as a general term for a diet although it is useful to also have a means to include the specific type of Kosher that applies to a product. In the GS1 Vocabulary, we used a diet type which is a general diet classification with a managed code list and a diet sub-type which is a string field which allows for very specific types of kosher that can be locally managed.

@danbri
Contributor
danbri commented Jan 27, 2016

The fact that ultimately we are pointing at recipe Web pages does take the pressure off somewhat

  • the page can add more nuance, detail and variations
  • the recipe user has ultimate control and responsibility for their cooking

Perhaps linking from each of our codes to relevant Wikipedia entry will help indicate the subtleties

@citizencontact

I think that using links/URLs instead of strings may be better generally
when you are referring to:

  • a regulatory or certified process that oversees the rules (for
    Kosher, OU, for Organic in the US - USDA web page, etc)
  • a scientific or medical authority for allergy or other issues that
    require medical knowledge
  • for generic terms, like vegetarian, locovore, vegan etc, then
    Wikipedia would be good.
  • fall back for specific things where there is no good link, then use
    Wikipedia or other general knowledge page

I have found that if you pretend to know the proper term for things that
are regulated and can change overtime or based on different authorities,
your terms will only interfere. Also, by using a URL, it is a unique
identifier globally. Another advantage that can help this standard is
that the authority can even have a validation process, either by reverse
listing the recipe web page or by having an automatic checker of the
recipe for validation on the fly.

Do you really want to get in the middle of Organic wars, where there are
several regulatory/certification authorities or actual religious wars?
By allowing other "domains" to self regulate and name, then it makes
this process easier than having a list with variations, IMO.

Daniel Bennett
daniel@citizencontact.com

On 1/27/2016 2:38 PM, Dan Brickley wrote:

The fact that ultimately we are pointing at recipe Web pages does take
the pressure off somewhat

  • the page can add more nuance, detail and variations
  • the recipe user has ultimate control and responsibility for their
    cooking

Perhaps linking from each of our codes to relevant Wikipedia entry
will help indicate the subtleties

β€”
Reply to this email directly or view it on GitHub
#845 (comment).

@bbdg
Contributor
bbdg commented Jan 28, 2016

@citizencontact I agree that using URL's represents higher accuracy, but I am not sure they serve the ultimate purpose of this markup. I am imagining the recipe publishers on one side, the users on the other side, and search engines in the middle. The markup then serves to bind all of these agents together.

URL's add extra burden on the publishers to find a site that accurately and authoritatively represents their assumptions about the dietary restrictions of their recipes. The publishers, sometimes small companies or even casual bloggers, have a wide range of backgrounds in such things and this presents a potentially large burden to research.

URL's would also add to the fragmentation of the space. Even if there are multiple authorities on what constitutes Kosher, if one publisher prefers one authority and a different publisher the other, we have opened up a distinction for something that many users would consider practically equivalent. For a given query or filter, a user then may be only seeing a partial set of relevant results.

Finally, from the search engine's perspective, the ecosystem has becomes harder to manage with URL's. A search engine is not going present URL's for users to filter on, nor require users to explicitly search for URL's as recipe modifiers. So the onus is on the search engine to map query terms with markup. This process is more stable and complete with a fixed vocabulary as opposed to arbitrary URL's that will change over time according to fads and developments in the various authority organizations.

At the end of the day, users are trying to find recipes and recipes are trying to be found. That process now often takes the form of recipe publishers using keywords in recipe titles and categories, sometimes in unnatural ways. This markup is meant to replace titles like "Yummy Lentil Soup (Kosher)" with simply "Yummy Lentil Soup" and a separate markup of "Kosher". Providing a fixed vocabulary reduces the guesswork on the part of the publishers and increases the efficacy of search engines to tailor search results to users. The trade-off, for sure, is accuracy, but in a browsy space such as recipes I would argue that it is worth it.

@mgh128
mgh128 commented Jan 28, 2016

Hi Daniel,

I totally agree. In fact we are already using web URIs throughout our GS1 web vocabulary for code lists and their instances.

At present the initial release of the GS1 web vocabulary only has definitions in English but we are using language tags (e.g. @en ) in the vocabulary definition file and do have national GS1 member organisations in over 100 countries who already take care of translating many of our technical standards and guidelines into local languages, so hopefully we'll be adding multi-lingual labels and comments in a future release.

You can already see the code lists I mentioned at:

http://gs1.org/voc/DietTypeCode
http://gs1.org/voc/AllergenTypeCode
http://gs1.org/voc/PackagingMarkedFreeFromCode
http://gs1.org/voc/PackagingMarkedLabelAccreditationCode
http://gs1.org/voc/GrowingMethodCode

The codes within http://gs1.org/voc/PackagingMarkedLabelAccreditationCode do reference external accreditation / certification agencies, which I think aligns with the very good point you were making in your previous e-mail about which agency is defining whether something is organic, kosher etc.
By using web URIs we could in future also link to those agencies or even specific documents that define their certification / accreditation criteria and procedures.

I wasn't intending to claim that we have a comprehensive list - just letting people know what is already available in the GS1 web vocabulary to help with dietary indications. Our focus is often more on describing products (including food products) rather than recipes, although we have recently updated our nutritional information properties to support not only nutritional information specified in EU 1169/2011 but also more recent US FDA requirements for nutritional information about meals in restaurants and takeaway food establishments.

I hope this helps.

Best wishes,

  • Mark Harrison

On 27 Jan 2016, at 21:33, Daniel Bennett notifications@github.com wrote:

I think that using links/URLs instead of strings may be better generally
when you are referring to:

  • a regulatory or certified process that oversees the rules (for
    Kosher, OU, for Organic in the US - USDA web page, etc)
  • a scientific or medical authority for allergy or other issues that
    require medical knowledge
  • for generic terms, like vegetarian, locovore, vegan etc, then
    Wikipedia would be good.
  • fall back for specific things where there is no good link, then use
    Wikipedia or other general knowledge page

I have found that if you pretend to know the proper term for things that
are regulated and can change overtime or based on different authorities,
your terms will only interfere. Also, by using a URL, it is a unique
identifier globally. Another advantage that can help this standard is
that the authority can even have a validation process, either by reverse
listing the recipe web page or by having an automatic checker of the
recipe for validation on the fly.

Do you really want to get in the middle of Organic wars, where there are
several regulatory/certification authorities or actual religious wars?
By allowing other "domains" to self regulate and name, then it makes
this process easier than having a list with variations, IMO.

Daniel Bennett
daniel@citizencontact.com

On 1/27/2016 2:38 PM, Dan Brickley wrote:

The fact that ultimately we are pointing at recipe Web pages does take
the pressure off somewhat

  • the page can add more nuance, detail and variations
  • the recipe user has ultimate control and responsibility for their
    cooking

Perhaps linking from each of our codes to relevant Wikipedia entry
will help indicate the subtleties

β€”
Reply to this email directly or view it on GitHub
#845 (comment).

β€”
Reply to this email directly or view it on GitHub.

CONFIDENTIALITY / DISCLAIMER: The contents of this e-mail are confidential and are not to be regarded as a contractual offer or acceptance from GS1 (registered in Belgium).
If you are not the addressee, or if this has been copied or sent to you in error, you must not use data herein for any purpose, you must delete it, and should inform the sender.
GS1 disclaims liability for accuracy or completeness, and opinions expressed are those of the author alone.
GS1 may monitor communications.
Third party rights acknowledged.
(c) 2016.

@ajax-als

The proposal looks reasonable to me. The only concern I have is whether it is correct to use airline types of food as primary sourse for closed set of dietary restrictions.
Term "dietary restrictions" might have different implications in different contexts and cultures. E.g., the most common (medical) dietary restrictions in Russia are described by
Pevzner diets. While proposed types are also used, it seems that it'd be wonderful at least to be able to use different diet taxonomies, depending on the context. This concrete issue can be solved by adding new type and subtype to RestrictedDiet enumeration. That looks like pretty legitimate approach but raises a question, do we really want to make a closed list.

@bbdg
Contributor
bbdg commented Jan 30, 2016

Thank you @ajax-als for your input. I had not heard of the Pevzner diets, and that is a good example of how different cultures organize diets in different ways. It is partly for this reason that my proposal does not try to define a detailed hierarchy, but only covers very broad concepts.

The issue of a closed versus open set was a critical decision, and there are pros and cons to each side. Certainly an open set of keywords allows regional flexibility, arbitrary granularity, expansion beyond traditional meanings of dietary restriction, and adaptability to current trends. However, it is just this freedom that I think hurts searchability. It becomes a guessing game on both the part of the recipe publishers and end users to align their terminology. A closed set simplifies the task of the publishers and gives search engines the tools for presenting coherent and complete results to users.

This set will certainly not cover every facet of every diet and it is not meant for honing in on very specific dietary attributes. Searching for recipes is inherently a process of looking through many options, picking a favorite, and then tuning to individual needs. These categories are aimed at making the first browsing step more effective by weeding out obviously poor candidates while including a wider range of good candidates.

The list tries not to be too airline-centric, but instead took its inspiration from airline meal codes mostly because they are practical and field-tested.

As for more open-ended tagging of recipe attributes, there is always the existing http://schema.org/keywords attribute that could be used for more specific traits. I feel that would be a good place to put the Pevzner category, should one want to include that. I worry that including a large taxonomy underneath dietary restrictions will increase the burden on the part of the recipe publishers and make erroneous markup more likely.

@danbri
Contributor
danbri commented Feb 16, 2016

Let's try to wrap this discussion up; I think we're pretty close to consensus. There is clear value in having a predictable enumerated list, as well as showing how this practice can be extended to capture a broader and more nuanced range of food practices. I like the idea of using 'keywords', but note that it won't get used unless we encourage it via examples and definitions.

How about:

  1. We clarify "A diet conforming to Hindu dietary practices, in particular, beef-free." for http://sdo-deimos.appspot.com/HinduDiet - this seems to have rough consensus so I will go ahead and make that change in the sdo-deimos release drafting branch.
  2. We add examples that illustrate the use of a keywords property for "Jain vegetarian" and/or "Pevzner" diets, if @shankarnat and @ajax-als could help with drafting something.
  3. We add a sentence to http://sdo-deimos.appspot.com/RestrictedDiet Recipe along the lines of "A short list of common dietary restrictions are enumerated via RestrictedDiet; in addition the /keywords/ property can be used to include an open-ended range of dietary practices, e.g. using terms such as "Jain vegetarian" or "Pevzner".

We might also add that "Other more complex or subtle dietary issues may be addressed within the full text of the recipe, or directly during the food preparation process.". - I believe this would bridge this work with the issues around food packaging that are explored much more comprehensively in the GS1 vocabulary.

@danbri danbri pushed a commit that referenced this issue Feb 16, 2016
Dan Brickley Noted that HinduDiet in particular means beef-free.
See #845
ee97160
@danbri
Contributor
danbri commented Feb 16, 2016

OK, we now have the following:

Note that the applicability of 'keywords' is because recipes are creative works, so the additional explanatory text was attached to Recipe rather than to RestrictedDiet. The existing description for Recipe was simply the two words "A recipe.". Adding two sentences on this particular issue seemed like the most we should say on the topic. As always, more examples illustrating this vocabulary would be very welcome.

Can everyone live with this design?

/cc @scor @mfhepp @pmika @chaals @tilid @shankarnat @ajax-als @rvguha @vholland

@danbri danbri pushed a commit that referenced this issue Feb 16, 2016
Dan Brickley Added a note about suitableForDiet, to make clear that 'keywords' can…
… be used to add additional information.

See #845
cf38e9e
@bbdg
Contributor
bbdg commented Feb 16, 2016

+1

@vholland
Contributor

+1

@ajax-als

+1

@danbri
Contributor
danbri commented Feb 18, 2016

Relaying a "sure!" from @pmika

@scor
Contributor
scor commented Apr 26, 2016

+1

@danbri danbri closed this Apr 28, 2016
@hexalys
hexalys commented May 6, 2016

I am slightly confused with the enumeration mechanism. I am doing menus for restaurants. And inline meta(s) or link(s) in the given examples are confusing and will get verbose very quickly for that use case; as I need to convey each menu item, with its diet type, via icons and a11y labels.

Ideally we could have:

<div typeof="Product">
  <span property="name">Vegetable Salad</span>
  <span typeof="RestrictedDiet">
    <span property="vegan"><i class="icon">β“‹</i>Vegan</span>,
    <span property="lowCalorie">Etc...</span>
  </span>
  <span property="description">Yummy vegetables with dressing</span>
<div>

Or is this alternative viable?

<div typeof="Product">
  <span property="name">Vegetable Salad</span>
  <span typeof="RestrictedDiet">
    <span property="keywords"><i class="icon">β“‹</i>Vegan</span>,
    <span property="keywords">Etc...</span>
  </span>
  <span property="description">Yummy vegetables with dressing</span>
<div>

Would have to allow and use keywords...

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