Use-cases wanted! Adding dietary requirements to Schema.org/Person


I want Schema.org to add dietary requirements to the Person specification. And I need your help!

Background

Schema.org is a metadata standard. You can include it on webpages to create structured, machine-readable data.

Here's a sample way of representing a Person:

JSON JSON{
  "@context": "https://schema.org/",
  "@type": "Person",
  "name": "Albert Einstein",
  "hasOccupation": [
    {
      "@type": "Occupation",
      "name": "Professor of Physics",
      "occupationLocation": {
        "@type": "Country",
        "name": "USA",
        "sameAs": "https://www.wikidata.org/wiki/Q30"
      }
    }
  ]
}

Hopefully easy to follow. This is a Person, they have a name and an occupation. That occupation has a name and is located in a country. That country has some linked data.

There are all sorts of properties we can associate with a Person - birth and death dates, memberships, nationality, credentials, tax ID, and even weight! See Schema.org/Person for a full list.

One which I think would be useful is a person's diet.

Diet

Schema already has the concept of a RestrictedDiet type. It lists things like Vegetarian, Halal, Kosher, Low Salt etc.

But it only applies to MenuItem and Recipe types. That is, I can mark up a restaurant's menu and say that this dish is Gluten Free, and that dish is Vegan friendly.

JSON JSON{
    "@context": "http://schema.org",
    "@type":"MenuItem",
    "name":"Potato Skins",
    "description":"Small serving of baked potato skins.",
    "offers":{
        "@type":"Offer",
        "price":"4.49",
        "priceCurrency":"GBP"
    },
    "suitableForDiet":[
        {
            "@type": "GlutenFreeDiet"
        },
        {
            "@type": "VeganDiet"
        }
    ]
}

My Use Cases

I maintain a personal contact site. I tell people my name, address, occupation, etc. I also want to inform other people that I am vegetarian.

  • On a social network, it might be nice to have an (optional) feature where people give their dietary preferences.
  • My Jewish and Muslim friends might want to automatically filter out the pork casserole recipes people post.
  • My address book might suggest a restaurant which caters for my guests' preferences.
  • An encyclopædia can show dietary restrictions of famous people.
  • An airline could - with permission - read your social profile to select your meal for a flight.

Sample

Here's how I think it could work:

JSON JSON{
    "@context": "https://schema.org/",
    "@type": "Person",
    "name": "Terence Eden",
    "restrictedDiet": "http://schema.org/VegetarianDiet"
}

That is, just add restrictedDiet as a valid property of Person. I suppose it could be hasDiet or dietaryPreference or similar.

Your Use Cases

If you want to add your own use cases, or just think this is a good idea, please leave a comment on GitHub.com/schemaorg/schemaorg/issues/1996


Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

6 thoughts on “Use-cases wanted! Adding dietary requirements to Schema.org/Person”

  1. Neil says:

    Should it be an array of restrictedDiets, so I can be a gluten-free vegetarian?

    Reply
  2. Difficult Guest says:

    What about allergies? They can be life or death. Are they “diet-modifiers”? How would you express “I eat everything except wheat, eggs, and white fish”? E.g. my partner gets a rash from eating raw tomatoes (heat-treated ones are fine). That’s weirdly specific, I know, but it does highlight how difficult these things can be.

    Someone who’s diabetic can eat sugary and carb-rich things. It’s not an allergy and they like it as much as anyone else. However, they’ll have a strong dietary preference for meals where sugar and carbs aren’t the main ingredients. Labeling them a “SugarFree” would be old-fashioned. The term “LowCarb” is a somewhat-related-but-different health fad. “I prefer a smaller amount of carb-rich sides like potatoes and rice. Give me one instead of three potatoes, and add some filler-greens instead. I’d like one scoop of ice-cream for desert instead of three as listed on the menu.

    Reply
  3. Guest says:

    Maybe your diet is restricted for a limited time. For example, if you’re training for a sporting event, or taking special dietary measures for a limited time for health reasons?

    Reply
    1. says:

      That should be fine. Many person attributes change over time, including "name" - although the frequency of that would hopefully be lower to avoid confusion.

      Reply

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">