Understanding the Conceptual Model Behind GoodRelations
The goal of GoodRelations is to define a data structure for e-commerce that is
- industry-neutral, i.e. suited for consumer electronics, cars, tickets, real estate, labor, services, or any other type of goods,
- valid across the different stages of the value chain, i.e. from raw materials through retail to after-sales services, and
- syntax-neutral, i.e. it should work in microdata, RDFa, RDF/XML, Turtle, JSON, OData, GData, or any other popular syntax.
The Agent-Promise-Object-Compensation Model
This is achieved by using just four entities for representing e-commerce scenarios:
- An agent (e.g. a person or an organization),
- A promise (offer) to transfer some rights (ownership, temporary usage, a certain license, ...) on some object or to provide some service,
- An object (e.g. a camcorder, a house, a car,...) or service (e.g. a haircut),
- A certain compensation (e.g. an amount of money), made by the agent and related to the object or service.
A fifth entity that is often relevant is
- a location from which this offer is available (e.g. a store, a bus stop, a gas station,...).
This Agent-Promise-Object-Compensation Principle can be found across most industries and is the foundation of the generic power of GoodRelations. It allows you to use the same vocabulary for offering a camcorder as for a manicure service or for the disposal of used cars.
The respective classes in GoodRelations are
Figure: The Agent-Promise-Object-Compensation Principle in GoodRelations
720px|Figure: The Agent-Promise-Object-Compensation Principle in schema.org
720px|Figure: The Agent-Promise-Object-Compensation Principle with a simple string for the object.