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


 * gr:BusinessEntity for the agent, i.e. the company or individual,
 * gr:Offering for an offer to sell, repair, lease something, or to express interest in such an offer,
 * gr:ProductOrService for the object or service,
 * gr:PriceSpecification for the compensation, and
 * gr:Location for a store or location from which the offer is available (in previous versions:





.