Aligning GoodRelations & Schema.org
PUBLIC DRAFT
Author: Martin Hepp, mfhepp@computer.org
Skype mfhepp
Note: This may not contain all subsequent editorial changes.
The Mercurial repository at https://bitbucket.org/mfhepp/goodrelations-schema-integration
is the authoritative resource.
2 Prerequisites for adding GoodRelations to schema.org
Action 2: Fix problem with http://schema.org/Boolean
Action 3: Fix problem with URL values for properties
Action 4: New additionalType property for http://schema.org/Thing
3.1 Suggested new properties for existing classes
http://schema.org/Organization
3.2 Suggested new classes and their properties
http://schema.org/BusinessEntityType
http://schema.org/BusinessFunction
http://schema.org/DeliveryMethod
http://schema.org/ParcelService as a subclass of http://schema.org/DeliveryMethod
http://schema.org/Demand (new)
http://schema.org/IndividualProduct as a subclass of http://schema.org/Product
http://schema.org/OwnershipInfo (new)
http://schema.org/OpeningHoursSpecification
http://schema.org/PaymentMethod
http://schema.org/PriceSpecification
http://schema.org/ProductFeature (new) subclass of http://schema.org/StructuredValue
http://schema.org/ProductModel as a subclass of http://schema.org/Product
http://schema.org/QualitativeValue
http://schema.org/QuantitativeValue
http://schema.org/SomeProducts as a subclass of http://schema.org/Product
http://schema.org/TypeAndQuantityNode
http://schema.org/WarrantyPromise
http://schema.org/WarrantyScope
Action: Add additional classes and properties to schema.org.
http://schema.org/BusinessEntityType
http://schema.org/BusinessFunction
http://schema.org/DeliveryMethod
http://schema.org/ParcelService
http://schema.org/PaymentMethod
http://schema.org/WarrantyScope
Action: No action needed. The enumerations remain in the GoodRelations namespace.
3.4.1 Expand notion of a product
Action: Update textual definition of http://schema.org/Product.
3.4.2 Common superclass for organization and person
Action: Add common superclass http://schema.org/Agent
This document describes a proposal on how to extend schema.org by GoodRelations elements. It discusses only issues relevant for the schema.org sponsors as a whole. Issues about the specific support of GoodRelations by a single search engine are not included in this document but instead subject to separate, bilateral discussions.
In this section, we describe basic modifications and extensions to the schema.org specification that are needed to add GoodRelations properties. Note that due to the substantial degree of dependencies, the best approach is to implement all of them exactly as proposed, as long as there are no prohibitive compatibility issues.
Also note that implementing this will make it super-easy to build extensions for cars, tickets, real estate, jobs, etc.
GoodRelations requires the following datatypes:
http://www.w3.org/2001/XMLSchema#int
http://www.w3.org/2001/XMLSchema#float
http://www.w3.org/2001/XMLSchema#boolean
http://www.w3.org/2000/01/rdf-schema#Literal
http://www.w3.org/2001/XMLSchema#dateTime
http://www.w3.org/2001/XMLSchema#string
http://www.w3.org/2001/XMLSchema#time
Tracked in WebSchemas issue tracker as https://www.w3.org/2011/webschema/track/issues/15
We need
A combination of date and time of day in the form [-]CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm] (see Chapter 5.4 of ISO 8601).
-> example here please :) <-
and
A point in time recurring on multiple days in the form hh:mm:ss[Z|(+|-)hh:mm] (see http://www.w3.org/TR/xmlschema-2/#time)
-> example here please :) <-
as subtypes of http://schema.org/DataType.
xsd:time is really important for structured opening hours and other GoodRelations features.
Example:
<div itemscope itemtype="http://schema.org/Place" itemid="#store">
<span itemprop="name">Hepp's Happy Burger Restaurant</span>
<div itemprop="openingHoursSpecification" itemscope
itemtype="http://schema.org/OpeningHoursSpecification">
Opening hours: Mo-Fri,
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Monday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Tuesday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Wednesday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Thursday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Friday" />
<meta itemprop="opens" content="08:00:00">8:00 a.m. -
<meta itemprop="closes" content="20:00:00">8:00 p.m.
</div>
</div>
ACTION: Add these two datatypes to schema.org. DONE
RESOLVED! We agree 'true' 'false' are preferred values, and seem to be the dominant usage pattern.
ACTION Dan update schema.org to make this more obvious to readers.
Tracked in WebSchemas issue tracker as https://www.w3.org/2011/webschema/track/issues/14
You have to clarify the usage of http://schema.org/Boolean. The schema.org sponsors should clarify whether to use the RDF-compatible text (true/false) or the
URIs http://schema.org/True and http://schema.org/False.
For now, one would assume that you use the two values as individuals, e.g.
<link itemprop=”propertyname” href=”http://schema.org/True” />
<link itemprop=”propertyname” href=”http://schema.org/False” />
which is incompatible with the RDFa patterns and also less concise.
I suggest
<meta itemprop=”propertyname” content=”true” >
<meta itemprop=”propertyname” content=”false” >
A simple text amendment for http://schema.org/True, http://schema.org/False, and http://schema.org/Boolean would do the trick.:
Note: The recommended use of this datatype is with a string “true” or “false” indicating the value of the respective property.
Example:
<div itemscope itemtype="http://schema.org/Book">
<span itemprop="name">The Catcher in the Rye</span>
Family-friendly: <meta itemprop="isFamilyFriendly" content="true"> yes
</div>
ACTION: Add this note to http://schema.org/Boolean
Resolved: we externalise GR URLs, revisit after 6 months in light of impl experience.
[let’s discuss before raising an issue -- Dan]
Note: If we use all enumerated values from GoodRelations as external enumerations from their original namespace (e.g. http://purl.org/goodrelations/v1#UPS instead of http://schema.org/UPS, then the proposal for external enumerations described at http://www.w3.org/wiki/WebSchemas/ExternalEnumerations should be sufficient and this issue could be closed. We would just need pointers in the description of the properties to the respective values, e.g. “Use with GoodRelations enumerations like http://purl.org/goodrelations/v1#UPS”.
Such schema.org elements that are actually instances of a schema.org class, e.g.
should be listed with matching properties and not as a subtype.
A possible solution is to change the last delimiter to indicate that this is a different form of an isA relationship, e.g. a colon:
So change the pattern from
Thing > Intangible > Enumeration > ItemAvailability > InStock
to
Thing > Intangible > Enumeration > ItemAvailability :: InStock
This is of general relevance, but since GoodRelations uses predefined individuals frequently, it should be fixed before GoodRelations elements are added to schema.org
Action: Change pattern for individuals in the HTML version of schema.org. Solved for the moment (not critical for GoodRelations integration).
Add a property "additionalType" with a range of URI to http://schema.org/Thing so that additional types for items can be signaled without breaking the frame-based model of schema.org and Microdata. The cardinality should be 0..*.
<div itemscope itemtype="http://schema.org/Product">
<link itemprop="additionalType" href="http://www.productontology.org/id/Hammer" />
<link itemprop="additionalType" href="http://www.productontology.org/id/Sledgehammer" />
<!-- other schema.org properties go in here -->
</div>
For GoodRelations and www.productontology.org, this will mostly be needed for http://schema.org/Product, but I think a generic property attached to http://schema.org/Thing makes far more sense.
So add this property to http://schema.org/Thing
Property | Expected Type | Description |
additionalType | URL | URL of an additional class from external vocabularies. This can be used for adding multiple types to a single element. |
Action: Add additionalType property to http://schema.org/Thing. DONE - included in the 0.96 release
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
acceptedPaymentMethod was: acceptedPaymentMethods | OK | PaymentMethod | The payment method(s) accepted by seller for this offer. | acceptedPaymentMethods |
addOn | OK | Offer | An additional offer that can only be obtained in combination with the first base offer (e.g. supplements and extensions that are available for a surcharge). | |
advanceBookingRequirement | OK | QuantitativeValue | The amount of time that is required between accepting the offer and the actual usage of the resource or service. | |
availabilityEnds | OK | DateTime | The end of the availability of the product or service included in the offer. | |
availabilityStarts | OK | DateTime | The beginning of the availability of the product or service included in the offer. | |
availableAtOrFrom | OK | Place | The place(s) from which the offer can be obtained (e.g. store locations). | |
availableDeliveryMethod was: availableDeliveryMethods | OK | DeliveryMethod | The delivery method(s) available for this offer. | availableDeliveryMethods |
category | OK | Text | The name of a category. Greater signs or slashes can be used to informally indicate a category hierarchy. | |
itemCondition | OK | Text or OfferItemCondition | A predefined value from OfferItemCondition or a textual description of the condition of the product or service, or the products or services included in the offer. | This is overlapping with itemCondition, but there is often a need for a textual description of the condition. |
deliveryLeadTime | OK | QuantitativeValue | The typical delay between the receipt of the order and the goods leaving the warehouse. | |
eligibleCustomerType was: eligibleCustomerTypes | OK | BusinessEntityType | The type(s) of customers for which the given offer is valid. | eligibleCustomerTypes |
eligibleDuration | OK | QuantitativeValue | The duration for which the given offer is valid. | |
eligibleRegion (was: eligibleRegions) | OK | Text or GeoShape | The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, or the GeoShape of the geo-political region(s) for which the offer, or delivery charge specification is valid. | eligibleRegions ; add GeoShape |
eligibleTransactionVolume | OK | QuantitativeValue | The transaction volume, in a monetary unit, for which the offer or price specification is valid, e.g. for indicating a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases above a certain amount. | |
businessFunction | OK | BusinessFunction | The business function (e.g. sell, lease, repair, dispose) of the offer. The default ishttp://purl.org/goodrelations/v1#Sell. | gr:hasBusinessFunction |
gtin13 | OK | Text | The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. | gr:hasEAN_UCC-13 (maybe: gtin13) |
eligibleQuantity | OK | QuantitativeValue | The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity. | gr:hasEligibleQuantity |
gtin14 | OK | Text | The GTIN-14 code of the product, or the product to which the offer refers. | gr:hasGTIN-14 (maybe: gtin14) |
gtin8 | OK | Text | The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. | gr:hasGTIN-8 (maybe: gtin8) |
inventoryLevel | OK | QuantitativeValue | The current approximate inventory level for the item or items. | gr:hasInventoryLevel Slight overlap with http://schema.org/ItemAvailability but the GoodRelations approach is more precise and untangles delivery channels and stock levels |
mpn | OK | Text | The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers. | gr:hasMPN |
priceSpecification | OK | PriceSpecification (UnitPriceSpecification, DeliveryChargeSpecification, or PaymentChargeSpecification) | One or more detailed price specifications, indicating the unit price and delivery or payment charges. | gr:hasPriceSpecification Note: This is a much more powerful way of indicating pricing than the standard price property for http://schema.org/Offer. This will likely be very hanly for dealing with national requirements, e.g. for indicating shipping charges etc. |
sku | OK | Text | The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service. | gr:hasStockKeepingUnit |
warranty | OK | WarrantyPromise | The warranty promise(s) included in the offer. | gr:hasWarrantyPromise |
includes | IGNORE | itemOffered | There is a naming clash between schema.org and GoodRelations regarding this element. | |
includesObject | OK | TypeAndQuantityNode | This links to a node or nodes indicating the exact quantity of the products included in the offer. | |
serialNumber | OK | Text | The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer. | |
validFrom | OK | DateTime | The beginning of the validity of offer, price specification, or opening hours data. | |
validThrough | OK | DateTime | The end of the validity of offer, price specification, or opening hours data. |
Action: Add additional properties to http://schema.org/Offer.
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
category | OK | Text | The name of a category. Greater signs or slashes can be used to informally indicate a category hierarchy. | |
color | OK | Text | The color of the product. | |
itemCondition | OK | Text or OfferItemCondition | A predefined value from OfferItemCondition or a textual description of the condition of the product or service, or the products or services included in the offer. | GR has gr:condition which only accepts text; to be aligned on the GR side |
depth | OK | QuantitativeValue | The depth of the product. | |
brand | OK | Brand | The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.. | The expected type should be changed from http://schema.org/Organization or http://schema.org/Brand, because organizations and their brands are distinct entities - often, the Webmaster will not know the legal entity behind a certain brand. The GoodRelations property is named gr:hasBrand. |
gtin13 | OK | Text | The GTIN-13 code of the product, or the product to which the offer refers. This is equivalent to 13-digit ISBN codes and EAN UCC-13. Former 12-digit UPC codes can be converted into a GTIN-13 code by simply adding a preceeding zero. | gr:hasEAN_UCC-13 (maybe: gtin13) |
gtin14 | OK | Text | The GTIN-14 code of the product, or the product to which the offer refers. | gr:hasGTIN-14 (maybe: gtin14) |
gtin8 | OK | Text | The GTIN-8 code of the product, or the product to which the offer refers. This code is also known as EAN/UCC-8 or 8-digit EAN. | gr:hasGTIN-8 (maybe: gtin8) |
mpn | OK | Text | The Manufacturer Part Number (MPN) of the product, or the product to which the offer refers. | gr:hasMPN |
sku | OK | Text | The Stock Keeping Unit (SKU), i.e. a merchant-specific identifier for a product or service. | gr:hasStockKeepingUnit |
height | OK | QuantitativeValue | The height of the product. | |
isAccessoryOrSparePartFor | OK | Product | A pointer to another product (or multiple products) for which this product is an accessory or spare part. | |
isConsumableFor | OK | Product | A pointer to another product (or multiple products) for which this product is a consumable. | |
isSimilarTo | OK | Product | A pointer to another, functionally similar product (or multiple products). | |
isRelatedTo | OK | Product | A pointer to another, somehow related product (or multiple products). | New property for GoodRelations |
weight | OK | QuantitativeValue | The weight of the product. | |
width | OK | QuantitativeValue | The width of the product. | |
feature | OK | ProductFeature | A structured value indicating a product feature | New property for GoodRelations |
Additional properties from specializations of Goodrelations can be used with their full URL, e.g. | OK | see respective external property | see respective external property | This is particularly relevant for automotive scenarios. |
qualitativeProductOrServiceProperty | IGNORE | This is a super-property relevant only for defining vocabularies. It can be omitted from a documentation geared towards site owners. | ||
datatypeProductOrServiceProperty | IGNORE | This is a super-property relevant only for defining vocabularies. It can be omitted from a documentation geared towards site owners. | ||
quantitativeProductOrServiceProperty | IGNORE | This is a super-property relevant only for defining vocabularies. It can be omitted from a documentation geared towards site owners. | ||
releaseDate | OK | Date | The release date of a product or product model. This can be used to distinguish the exact variant of a product. |
Also, the range for the model property of http://schema.org/Product must be changed to allow either text or http://schema.org/ProductModel.
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
model | OK | ProductModel or Text | The product model of the product | hasMakeAndModel Note: GR does not support Text |
Add the following three specializations of http://schema.org/Product:
http://schema.org/IndividualProduct
A single, identifiable product instance (e.g. a laptop with a particular serial number).
Position in the schema.org hierarchy: Thing > Product > IndividualProduct
http://schema.org/ProductModel
A datasheet or vendor specification of a product (in the sense of a prototypical description)
Position in the schema.org hierarchy: Thing > Product > ProductModel
http://schema.org/SomeProducts
A placeholder for multiple similar products of the same kind.
Position in the schema.org hierarchy: Thing > Product > SomeProducts
Action: Add additional properties to http://schema.org/Product.
Action: Change range of brand to http://schema.org/Brand.
Action: Tolerate additional properties from specializations of GoodRelations when using full URIs, e.g.
Action: Add three subclasses http://schema.org/IndividualProduct, http://schema.org/ProductModel, and http://schema.org/SomeProducts to http://schema.org/Offer.
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
category | OK | Text | The name of a category. Greater signs or slashes can be used to informally indicate a category hierarchy. | |
globalLocationNumber | OK | Text | The Global Location Number (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization or place. The GLN is a 13-digit number used to identify parties and physical locations. | gr:hasGlobalLocationNumber |
isicV4 | OK | Text | The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization or place. | gr:hasISICv4 |
openingHoursSpecification | OK | OpeningHoursSpecification | The opening hours of a certain place. | gr:hasOpeningHoursSpecification A more granular way of indicating opening hours information that the standard openingHours property in schema.org. |
Action: Add additional properties to http://schema.org/Place
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
category | OK | Text | The name of a category. Greater signs or slashes can be used to informally indicate a category hierarchy. | |
brand | OK | Brand | The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person. | The expected type should be changed from http://schema.org/Organization or http://schema.org/Brand, because organizations and their brands are distinct entities - often, the Webmaster will not know the legal entity behind a certain brand. The GoodRelations property is named gr:hasBrand. |
duns | OK | Text | The Dun & Bradstreet DUNS number for identifying an organization or business person. | gr:hasDUNS |
globalLocationNumber | OK | Text | The Global Location Number (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization or place. The GLN is a 13-digit number used to identify parties and physical locations. | gr:hasGlobalLocationNumber |
isicV4 | OK | Text | The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place. | gr:hasISICv4 |
naics | OK | Text | The North American Industry Classification System (NAICS) code for a particular organization or business person. | gr:hasNAICS |
hasPOS | OK | Place | Points-of-Sales operated by the organization or person. | |
legalName | OK | Text | The official name of the organization, e.g. the registered company name. | |
makesOffer | OK | Offer | A pointer to products or services offered by the organization or person. | gr:offers; note name clash |
owns | OK | Product or OwnershipInfo | Products owned by the organization or person. | The range in GR will be expanded to include gr:OwnershipInfo |
seeks | OK | Demand | A pointer to products or services sought by the organization or person (demand). | Currently, gr:Offering includes demand and supply, but this will be changed in GoodRelations to be compliant with this proposed new approach. |
taxID | OK | Text | The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain. | |
vatID | OK | Text | The Value-added Tax ID of the organisation or person. |
Action: Add additional properties to http://schema.org/Organization.
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
category | OK | Text | The name of a category. Greater signs or slashes can be used to informally indicate a category hierarchy. | |
brand | OK | Brand | The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person. | The expected type should be changed from http://schema.org/Organization or http://schema.org/Brand, because organizations and their brands are distinct entities - often, the Webmaster will not know the legal entity behind a certain brand. The GoodRelations property is named gr:hasBrand. |
duns | OK | Text | The Dun & Bradstreet DUNS number for identifying an organization or business person. | gr:hasDUNS |
globalLocationNumber | OK | Text | The Global Location Number (GLN, sometimes also referred to as International Location Number or ILN) of the respective organization or place. The GLN is a 13-digit number used to identify parties and physical locations. | gr:hasGlobalLocationNumber |
isicV4 | OK | Text | The International Standard of Industrial Classification of All Economic Activities (ISIC), Revision 4 code for a particular organization, business person, or place. | gr:hasISICv4 |
naics | OK | Text | The North American Industry Classification System (NAICS) code for a particular organization or business person. | gr:hasNAICS |
hasPOS | OK | Place | Points-of-Sales operated by the organization or person. | |
makesOffer | OK | Offer | A pointer to products or services offered by the organization or person. | gr:offers; note name clash |
owns | OK | Product or OwnershipInfo | Products owned by the organization or person. | The range in GR will be expanded to include gr:OwnershipInfo |
seeks | OK | Demand | A pointer to products or services sought by the organization or person (demand). | Currently, gr:Offering includes demand and supply, but this will be changed in GoodRelations to be compliant with this proposed new approach. |
taxID | OK | Text | The Tax / Fiscal ID of the organization or person, e.g. the TIN in the US or the CIF/NIF in Spain. | |
vatID | OK | Text | The Value-added Tax ID of the organisation or person. |
Action: Add additional properties to http://schema.org/Person.
A brand is a name used by an organization or business person for labeling a product, product group, or similar.
Position in the schema.org hierarchy: Thing > Intangible > Brand
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A business entity type is a conceptual entity representing the legal form, the size, the main line of business, the position in the value chain, or any combination thereof, of an organization or business person.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > BusinessEntityType
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
The business function specifies the type of activity or access (i.e., the bundle of rights) offered by the organization or business person through the offer. Typical are sell, rental or lease, maintenance or repair, manufacture / produce, recycle / dispose, engineering / construction, or installation.
Proprietary specifications of access rights are also instances of this class.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > BusinessFunction
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
For legal reasons, schema.org cannot contain elements for modeling licensing conditions, because site-owners may try to use them to express complex licensing terms for the use of their content by search engines, which cannot be properly handled by Web-scale crawlers. Thus, the class gr:License from GoodRelations is not available from the schema.org namespace. If you want to use gr:License, use GoodRelations in its original namespace or use the additionalType property in combination with the full URI http://purl.org/goodrelations/v1#Licenseand the main itemtype http://schema.org/BusinessFunction.
The day of the week, e.g. used to specify to which day the opening hours of a http://schema.org/OpeningHoursSpecification refer.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > DayOfWeek
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A delivery method is a standardized procedure for transferring the product or service to the destination of fulfilment chosen by the customer. Delivery methods are characterized by the means of transportation used, and by the organization or group that is the contracting party for the sending organization or person.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > DeliveryMethod
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A private parcel service as the delivery mode available for a certain offer.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > DeliveryMethod > DeliveryMethodParcelService
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A demand entity represents the public, not necessarily binding, not necessarily exclusive, announcement by an organization or person to seek a certain type of goods or services. For describing demand using this type, the very same properties used for http://schema.org/Offer apply.
Position in the schema.org hierarchy: Thing > Intangible > Demand
Note: Replicate all properties (existing and those coming from GoodRelations above) from http://schema.org/Offer for this type; omitted in here for brevity. Exceptions are
which are omitted for the Demand type, since they will rarely be useful for this type. The reason for these omissions are as follows:
A single, identifiable product instance (e.g. a laptop with a particular serial number).
Position in the schema.org hierarchy: Thing > Product > Individual
Note: Replicate all properties (existing and those coming from GoodRelations above) from http://schema.org/Product for this type; omitted in here for brevity.
A structured value providing information about when a certain organization or person owned a certain product.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > OwnershipInfo
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
typeOfGood | OK | Product | The product that this structured value is referring to. | Will be added to GoodRelations shortly. |
acquiredFrom | OK | Organization or Person | The organization or person from which the product was acquired. | Will be added to GoodRelations shortly. |
ownedFrom | OK | DateTime | The date and time of obtaining the product. | Will be added to GoodRelations shortly. |
ownedThrough | OK | DateTime | The date and time of giving up ownership on the product. | Will be added to GoodRelations shortly. |
A structured value providing information about the opening hours of a place or a certain service inside a place.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > OpeningHoursSpecification
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
dayOfWeek | OK | DayOfWeek | The day of the week for which these opening hours are valid. | gr:hasOpeningHoursDayOfWeek |
opens | OK | Time | The opening hour of the place or service on the given day(s) of the week. | |
closes | OK | Time | The closing hour of the place or service on the given day(s) of the week. | |
validFrom | OK | DateTime | The beginning of the validity of offer, price specification, or opening hours data. | |
validThrough | OK | DateTime | The end of the validity of offer, price specification, or opening hours data. |
Example:
<div itemscope itemtype="http://schema.org/Place" itemid="#store">
<span itemprop="name">Hepp's Happy Burger Restaurant</span>
<div itemprop="openingHoursSpecification" itemscope
itemtype="http://schema.org/OpeningHoursSpecification">
Opening hours: Mo-Fri,
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Monday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Tuesday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Wednesday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Thursday" />
<link itemprop="dayOfWeek"
href="http://purl.org/goodrelations/v1#Friday" />
<meta itemprop="opens" content="08:00:00">8:00 a.m. -
<meta itemprop="closes" content="20:00:00">8:00 p.m.
</div>
</div>
A payment method is a standardized procedure for transferring the monetary amount for a purchase. Payment methods are characterized by the legal and technical structures used, and by the organization or group carrying out the transaction.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > PaymentMethod
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A credit or debit card type as a standardized procedure for transferring the monetary amount for a purchase.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > PaymentMethod > CreditCard
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
A structured value representing a monetary amount. Typically, only the subclasses of this type are used for markup.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > PriceSpecification
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
priceCurrency | OK | Text | The currency (in 3-letter ISO 4217 format) of the price. | gr:hasCurrency Note: Remove the word “offer” from the description of the global priceCurrency property in schema.org. |
price | OK | Number | The price. | gr:hasCurrencyValue If this property is used, one can assume the minPrice and the maxPrice to be the same as the point value. In GoodRelations, gr:hasCurrencyValue is a subproperty of both gr:hasMinCurrencyValue and gr:hasMaxCurrencyValue. |
minPrice | OK | Number | The lowest price if the price is a range. | gr:hasMinCurrencyValue Note: Schema.org has a similar property lowPrice, but I think the meaning is narrower than this one, so I would keep them separate. |
maxPrice | OK | Number | The highest price if the price is a range. | gr:hasMaxCurrencyValue Note: Schema.org has a similar property highPrice, but I think the meaning is narrower than this one, so I would keep them separate. |
eligibleTransactionVolume | OK | PriceSpecification | The transaction volume, in a monetary unit, for which the offer or price specification is valid. This is mostly used to specify a minimal purchasing volume, to express free shipping above a certain order volume, or to limit the acceptance of credit cards to purchases above a certain amount. | |
eligibleQuantity | OK | QuantitativeValue | The interval and unit of measurement of ordering quantities for which the offer or price specification is valid. This allows e.g. specifying that a certain freight charge is valid only for a certain quantity. | gr:hasEligibleQuantity |
validFrom | OK | DateTime | The beginning of the validity of offer, price specification, or opening hours data. | |
validThrough | OK | DateTime | The end of the validity of offer, price specification, or opening hours data. | |
valueAddedTaxIncluded | OK | Boolean | Specifies whether the applicable value-added tax (VAT) is included in the price specification or not. |
http://schema.org/UnitPriceSpecification as a subclass of http://schema.org/PriceSpecification
The price asked for a given offer by the respective organization or person.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > PriceSpecification > UnitPriceSpecification
Properties: All properties from http://schema.org/PriceSpecification plus the following:
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
billingIncrement | OK | Number | This property specifies the minimal quantity and rounding increment that will be the basis for the billing. | |
unitCode was: unitOfMeasurement | OK | Text | The unit of measurement for a given using the UN/CEFACT Common Code (3 characters). | gr:hasUnitOfMeasurement Note: A list of all codes is here: (scroll down to "Recommendation N°. 20 ", "Codes for Units of Measure Used in International Trade"): http://www.unece.org/tradewelcome/areas-of-work/un-centre-for-trade-facilitation-and-e-business-uncefact/outputs/cefactrecommendationsrec-index/list-of-trade-facilitation-recommendations-n-16-to-20.html |
priceType | OK | Text | A short text or acronym indicating multiple price specifications for the same offer, e.g. SRP for the suggested retail price or INVOICE for the invoice price, mostly used in the car industry. | We could also change the range to a type PriceType with predefined individuals for common prices, like SRP. |
http://schema.org/DeliveryChargeSpecification as a subclass of http://schema.org/PriceSpecification
The price for the delivery of an offer using a particular delivery method.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > PriceSpecification > DeliveryChargeSpecification
Properties: All properties from http://schema.org/PriceSpecification plus the following:
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
appliesToDeliveryMethod | OK | DeliveryMethod | The delivery method(s) to which the delivery charge specification applies. | |
eligibleRegion (was: eligibleRegions) | OK | Text or GeoShape | The ISO 3166-1 (ISO 3166-1 alpha-2) or ISO 3166-2 code, or the GeoShape of the geo-political region(s) for which the offer, or delivery charge specification is valid. | gr:eligibleRegions; add GeoShape |
http://schema.org/PaymentChargeSpecification as a subclass of http://schema.org/PriceSpecification
The costs of settling the payment using a particular payment method.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > PriceSpecification > PaymentChargeSpecification
Properties: All properties from http://schema.org/PriceSpecification plus the following:
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
appliesToPaymentMethod | OK | PaymentMethod | The payment method(s) to which the payment charge specification applies. |
A property-value pair representing a product feature.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > ProductFeature
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
propertyName | OK | Text | The name of the feature | New in GoodRelations. |
propertyValue | OK | Number or Text | The value of the feature | New in GoodRelations |
unitText | OK | Text | A textual description of the unit of measurement. | New in GoodRelations. Useful if the source database does not provide a standard unit code. |
unitCode | OK | Text | The unit of measurement given using the UN/CEFACT Common Code (3 characters). | gr:hasUnitOfMeasurement |
Note: This new approach is strategically very promising, since it allows shops and vendor pages to expose rich product data without cleansing it completely as simple property-vTalue pairs.
A datasheet or vendor specification of a product (in the sense of a prototypical description)
Position in the schema.org hierarchy: Thing > Product > ProductModel
Note: Replicate all properties (existing and those coming from GoodRelations above) from http://schema.org/Product for this type; omitted in here for brevity.
Additional properties:
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
isVariantOf | OK | ProductModel | A pointer to a base product from which this product is a variant. It is safe to infer that the variant inherits all product features from the base model, unless defined locally. | This is not transitive. |
predecessorOf | OK | ProductModel | A pointer from a previous, often discontinued variant of the product to its newer variant. | |
successorOf | OK | ProductModel | A pointer from a newer variant of a product to its previous, often discontinued predecessor. |
A predefined value for a product characteristic, e.g. the the power cord plug type "US" or the garment sizes "S", "M", "L", and "XL".
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > QualitativeValue (DISCUSS)
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
equal | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is equal to the object. | |
greater | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is greater than the object. | |
greaterOrEqual | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is greater than or equal to the object. | |
lesser | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is lesser than the object. | |
lesserOrEqual | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is lesser than or equal to the object. | |
nonEqual | OK | QualitativeValue | This ordering relation for qualitative values indicates that the subject is not equal to the object. | |
valueReference | OK | StructuredValue or Enumeration | A pointer to a secondary value that provides additional information on the original value, e.g. a reference temperature. | In GoodRelations, the range is the union of QuantitativeValue and QualitativeValue, but the additional schema.org types may prove useful in the future. |
Note: This element will be very important for future fashion use-cases!
A point value or interval for product characteristics and other purposes
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > QuantitativeValue
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
value | OK | Number | The value of the product characteristic. | gr:hasValue |
minValue | OK | Number | The lower value of the product characteristic. | gr:hasMinValue |
maxValue | OK | Number | The upper of the product characteristic. | gr:hasMaxValue |
unitCode | OK | Text | The unit of measurement given using the UN/CEFACT Common Code (3 characters). | gr:hasUnitOfMeasurement |
valueReference | OK | StructuredValue or Enumeration | A pointer to a secondary value that provides additional information on the original value, e.g. a reference temperature. | In GoodRelations, the range is the union of QuantitativeValue and QualitativeValue, but the additional schema.org types may prove useful in the future. |
A placeholder for multiple similar products of the same kind.
Position in the schema.org hierarchy: Thing > Product > SomeProducts
Note: Replicate all properties (existing and those coming from GoodRelations above) from http://schema.org/Product for this type; omitted in here for brevity.
Also, the inventoryLevel property from http://schema.org/Offer should include http://schema.org/SomeProducts as a compatible domain type to be in sync with GoodRelations.
A structured value indicating the quantity, unit of measurement, and business function of goods included in a bundle offer.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > TypeAndQuantityNode
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
amountOfThisGood | OK | Number | The quantity of the goods included in the offer. | |
businessFunction | OK | BusinessFunction | The business function (e.g. sell, lease, repair, dispose) of the offer. The default is http://purl.org/goodrelations/v1#Sell. | gr:hasBusinessFunction |
unitCode | OK | Text | The unit of measurement given using the UN/CEFACT Common Code (3 characters). | gr:hasUnitOfMeasurement |
typeOfGood | OK | Product | The product that this structured value is referring to. |
A structured value representing the duration and scope of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.
Position in the schema.org hierarchy: Thing > Intangible > StructuredValue > WarrantyPromise
Properties from GoodRelations | Status | Expected Type | Description | Comments, e.g. different naming in GoodRelations |
durationOfWarranty | OK | QuantitativeValue | "The duration of the warranty promise. Common unitCode values are ANN for year, MON for months, or DAY for days. | |
warrantyScope | OK | WarrantyScope | The scope of the warranty promise. | gr:hasWarrantyScope |
A range of of services that will be provided to a customer free of charge in case of a defect or malfunction of a product.
Position in the schema.org hierarchy: Thing > Intangible > Enumeration > WarrantyScope
Properties from http://schema.org/Thing | Status | Expected Type | Description | Comments |
description | OK | Text | A short description of the item. | |
image | OK | URL | URL of an image of the item. | |
name | OK | Text | The name of the item. | |
url | OK | URL | URL of the item. |
http://schema.org/Business - Business entity type: Business
http://schema.org/Enduser - Business entity type: End-user
http://schema.org/PublicInstitution - Business entity type: Public Institution
http://schema.org/Reseller - Business entity type: Reseller
http://schema.org/ConstructionInstallation - Business Function: Construction and installation
http://schema.org/Dispose - Business Function: Disposal
http://schema.org/LeaseOut - Business Function: Rental
http://schema.org/Maintain - Business Function: Maintenance
http://schema.org/ProvideService - Business Function: Service
http://schema.org/Repair - Business Function: Repair
http://schema.org/Sell - Business Function: Sell
http://schema.org/Monday - Day of the week: Monday
http://schema.org/Tuesday - Day of the week: Tuesday
http://schema.org/Wednesday - Day of the week: Wednesday
http://schema.org/Thursday - Day of the week: Thursday
http://schema.org/Friday - Day of the week: Friday
http://schema.org/Saturday - Day of the week: Saturday
http://schema.org/Sunday - Day of the week: Sunday
http://schema.org/PublicHolidays - Day of the week: Public Holidays
http://schema.org/DirectDownload - Delivery Mode: Direct download (gr:DeliveryModeDirectDownload)
http://schema.org/Freight - Delivery Mode: Freight(gr:DeliveryModeFreight)
http://schema.org/Mail - Delivery Mode: Mail / Postal service (gr: DeliveryModeMail)
http://schema.org/OwnFleet - Delivery Mode: By own fleet (gr: DeliveryModeOwnFleet)
http://schema.org/PickUp - Delivery Mode: In-store pick-up (gr: DeliveryModePickUp)
http://schema.org/DHL - Delivery Mode: DHL (tm)
http://schema.org/FederalExpress - Delivery Mode: Federal Express (tm)
http://schema.org/UPS - Delivery Mode: UPS (tm)
http://schema.org/DirectDebit - Payment method: Direct debit
http://schema.org/ByBankTransferInAdvance - Payment method: By bank transfer in advance
http://schema.org/ByInvoice - Payment method: By invoice
http://schema.org/Cash - Payment method: Cash
http://schema.org/CheckInAdvance - Payment method: Check in advance
http://schema.org/COD - Payment method: Cash on delivery
http://schema.org/GoogleCheckout - Payment method: Google Checkout (tm)
http://schema.org/PayPal - Payment method: PayPal (tm)
http://schema.org/PaySwarm - Payment method: Payswarm (tm)
http://schema.org/AmericanExpress - Payment method: American Express (tm)
http://schema.org/DinersClub - Payment method: Diners Club (tm)
http://schema.org/Discover - Payment method: Discover (tm)
http://schema.org/VISA - Payment method: VISA (tm)
http://schema.org/JCB - Payment method: JCB (tm)
http://schema.org/MasterCard - Payment method: MasterCard (tm)
http://schema.org/PartsAndLabor-BringIn - Warranty scope: Parts and labor, bring-in service.
http://schema.org/PartsAndLabor-PickUp - Warranty scope: Parts and labor, pick-up service.
http://schema.org/Labor-BringIn - Warranty scope: Labor, bring-in service.
The definition of http://schema.org/Product should be updated to include commodity services, e.g.
A product is anything that is made available for sale—for example, a pair of shoes, a concert ticket, or a car. Commodity services, like haircuts, can also be represented using this type.
It would be useful to have a common superclass like http://schema.org/BusinessEntity or http://schema.org/Agent that combines http://schema.org/Organization and http://schema.org/Person, because in some cases, the data sources may not support that distinction (e.g. a list of eBay member of which you do not know whether they are a company or a private seller).
It may be useful to add mapping axioms to the OWL version of schema.org, but this is secondary. We can also provide the mapping axioms in GoodRelations or as a separate file for interested audiences.
The respective work will be done directly in a GoodRelations service update once the integration into schema.org is final.