【问题标题】:Schema.org for complex or multi-part recipesSchema.org 用于复杂或多部分的食谱
【发布时间】:2018-02-12 18:49:55
【问题描述】:

我正在尝试确定如何在 Schema.org 中标记Recipe,其中配方有多个子配方。

例如:维多利亚海绵可能有:

Set #1: Ingredients, preparation steps, and prep/cook times for the Sponge
Set #2: Ingredients, preparation steps, and prep times for the Filling
Set #3: Ingredients, preparation steps, and prep times for the Icing/Topping

我看过食谱示例,其中所有成分都放在一个列表中,然后说明/步骤会尝试确定在哪个点使用哪种成分,但这并不令人满意。

显而易见的方法是:单独的配方组件,或者可能是成分和步骤的“阵列”。而且,我可以看到它应该可以使用子配方步骤的HowTo 结构,但看不到如何。

我真的很想看到一个实际尝试过的例子。我正在使用 JSON-LD,但任何能证明原理的东西都将不胜感激!

【问题讨论】:

  • 你有之前问过的问题的链接吗?
  • 我可以想出多种方式来表示它。您只是询问 Schema.org 的可能性,还是您有特定的消费者需要遵守?
  • 我真的在寻找一种可以接受的方式......我不想重新发明轮子,或者做一些不应该被允许的事情。我的“消费者”是普通大众......我没有特定的市场可以满足,除了它允许与各种结构化数据用户(谷歌、必应等)的清晰度和兼容性。无论最终使用什么,都可能会通过开放图等来增强 FB、Twitter、Pinterest...

标签: schema.org recipe structured-data


【解决方案1】:

如果您需要对每个“子配方”的成分进行分组,则必须提供多个 Recipe 项,因为 recipeIngredient 属性仅针对 Recipe 类型定义。

我不知道这样的模型是否是有意的,但在指定的预期值下似乎是可能的。如果您认为 Recipe 指令步骤可以是 Recipe 本身,它就可以工作。

JSON-LD 示例

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Recipe",
  "recipeInstructions": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "item": {
          "@type": "HowToStep"
        }
      },
      {
        "@type": "ListItem",
        "position": 2,
        "item": {
          "@type": "HowToSection",
          "steps": {
            "@type": "Recipe"
          }
        }
      },
      {
        "@type": "ListItem",
        "position": 3,
        "item": {
          "@type": "HowToStep"
        }
      }
    ]
  }
}
</script>

示例说明

  • 主要的Recipe有三个指令步骤。

  • ListItem 用于给每个步骤一个position(这样ItemList 是有序的)。

  • 第一步和最后一步是HowToStep 项。 HowToStep 是一个列表,可以将 HowToDirectionHowToTip 项作为列表条目。

  • 第二步是HowToSection 项目。 HowToSection 是“步骤的子组”。它的定义给出了这个例子,这似乎适合你的情况:

    在馅饼配方中制作馅饼皮的步骤

    现在,不再将 HowToSectionsteps 再次表示为 HowToStep 项目的列表,而是将子配方作为 Recipe 项目给出。这是可能的,因为steps 具有CreativeWork 作为预期值,其中Recipe 是一个子类型。


(请注意,Google 的 SDTT 还不能识别 HowTo 类型。它们是在上个月发布的当前 Schema.org version 3.3 中引入的。)

【讨论】:

  • 这非常有用 - 感谢您抽出宝贵时间。 Google 不(还没有?)支持 HowTo 的事实并不那么重要……我们主要是在寻找一种以通用格式存储 1000 多个食谱的方法,然后我们可以将其用作以下来源:网站内容、结构化数据、成分搜索等。如果我们有这个,当我们显然可以根据需要提取/构建到另一个标准时。
  • @lePusscat:“还没有?”:是的,通常 Google 的 SDTT 可以识别所有 Schema.org 类型(即使是那些他们不用于任何功能的类型),所以这应该只是一个问题直到他们更新工具以识别新引入的术语。
  • Unor,再次感谢您。不幸的是,由于我的声誉低于 15,我无法“投票”您的答案。
猜你喜欢
  • 2015-02-05
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多