Documentation/Conceptual model

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:

  1. An agent (e.g. a person or an organization),
  2. A promise (offer) to transfer some rights (ownership, temporary usage, a certain license, ...) on some object or to provide some service,
  3. An object (e.g. a camcorder, a house, a car,...) or service (e.g. a haircut),
  4. 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

  1. 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.