WebSchemas/Vehicles

From W3C Wiki
Jump to: navigation, search


This is a WebSchemas proposal for Vehicles (Cars, Bikes, Boats, etc.) Sales and Rental in Schema.org for schema.org. See Proposals listing for more. Status: Proposal



Proposal for Vehicles - Cars, Bikes, Boats - Rental and Sales

Authors:

This proposal defines a small set of additional types and properties for schema.org that will cover typical scenarios related to the sales and rental of vehicles of typical kinds, like new and used cars, bikes, and boats, and related services.

It is a first contribution of the Automotive Ontology Working Group.

Overview

This proposal builds on the following vehicle-related extensions for GoodRelations, the e-commerce model of schema.org:

It adds the core classes, properties and enumerated values for describing cars, trucks, busses, bikes, and boats and their features. For describing commercial aspects of related offers, http://schema.org/Offer already provides the necessary level of detail. Thus, this proposal does not add new elements for commercial features.

Relationship to Configuration Information for Vehicles

Cars and other vehicles are often highly configurable products, for which the number of possible combinations can be as much as 10 to the power of 20 for a single vendor. Many manufacturers of cars offer cars in a built-to-order fashion, i.e. they market options spaces of possible cars to customers.

The space of actually available cars is a subset of the theoretically possible combinations, because

  1. technical constraints (a configuration would not work well or not at all),
  2. legal constraints (a configuration would not meet regulatory requirements for a target market),
  3. production constraints (a configuration will be logistically difficult or expensive to build), and
  4. marketing considerations (the manufacturer does not want to offer a certain configuration)

rule our certain configurations.

This proposal focuses on modeling fully-specified cars, like actual new or used cars, or enumerated sets of car configurations.

The modeling of configuration rules (e.g. which alternative options are available and how they can be combined) is outside the scope of this proposal. We plan a second proposal for the non-trivial problem of vehicle configuration and vehicle range information, which will complement this proposal.

The reasons for this staged approach are as follows:

  1. Configurable products are not yet supported by schema.org and the underlying GoodRelations product model. An extension for configurable vehicles should include a generic extension for configurable products, which requires additional time to develop.
  2. The number of Web sites that publish information about actual cars is by orders of magnitude bigger than then number of sites that publish or are able to publish configuration rules. Every dealer listing used and new car inventory and every car listing site will benefit from support for the proposed extension. Configuration rules will mainly be relevant for a manufacturer sites.
  3. The proposal is based on the existing product model of schema.org. A future extension for configurable products must be designed in a way compatible with the existing product model anyway, so there is no risk starting with actual vehicles.

Financing

Also not included in this proposal are elements for financing as additional payment option information. Such should be added by another industry-neutral extension proposal. The Volkswagen Vehicles Ontology (VVO) may serve as useful input for that, because it is based on the GoodRelations core model of payment. We may submit a respective extension proposal for financing in the future.

Motivating Examples

  • A site with used car offers wants to mark-up its individual car offers using schema.org.
  • A car manufacturer wants to mark up its product model information.
  • A rental car company wants to mark-up its fleet, rental offers, and conditions.

While the original intention was support for the automotive industry, basic support for bikes and boats has already been included, too.

Support for aircraft information could be added with moderate effort but is left out for the moment, because we think this should be a separate extension proposal based on additional domain expertise.

Examples of Web Sites:

Design Principles

  1. Reuse commercial properties from http://schema.org/Offer and the underlying GoodRelations conceptual model. Don't mix modeling vehicles with modeling offers to buy, rent, or service vehicles.
  2. Standardize objective vehicle characteristics and defer consensus for diverse and vendor-specific vehicle characteristics: Vehicles, and in particular cars, can have a hundred features and more. Some are very objective (e.g. fuel consumption under lab conditions, dimensions); some are best handled as text (e.g. interior colors), and some are very vendor-specific, e.g. engine types, safety features, etc.
  3. Balance between mark-up effort and usefulness of data: The data should be as useful as possible for search engines and other consumers, but the effort for Web developers must be also kept at a minimum.

These design principles are implemented as follows:

  1. Quantitative properties that do not require a unit of measurement can be modeled as either a plain numeric literal (http://schema.org/Number) or a http://schema.org/QuantitativeValue. Typical cases are the number of seats or doors. For a single value, a literal is sufficient. For a range, a http://schema.org/QuantitativeValue is more appropriate.
  2. Qualitative properties, like fuel types or body styles can be modeled either using a Freebase URI, site-specific URI, or plain text. If a site is able to provide the URI of a authoritative definition for a value or characteristic, this is more useful, but if the site can provide only a string, this is better than nothing.
  3. Limit the number of standardized properties and use the complementing property-values proposal for schema.org for vendor-specific vehicle features.

Extension Proposal

Git Repository

The latest version of the proposal is now in a Git repository at github.com at: https://github.com/mfhepp/sdo-vehicles. The earlier Mercurial repository and the Git repository on bitbucket has been deprecated and set to private in order to avoid confusion.

Development Version on GAE

A development version of the proposal is available at: http://sdo-vehicles.appspot.com/. See e.g.

In the following, we list the elements in the proposal. The authoritative proposal is the version in the Git repository at: https://github.com/mfhepp/sdo-vehicles.

Changes to Existing Elements

  • The textual definitions for Car and Vehicle will be augmented.
  • Car will be a superclass of the new MotorizedRoadVehicle class instead of Vehicle.

New Terms

The following terms will be added:

New Classes

  • MotorizedRoadVehicle
    • A motorized road vehicle is a wheeled land vehicle whose main propulsion is provided by an engine or motor.
  • Truck
    • A lorry (British English) or truck (American English) is a motor vehicle designed to transport cargo.
  • Van
    • A van is a kind of vehicle used for transporting goods or groups of people. It is usually a box-shaped vehicle on four wheels, about the same width and length as a large automobile, but taller and usually higher off the ground, also referred to as a light commercial vehicle or LCV.
  • MotorizedBicycle
    • A motorized bicycle is a bicycle with an attached motor used to power the vehicle, or to assist with pedaling.
  • BusOrCoach
    • A bus (also omnibus or autobus) is a road vehicle designed to carry passengers. Buses have a capacity as high as 300 passengers and are widely used for public transportation. Coaches are luxury busses, usually in service for long distance travel.
  • Motorcycle
    • A motorcycle or motorbike is a single-track, two-wheeled motor vehicle.
  • Bike
    • A bicycle or bike is a pedal-driven, human-powered, single-track vehicle, having two wheels attached to a frame, one behind the other. Some bicycles have a small combustion or electric engine that assists with the pedaling.
  • Watercraft
    • A watercraft is a vehicle, vessel or craft designed to move across or through water.
  • Boat
    • A boat is a watercraft of modest size designed to float or plane, to provide passage across water.
  • MotorBoat
    • A motorboat is a boat which is powered by an engine.
  • SailingBoat
    • A sailboat or sailing boat is a boat propelled partly or entirely by sails.
  • SteeringPositionValue
    • A value indicating a steering position.
  • EmissionStandardValue
    • A value indicating the an emission standard.
  • TransmissionTypeValue
    • A value indicating a type of transmission.
  • DriveWheelConfigurationValue
    • A value indicating which roadwheels will receive torque.
  • EngineTypeValue
    • A value indicating an engine type.
  • FuelTypeValue
    • A value indicating a type of fuel.
  • BodyStyleValue
    • A value indicating the body style of a vehicle.
  • CarUsageType
    • A value indicating a special usage of a car, e.g. commercial rental, driving school, or as a taxi.

New Properties

  • steeringPosition
  • fuelCapacity
  • numberOfOwners
  • roofLoad
  • fuelConsumption
  • cargoVolume
  • driveWheelConfiguration
  • wheelbase
  • payload
  • weightTotal
  • transmission
  • fuelType
  • engineDisplacement
  • mileageFromOdometer
  • bodyStyle
  • tongueWeight
  • doors
  • speed
  • meetsEmissionStandard
  • fuelEfficiency
  • gears
  • axles
  • engineType
  • seatingCapacity
  • trailerWeight
  • acceleration
  • enginePower
  • productionDate
  • specialUsage
  • damages
  • firstRegistration
  • engineName
  • ACRISSCode
  • VIN
  • modelDate
  • colorInterior
  • interiorType
  • airbags
  • torque
  • emissionsCO2

New Individuals

  • SteeringPositionValue: RightHandDriving and LeftHandDriving
  • FuelTypeValue: TwoStrokeMixture (other fuel types are readily available from DBPedia or Freebase)
  • DriveWheelConfigurationValue: 4WD, AWD, FWD, RWD
  • CarUsageType: RentalUsage, DrivingSchoolUsage, TaxiUsage

Relationship to Other Proposals

The proposal does not critically depend on, but will greatly benefit from the property-value pairs proposal for the many vehicle feature details that are difficult to standardize in a global, vendor-independent form.

Markup Example

HTML without RDFa or Microdata

<div >
  <strong>Contact Name: </strong> <span>Brent</span>
  <div>$18,000</div>
<!-- Car Details -->
  <div id="product">
    <strong>2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox</strong>
    <p>2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox in perfect 
    mechanical condition and low kilometres. It's impressive 2.0 litre turbo engine makes 
    every drive a fun experience. Well looked after by one owner with full service history. 
    It drives like new and has only done 50,000kms. (...)</p>
    <img href="2009_Volkswagen_Golf_V_GTI_MY09.png" />
    <p><strong>Color: </strong>Black</p>
    <p><strong>Interior Color: </strong>Black</p>
    <p><strong>Interior Type: </strong>Leather upholstery, wood paneling</p>
    <p><strong>Model Year: </strong><time>2009</time></p>    
    <p><strong>Transmission: </strong>6 speed Sports Automatic Dual Clutch</p>  
    <p><strong>VIN: </strong>WVWZZZ1KZ9U######</p>  
    <p><strong>Number of gears: </strong>6</p>    
    <p><strong>Body: </strong>Hatchback</p>
    <p><strong>Number of doors: </strong>3</p>
    <p><strong>Number of seats: </strong>5</p>
    <p><strong>Drive Type: </strong>Front Wheel Drive</p>
    <p><strong>Engine: </strong>4 cylinder Petrol Turbo Intercooled 2.0 L (1984 cc)</p>
    <p><strong>Engine Power: </strong>147 kw at 5100 rpm</p>
    <p><strong>Fuel type: </strong>Petrol - Premium ULP</p>
    <p><strong>Engine Size: </strong>1984 ccm</p>
  	<p><strong>Mileage: </strong>53100 km</p>
    <p><strong>Number of airbags: </strong>6</p>
    <p><strong>CO2 Emission Combined: </strong>192 g/km</p>
</div>

Microdata

<!-- Seller Details -->
<div itemscope itemtype="http://schema.org/Person">
  <strong>Contact Name: </strong> <span itemprop="name givenName">Brent</span>
  <div itemprop="makesOffer" itemscope itemtype="http://schema.org/Offer" itemref="product">
    <span itemprop="priceSpecification" itemscope 
        itemtype="http://schema.org/UnitPriceSpecification">
      <meta itemprop="priceCurrency" content="USD">$
      <meta itemprop="price" content="18000">18,000
     </span>
   </div>
</div>
<!-- Car Details -->
<div id="product" itemprop="itemOffered" itemscope itemtype="http://schema.org/Car">
  <strong itemprop="name">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox</strong>
  <p itemprop="description">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox in perfect 
  mechanical condition and low kilometres. It's impressive 2.0 litre turbo engine makes 
  every drive a fun experience. Well looked after by one owner with full service history. 
  It drives like new and has only done 50,000kms. (...)</p>
  <img itemprop="image" href="2009_Volkswagen_Golf_V_GTI_MY09.png" />
  <p><strong>Color: </strong><span itemprop="color">Black</span></p>
  <p><strong>Interior Color: </strong><span itemprop="colorInterior">Black</span></p>
  <p><strong>Interior Type: </strong><span itemprop="interiorType">Leather upholstery, 
    wood paneling</span></p>
  <p><strong>Model Year: </strong><time itemprop="modelDate">2009</time></p>    
  <p><strong>Transmission: </strong>
    <span itemprop="transmission">6 speed Sports Automatic Dual Clutch</span>
  </p>  
  <p><strong>VIN: </strong><span itemprop="VIN">WVWZZZ1KZ9U######</span></p>  
  <p><strong>Number of gears: </strong><span itemprop="gears">6</span></p>    
  <p><strong>Body: </strong>
    <span itemprop="bodyStyle">Hatchback</span>
  </p>
  <p><strong>Number of doors: </strong><span itemprop="doors">3</span></p>
  <p><strong>Number of seats: </strong><span itemprop="seatingCapacity">5</span></p>
  <p><strong>Drive Type: </strong>
    <link itemprop="driveWheelConfiguration" href="http://schema.org/FWD" />
    Front Wheel Drive
  </p>
  <p><strong>Engine: </strong>
    <span itemprop="engineName">4 cylinder Petrol Turbo Intercooled 2.0 L (1984 cc)</span>
  </p>
  <p><strong>Engine Power: </strong>
    <span itemprop="enginePower" itemscope itemtype="http://schema.org/QuantitativeValue">
      <span itemprop="value">147</span> 
      <meta itemprop="unitCode" content="KWT">kw
      at <span itemprop="valueReference" itemscope itemtype="http://schema.org/QuantitativeValue">
        <meta itemprop="name" content="referenceRPM"> 
        <span itemprop="value">5100</span> 
        <meta itemprop="unitCode" content="RPM">rpm
      </span>
    </span>
  </p>
  <p><strong>Fuel type: </strong>
    <span itemprop="fuelType">Petrol - Premium ULP</span>     
  </p>
  <p><strong>Engine Size: </strong>
    <span itemprop="engineDisplacement" itemscope itemtype="http://schema.org/QuantitativeValue">
      <span itemprop="value">1984</span> 
      <meta itemprop="unitCode" content="CMQ">ccm
    </span>
  </p>
  <p><strong>Mileage: </strong>
    <span itemprop="mileageFromOdometer" itemscope itemtype="http://schema.org/QuantitativeValue">
      <span itemprop="value">53100</span> 
      <meta itemprop="unitCode" content="KMT">km
    </span>
  </p>
  <p><strong>Number of airbags: </strong><span itemprop="airbags">6</span></p>
  <p><strong>CO2 Emission Combined: </strong><span itemprop="emissionCO2">192</span> g/km</p>
</div>

RDFa

<!-- Seller Details -->
<div vocab="http://schema.org/" typeof="Person">
<strong>Contact Name: </strong> <span property="name givenName">Brent</span>
  <div property="makesOffer" typeof="Offer">
    <span property="priceSpecification" typeof="UnitPriceSpecification">
      <meta property="priceCurrency" content="USD">$
      <meta property="price" content="18000">18,000
    </span>
<!-- Car Details -->
    <div id="product" property="itemOffered" typeof="Car">
      <strong property="name">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox</strong>
      <p property="description">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox in perfect 
        mechanical condition and low kilometres. It's impressive 2.0 litre turbo engine makes 
        every drive a fun experience. Well looked after by one owner with full service history. 
        It drives like new and has only done 50,000kms. (...)
      </p>
      <img property="image" href="2009_Volkswagen_Golf_V_GTI_MY09.png" />
      <p><strong>Color: </strong><span property="color">Black</span></p>
      <p><strong>Interior Color: </strong><span property="colorInterior">Black</span></p>
      <p><strong>Interior Type: </strong><span property="interiorType">Leather upholstery, wood paneling</span></p>
      <p><strong>Model Year: </strong><time property="modelDate">2009</time></p> 
      <p><strong>Transmission: </strong>
        <span property="transmission">6 speed Sports Automatic Dual Clutch</span>
      </p> 
      <p><strong>VIN: </strong><span property="VIN">WVWZZZ1KZ9U######</span></p> 
      <p><strong>Number of gears: </strong><span property="gears">6</span></p> 
      <p><strong>Body: </strong>
        <span property="bodyStyle">Hatchback</span>
      </p>
      <p><strong>Number of doors: </strong><span property="doors">3</span></p>
      <p><strong>Number of seats: </strong><span property="seatingCapacity">5</span></p>
      <p><strong>Drive Type: </strong>
        <link property="driveWheelConfiguration" href="http://schema.org/FWD" />
        Front Wheel Drive
      </p>
      <p><strong>Engine: </strong>
        <span property="engineName">4 cylinder Petrol Turbo Intercooled 2.0 L (1984 cc)</span>
      </p>
      <p><strong>Engine Power: </strong>
        <span property="enginePower" typeof="QuantitativeValue">
          <span property="value">147</span> 
          <meta property="unitCode" content="KWT">kw
          at <span property="valueReference" typeof="QuantitativeValue">
            <meta property="name" content="referenceRPM"> 
            <span property="value">5100</span> 
            <meta property="unitCode" content="RPM">rpm
          </span>
        </span>
      </p>
      <p><strong>Fuel type: </strong>
        <span property="fuelType">Petrol - Premium ULP</span>
      </p>
      <p><strong>Engine Size: </strong>
        <span property="engineDisplacement" typeof="QuantitativeValue">
          <span property="value">1984</span> 
          <meta property="unitCode" content="CMQ">ccm
        </span>
      </p>
      <p><strong>Mileage: </strong>
        <span property="mileageFromOdometer" typeof="QuantitativeValue">
          <span property="value">53100</span> 
          <meta property="unitCode" content="KMT">km
        </span>
      </p>
      <p><strong>Number of airbags: </strong><span property="airbags">6</span></p>
      <p><strong>CO2 Emission Combined: </strong><span property="emissionCO2">192</span> g/km</p>
    </div>
  </div>
</div>

Special Cases

DBPedia and Freebase URIs as Values

Several properties will accept either text or entities as a value. In the later case, it is beneficial if the publisher of the data can link locally defined value entities to Freebase or DBPedia entities, because this will allow consuming clients to better understand the data.

This is built into the proposal, but not enforced nor directly explained in the textual definitions of the elements.

Example:

<div itemscope itemtype="http://schema.org/Car">
	<strong itemprop="name">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox</strong>
	<p itemprop="description">2009 Volkswagen(...)</p>
	<p><strong>Transmission: </strong>
  	  <div itemprop="transmission" itemscope itemtype="http://schema.org/TransmissionTypeValue">
    	  <span itemprop="name">6 speed Sports Automatic Dual Clutch</span>
    	  <link itemprop="sameAs" href="http://www.freebase.com/m/01xc2y" />        
  	</div>
	</p>  
</div>

It is also possible to directly use an authoritative URI as a value, but this will be more difficult to understand for some clients:

<div itemscope itemtype="http://schema.org/Car">
	<strong itemprop="name">2009 Volkswagen Golf V GTI MY09 Direct-Shift Gearbox</strong>
	<p itemprop="description">2009 Volkswagen(...)</p>
	<p><strong>Transmission: </strong>
  	  <link itemprop="transmission" href="http://www.freebase.com/m/01xc2y" /> 6 speed Sports Automatic Dual Clutch      
</div>

Non-standard Vehicle Features

For vehicle features that are do not match the properties of the extension proposal, we recommend using the property-value proposal for schema.org.

For examples of this pattern, see WebSchemas/PropertyValuePairs#Markup_Examples.

Comments and Feedback

Please join the Automotive Ontology Working Group or post to the public-vocabs@w3.org mailing list if you want to raise issues or have suggestions on how to improve the proposal.

Pending Issues

schema:feature

  • Shall we add a property schema:feature as subproperty of schema:additionalProperty (from the parallel property-values proposal) in order to point developers to the fact that they should use this pattern for all non-

standardized car features (like audio, power windows, cup holder, sunroof, ...)? Or will it be enough to document that properly in the examples?

Remove Types for Value Groups

  • Shall we remove the eight types that are just there for grouping values
    • SteeringPositionValue - A value indicating a steering position.
    • EmissionStandardValue - A value indicating the an emission standard.
    • TransmissionTypeValue - A value indicating a type of transmission.
    • DriveWheelConfigurationValue - A value indicating which roadwheels will receive torque.
    • EngineTypeValue - A value indicating an engine type.
    • FuelTypeValue - A value indicating a type of fuel.
    • BodyStyleValue - A value indicating the body style of a vehicle.
    • CarUsageType - A value indicating a special usage of a car, e.g. commercial rental, driving school, or as a taxi.
  • Or at least those that do not have individuals in schema.org, like
    • SteeringPositionValue: RightHandDriving and LeftHandDriving
    • FuelTypeValue: TwoStrokeMixture (other fuel types are readily available from DBPedia or Freebase)
    • DriveWheelConfigurationValue: 4WD, AWD, FWD, RWD
    • CarUsageType: RentalUsage, DrivingSchoolUsage, TaxiUsage

We could omit all of them or at least

  • EmissionStandardValue
  • TransmissionTypeValue
  • EngineTypeValue
  • BodyStyleValue

With a range of Text OR QualitativeValue, we would have all we need and trim down the number of new classes from 19 to 15 (modest trim) or 11 (if we remove all types for groups of values).

A counterargument against removing them is that in other branches of schema.org, we have types for groups of values, and it will make the vocabulary more manageable as it grows.

Define more Fuel Types

In addition to TwoStrokeMixture, we could add individuals for all common fuel types, e.g. those from the Vehicle Data Specification from the W3C Automotive and Web Platform Business Group:

  • Gasoline
  • Methanol
  • Ethanol
  • Diesel
  • LPG
  • CNG
  • Propane
  • Electric

Counterargument: In general, we try to externalize enumerations from schema.org. For fuel types, strings combined with pointers to Freebase or DBPedia or Wikipedia save the same purpose and evolve with the domain with no need to update schema.org if new fuel types become relevant.

Related Work

See also: http://carobka.ru/cars_reviews/ford/focus/3831.html has an example of an extension Yandex have been using informally.