Skip to content

Improve expressivity for some specific common product variant attributes (size, pattern) #2587

@danbri

Description

@danbri

Context - This is a proposal from Google (/cc @alex-jansen) based on our experience consuming schema.org Product markup and working with similar data from online merchants. If it were accepted, it would make it easier for us and others to understand a number of common situations via Schema.org.

See also #1797

Introduction

Many products on the web are variants of a “master” or “parent” product. Such variants typically only vary on common attributes such as size, color, gender, age group, and pattern. This is a proposal to add some additional supporting vocabulary in the area of size and pattern, building upon schema.org's existing structures. It is motivated by our experience cross-domain but is particularly concerned with filling expressivity gaps around description of apparel. See for example https://www.statista.com/study/38340/ecommerce-report-fashion/ as background for the scale of the fashion/apparel data in circulation.

For example, a T-shirt can be sold with the following variations:

  • color: blue, red, white
  • size: S, M, L, XL
  • size type (fit): regular, petite, oversize
  • pattern: solid, striped

A cell phone can be sold with the following variations:

  • color: space gray, midnight green, gold
  • size (memory): 64GB, 256GB, 512GB

A golf club can be sold with the following variations:

  • gender: male, female
  • age group: kids, adults
  • size: standard, +5 inch, -5 inch

When users search for different products across the web they often want to see these different variations of a product grouped together to understand what options are available to them. However, currently, Schema.org provides only a limited set of variant attributes, for example color, material, and intended age and gender. Although the PropertyValue construction, or non-schema.org properties in other namespaces, could both be used here, we see an opportunity to improve schema.org coverage for many cases by adding a small amount of vocabulary.

Proposal details

Our proposal is to increase support for a few common variant attributes. This is an initial sketch of a design for discussion, with various issues arising highlighted below.

Pattern

Add a text-valued /pattern property, analagous to https://schema.org/material

Size-related

Add a new class “SizeDetails” allowing merchants to express the size of their products.

Properties of this class could describe, for example:

  • The size of their product
  • The size system in which the size is given
  • A size type (in the sense of a named or coded size), for example regular, petite, oversize, maternity

Aside - there may be general improvements possible to allow the variant structure of product groups to be described more explicitly (e.g. groups of products that share common characteristics except for known varying attributes such as size, color). However the focus here is on the underlying descriptive attributes rather than capturing such grouping structures.

Scoping Questions

  • colloquially, we can speak of the "size" of an SD memory card both in terms of physical size, but also its storage capacity in digital terms (e.g. gigabytes). Similar issues arise with food (packaged/dry, with packaging included, cooked etc.). We should be clear whether a SizeDetails type is purely for physical size, and whether it is intended to be applicable for anything that has (some kind of) size, or focus on the ecommerce / product case. The type name might need adapting accordingly.
  • consider use of a subproperty hierarchy below /size to clarify which notion of size is being appealed to
  • explore patterns that use http://schema.org/QuantitativeValue + a /unitCode.
  • we should examine corner-cases that are close to online shopping but modeled differently in schema.org, specifically food-related (recipes, menus).
  • document relationships with existing /fileSize /servingSize /contentSize /floorSize properties, and the /QualitativeValue type.
  • consider whether this proposal would be improved if Product had subtypes for major categories such as a hypothetical ApparelProduct.

Schema

  • add a property, /pattern - values are Text or URL. "A pattern of something (product or creative work, ...) e.g. "floral", "geometric", "striped". Applicable to apparel products but also furniture, curtains.
    • while referencing patterns by URL may be overkill for most ecommerce scenarios, it is good to be consistent with the existing /material property, and there are various places where patterns are codified e.g. see those linked from https://www.wikidata.org/wiki/Q3421342
  • add a type, SizeDetails, definition "a StructuredValue describing the size-related properties of something, typically in the context of product offers for e-commerce."
  • add properties for SizeDetails
    • /apparelType - values from an enumeration or Text as fallback for others. Enumeration would encode (regular, petite, oversize, maternity) - enum value names to be decided
    • /apparelSizeSystem - values also enum + Text, with the enumeration handling (au, br, cn, de, eu, fr, it, jp, mex, uk, us). This would be applicable to apparel and to shoes.
    • /size - values are Text or QuantitativeValue or QualitativeValue. e.g. "2XL", "46". Applicable to Apparel but also memory storage, jewelry, shoes, prints, .... Potentially the super-property for more specific properties.

Metadata

Metadata

Assignees

Labels

no-issue-activityDiscuss has gone quiet. Auto-tagging to encourage people to re-engage with the issue (or close it!).schema.org vocabGeneral top level tag for issues on the vocabulary

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions