gs1 / WebVoc

GS1 Web vocabulary development site
Apache License 2.0
29 stars 6 forks source link

gs1:FoodBeverageTobaccoIngredientDetails expansion to other vocabularies. #6

Closed oldskeptic closed 3 years ago

oldskeptic commented 3 years ago

As documented the property gs1:ingredient relates a gs1:FoodBeverageTobaccoProduct to an instance of gs1:FoodBeverageTobaccoIngredientDetails.

Is there any GS1 standard / vocabulary for ingredients that will be included later on or plans to reference outside ingredient vocabularies instead of a gs1:ingredientName language string? The use case that I have in mind is beverage ingredients where linking to a taxonomy is useful for corner cases such as ingredient specificity and people insisting their orange juice be fortified with Vitamin C while refusing anything with Ascorbic acid "chemicals" in it.

mgh128 commented 3 years ago

We don't currently have or reference a code list for ingredients. If you are aware of such a Linked Data code list / vocabulary, feel free to suggest it. I did a quick search at https://lov.linkeddata.es/dataset/lov/terms and could not find a suitable code list that mentions vitamin C or ascorbic acid

Even if such a code list exists, using it will probably not solve the use case you describe, where a specific consumer does not understand that vitamin C is ascorbic acid. Even if the code list provided two distinct code values so that you could express that it contains vitamin C without expressing that it contains ascorbic acid, I would expect that if the code list is credible, the terms should express some equivalence relationship between each other, possibly using owl:sameAs.

I do see some potential value in a code list for ingredients, with multi-lingual translations, to assist travellers, though machine-translation is probably good enough that if it translates the value of the gs1:ingredientStatement or of each gs1:ingredientName, it will usually be good enough in most situations.

I'm not aware of any GS1 plans to develop a code list for ingredients but it's possible that we already have one somewhere within the GDSN data model, in which case, it would be fairly easy to import that into the GS1 Web vocabulary.

oldskeptic commented 3 years ago

There's the beginnings of such an approach with gs1:brandHomepageClinical and gs1:brandHomepagePatient for pharmaceuticals static pages.

The use of langsting for gs1:ingredientName gives us space for multilingual strings but we'll need extensions to handle more complex cases: vocabularies that come to mind are Vitamin C in FoodOn and Crystal Hops / Hops for beer production (my current project).

We can use schema:sameAs or owl:equivalentClass to handle external vocabularies but if you have something in the GDSN data model that you can publish as instances (like for gs1:AllergenTypeCode), I think that would be very valuable. This would also allow the inference of Allergen alerts based on the ingredient list rather than depending solely on an explicit list.

mgh128 commented 3 years ago

I just checked with my GS1 colleagues who are far more involved with the GDSN data model and the GS1 Global Data Dictionary than I am. They confirmed that GS1 doesn't have a standardised code list for ingredient names because there are hundreds of thousands of possible ingredients, so it would be very difficult for us (GS1) to compile and maintain - so I think the best we can suggest is that you use https://www.gs1.org/voc/ingredientStatement or https://www.gs1.org/voc/ingredientName within https://www.gs1.org/voc/FoodBeverageTobaccoIngredientDetails and perhaps rely on automatic translation tools such as http://translate.google.com/ etc.

oldskeptic commented 3 years ago

Thanks; also looking into some rdf magic that works across schema / rdfs /owl for the long term.

VladimirAlexiev commented 1 year ago

@philarcher @mgh128 @oldskeptic