Warning: This tool or project is no longer maintained and kept available only for archival purposes. Since GoodRelations and schema.org have evolved significantly in the past years, the current status available on this page is unlikely to function as expected. We take no responsibility for any damage caused by the use of this outdated work, to the extent legally possible.

Due to a lack of resources, we are unable to provide support for this project outside of consulting projects or sponsored research. Please contact us if you can contribute resources to update and enhance these resources.

GoodRelations - The Web Vocabulary for E-Commerce

This is the archive of the goodrelations dicussion list

GoodRelations is a standardized vocabulary for product, price, and company data that can (1) be embedded into existing static and dynamic Web pages and that (2) can be processed by other computers. This increases the visibility of your products and services in the latest generation of search engines, recommender systems, and other novel applications.

[goodrelations] Bundles with optional choices in GoodRelations

Martin Hepp martin.hepp at ebusiness-unibw.org
Thu Sep 27 09:20:16 CEST 2012

Dear all:

I just answered a question on how to model bundles with optional choices on


The reply may be relevant for this list, too:


Currently, you can only model bundles with a defined set of objects in GoodRelations, but not optional choices, like

	• 1 Birthday cake and (1 candy OR 1 flower)
or quantity intervals, like

	• 1 Steak and UP TO 3 side-servings
We are considering to add this at a later point, but what you can do is model TWO gr:Offers (in a pseudo-syntax):

Offer 1
 includesObject 2 Candy
 includesObject 3 chocolates
 includesObject 1 cookie

Offer 2
 includesObject 3 chocolates
 includesObject 2 cookie
 includesObject 1 Candy

That would be semantically equivalent to what I assume you really want to say. Plus it has the advantage that a consuming client (search engine, browser extension, mobile app) does not have to do complex reasoning to expand the rules of allowable objects prior to matchmaking.

The only thing that is missing that way is the information that the two offers are kind of variants of each other. But then again, does it really differ whether the two choices are somehow related, other then by the fact that they include similar objects?

Here is a full example in Turtle syntax:

foo:offer a gr:Offering;
gr:hasBusinessFunction gr:Sell;
# ... other offer properties omitted for readability
gr:includesObject [ a gr:TypeAndQuantityNode;
                    gr:amountOfThisGood "1"^^xsd:float;
                    gr:hasUnitOfMeasurement "C62"^^xsd:string;
                    gr:typeOfGood foo:cellphone ];
gr:includesObject [ a gr:TypeAndQuantityNode;
                    gr:amountOfThisGood "2"^^xsd:float;
                    gr:hasUnitOfMeasurement "C62"^^xsd:string;
                    gr:typeOfGood foo:charger ] .

foo:cellphone a gr:SomeItems;
    gr:name "ACME Cellphone BulkyTalky"
    gr:hasEAN_UCC-13 "1234567890123"^^xsd:string .

foo:charger a gr:SomeItems;
    gr:name "ACME Travelcharger"
    gr:hasEAN_UCC-13 "2345678901234"^^xsd:string .

I hope that helps. If not, feel free to ask on the GoodRelations mailing list,

	• http://ebusiness-unibw.org/pipermail/goodrelations/
I hope that helps.

Martin Hepp

martin hepp
e-business & web science research group
universitaet der bundeswehr muenchen

e-mail:  hepp at ebusiness-unibw.org
phone:   +49-(0)89-6004-4217
fax:     +49-(0)89-6004-4620
www:     http://www.unibw.de/ebusiness/ (group)
         http://www.heppnetz.de/ (personal)
skype:   mfhepp 
twitter: mfhepp

Check out GoodRelations for E-Commerce on the Web of Linked Data!
* Project Main Page: http://purl.org/goodrelations/

More information about the goodrelations mailing list