Documentation/Conceptual model

From GoodRelations Wiki
Jump to: navigation, search

Understanding the Conceptual Model Behind GoodRelations

Construction.png
Work in progress: This page is an incomplete draft. Please help to improve it by addressing the issues from the discussion page and remove this template when finished.


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

Figure: The Agent-Promise-Object-Compensation Principle in schema.org

Figure: The Agent-Promise-Object-Compensation Principle with a simple string for the object.