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] GoodRelations & Affiliate Marketing: Understanding the Power of the Schema

Martin Hepp (UniBW) hepp at ebusiness-unibw.org
Tue Oct 6 12:04:53 CEST 2009

-- apologies for resending, the original message was not delivered --

Dear all:

The new German E-Commerce legislation requires listing shipment and
delivery charges directly with the price per item.

This gives a nice showcase to illustrate the power of the GoodRelations
vocabulary for exchanging offer data for affiliate business.

With a simply query as shown below, you could get the unit price
(?pvalue) and the shipment charges (?svalue)  from your offer data.

# List offers that have unit price and delivery charge data

SELECT DISTINCT ?o, (?pvalue + ?svalue), ?pvalue, ?svalue, ?pcur WHERE {
?o a gr:Offering.
?o rdfs:label ?label.
?o gr:hasPriceSpecification ?p.
?p a gr:UnitPriceSpecification.
?p gr:hasCurrency ?pcur.
?p gr:hasCurrencyValue ?pvalue.
?o gr:hasPriceSpecification ?s.
?s a gr:DeliveryChargeSpecification.
?s gr:hasCurrency ?scur.
?s gr:hasCurrencyValue ?svalue.
FILTER (?pcur = ?scur)

You could also list all business entities whose offers are missing
delivery charge data for at least one offer:

# List business entities whise offers lack delivery charge data

?b a gr:BusinessEntity.
?b gr:legalName ?name.
?b gr:offers ?o.
?o a gr:Offering.
?o gr:hasPriceSpecification ?p.
?p a gr:UnitPriceSpecification.
{?o gr:hasPriceSpecification ?s.
?s a gr:DeliveryChargeSpecification.
?s gr:hasCurrency ?scur.
?s gr:hasCurrencyValue ?svalue.

For more recipes and examples, see the developer's wiki at


Best wishes

Martin Hepp

PS: You can try those queries on a small subset of GoodRelations data via

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

e-mail:  mhepp at computer.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!


Recipe for Yahoo SearchMonkey:

Talk at the Semantic Technology Conference 2009:
"Semantic Web-based E-Commerce: The GoodRelations Ontology"

Talk at

Overview article on Semantic Universe:

Project page:

Resources for developers:

Tutorial materials:
CEC'09 2009 Tutorial: The Web of Data for E-Commerce: A Hands-on 
Introduction to the GoodRelations Ontology, RDFa, and Yahoo! SearchMonkey

More information about the goodrelations mailing list