在 Schema 中添加多个描述性属性的统一方式

Uniform way to add multiple descriptive properties in Schema

我们使用Schema.org'types'和'properties'来组织多种数据。该应用程序由 Schema.org 的词汇和结构驱动,而不是使用 schema.org 进行 SEO。应用程序构建并关联科学家、艺术家、作曲家等有创造力的人的已完成和未完成的作品。他们的努力不仅限于"Creative works",例如文章和艺术品,还包括他们发起的组织、公司、活动和产品.

从今年开始,我们使用 Schema.org,因为我们过去在语义结构数据方面遇到过问题。现在我们正在使用 Schema.org 我们取得了很好的进展。

对于我们收集的每个项目,我们使用 namedescriptionThing 属性)作为描述字段。为了更加详尽,我们想为我们存储在数据库中的每个项目添加 headlinealternativeHeadline 或类似的 Schema.org vocab

以下默认 属性 列表足以满足我们的应用程序处理的所有项目:

对于从 schema.org/CreativeWork 派生的所有类型,属性 headlinealternativeHeadline 匹配 schema.org,但是,例如, EventProduct 没有这些属性。我们可以使用 Thing 属性 alternateNameabout,但这些属性显然不等同于 headlinealternativeHeadline

简而言之:我们寻找一种统一的方法来为我们应用程序中的每个项目添加四个基本描述字段,而不管其 type。什么是最好的解决方案?

我不建议只使用 Schema.org 词汇。 Schema.org 的目标不是为所有情况提供属性。这是为了让作者在需要时使用更具体的词汇。

作为 RDF-based,很容易为您的数据使用许多不同的 vocabulariesschema:name 用于 Schema.org 的 name 属性, foaf:name 对于 FOAF 的 name 属性。

这也允许您在找不到合适的 属性 的情况下使用 your own vocabulary

此答案的其余部分假设您使用Schema.org处理所有事情。


我认为 headline/alternativeHeadline 用于 EventOrganization 没有意义。公司的标题是什么?事件的替代标题是什么?虽然有些人可能有想法,但很可能不会达成广泛的共识,每个人都会以不同的方式使用它;所以消费者不知道会发生什么,使这个 属性 毫无用处。

从您的 Organization 示例中,我得到的印象是您将这些属性用于类似 tagline/slogan/motto/catchphrase 的对象。 Schema.org 为此目的提供 属性 可能有意义也可能没有意义,但不应该是 headline

在没有这样合适的属性的情况下,我会说你使用 headline/alternativeHeadline 的内容应该是 namedescription 的一部分.

Event为例:

  • headline 可以成为 name 的一部分:"The Entangled Universe: The extraordinary capabilities of the humand mind"。
  • 可以省略alternativeHeadline,因为它只是在散文中给出了事件发生的位置,而这个信息已经用location传达给了消费者。如果句子确实必须是结构化数据的一部分(而不仅仅是显示在页面上),那么它可以包含在 description.

使用 old extension mechanism, you could generate more specific properties based on existing properties. But it’s deprecated,我不建议发布具有此类属性的数据。但它可能仍然对内部使用有用,因为它允许您使用单独的字段。例如,您可以使用 name/subtitledescription/wheredescription/slogan.

等属性