Latest version: http://purl.org/coo/ns (RDF/XML, HTML)
Last update: 2010-10-12
Author: Martin Hepp, Hepp Research GmbH
The COO provides a vocabulary for exposing available configuration options for car models. It allows indicating choices that can be made as well as compatibility, dependency, and inclusion information. The ontology imports and extends the GoodRelations ontology for e-commerce, which provides an abstract framework for product model information via gr:ProductOrServiceModel and its associated properies.
The main difference between COO and the default patterns for model data in GoodRelations is that GoodRelations requires the materialization of all choices for features, which can quickly lead to very large amounts of data if features can be combines rather freely, due to the combinatorial effects.
Vocabulary: http://purl.org/coo/ns
Namespace: http://purl.org/coo/ns#
The Car Options Ontology is designed to be used in combination with GoodRelations for the commercial aspects of offers for sale or rental, and the Vehicle Sales Ontology for car features.
See http://purl.org/goodrelations/ and http://purl.org/vso/ns for more information.
This document is the official specification. For the other developer resources, please check:
In this section we give brief examples of how to use the Car Options Ontology.
Turtle:
# Volkswagen (Company) ex:VW a gr:BusinessEntity ; gr:legalName "Volkswagen AG" ; rdfs:label "Volkswagen AG"@en ; rdfs:comment "Volkswagen is the leading car manufacturer in the world"@en ; foaf:page <http://www.volkswagen.co.uk/> . # Base Model ex:GolfBaseModel a coo:BaseModel, vso:Automobile ; rdfs:label "Golf (2010)"@en ; rdfs:comment "The Volkswagen Golf is the most popular car model in the world."@en ; gr:hasManufacturer ex:VW ; vso:modelDate "2010-01-01"^^xsd:date ; # year-only data is not possible in xsd:date and also theoretically problematic vso:bodyStyle <http://dbpedia.org/resource/Hatchback> ; vso:axles [ a gr:QuantitativeValueInteger ; gr:hasValueInteger "2"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; vso:fuelTankVolume [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "50"^^xsd:float ; gr:hasUnitOfMeasurement "LTR"^^xsd:string ] ; vso:height [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "150"^^xsd:float ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ] ; vso:length [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "520"^^xsd:float ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ] ; vso:width [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "175"^^xsd:float ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ] ; vso:wheelbase [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "380"^^xsd:float ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ] ; vso:ACRISSCode "CCMR"^^xsd:string ; foaf:page <http://www.volkswagen.co.uk/2010/Golf/> . # URI of the web page .
Turtle:
# Available Trims ex:GolfBaseModel coo:hasTrim ex:GolfS, ex:GolfMatch . # Trims ex:GolfS a coo:Trim, vso:Automobile ; rdfs:label "Golf S (2010)"@en ; rdfs:comment "The Volkswagen Golf S trim is the entry configuration for your Golf."@en ; gr:isVariantOf ex:GolfBaseModel ; # inheriting features from base model # Fixed parts / features for this trim: Qualitative vso:feature dbpedia:Cup_holder, # Add more DBPedia / Wikipedia URIs for additional features dbpedia:Power_window, dbpedia:Air_conditioner ; # Consider using VVO / VW-specific URIs # Fixed parts / features for this trim: Quantitative vso:cargoVolume [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "500"^^xsd:float ; gr:hasUnitOfMeasurement "LTR"^^xsd:string ] ; # Configurable components / features # NONE, since they are available only at the level of Derivatives foaf:depiction <http://www.volkswagen.co.uk/2010/Golf/GolfS/image1.jpg> ; # URI of a photo foaf:page <http://www.volkswagen.co.uk/2010/Golf/GolfS/> . # URI of the web page ex:GolfMatch a coo:Trim, vso:Automobile ; rdfs:label "Golf Match (2010)"@en ; rdfs:comment "The Volkswagen Golf Match trim is the luxury configuration for your Golf."@en ; gr:isVariantOf ex:GolfBaseModel ; # inheriting features from base model # Fixed parts / features for this trim: Qualitative vso:feature dbpedia:Cup_holder, # Add more DBPedia / Wikipedia URIs for additional features dbpedia:Power_window, dbpedia:Air_conditioner, dbpedia:Armrest, dbpedia:Tow_hitch, dbpedia:Power_steering, dbpedia:Child_safety_lock, dbpedia:Parking_sensors ; # Consider using VVO / VW-specific URIs # Fixed parts / features for this trim: Quantitative vso:cargoVolume [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "500"^^xsd:float ; gr:hasUnitOfMeasurement "LTR"^^xsd:string ] ; # Configurable components / features # NONE, since they are available only at the level of Derivatives foaf:depiction <http://www.volkswagen.co.uk/2010/Golf/GolfMatch/image1.jpg> ; # URI of a photo foaf:page <http://www.volkswagen.co.uk/2010/Golf/GolfMatch/> . # URI of the web page
Turtle:
# Available Derivatives ex:GolfS coo:hasDerivative ex:GolfS16TDI . # Add more # Derivative with SpecItemCollections ex:GolfS16TDI a coo:Derivative, vso:Automobile ; rdfs:label "Golf S 1.6 TDI 3door Manual (2010)"@en ; rdfs:comment "The Volkswagen Golf S 1.6 TDI 3door package with manual transmission is the best deal for budget-oriented power drivers."@en ; gr:isVariantOf ex:GolfS ; # inheriting features from trim # Fixed parts / features for this Derivative: Qualitative vso:feature dbpedia:Anti-lock_braking_system ; # Consider using VVO / VW-specific URIs vso:transmission dbpedia:Manual_transmission ; # Consider using VVO / VW-specific URIs vso:fuelType dbpedia:Diesel ; # Consider using VVO / VW-specific URIs # Fixed parts / features for this trim: Quantitative vso:doors [ a gr:QuantitativeValueInteger ; gr:hasValueInteger "3"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; vso:seatingCapacity [ a gr:QuantitativeValueInteger ; gr:hasMinValueInteger "1"^^xsd:int ; gr:hasMaxValueInteger "5"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; vso:gearsTotal [ a gr:QuantitativeValueInteger ; gr:hasValueInteger "6"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] ; vso:engineDisplacement [ a gr:QuantitativeValueFloat ; gr:hasValueFloat "1.6"^^xsd:float ; gr:hasUnitOfMeasurement "LTR"^^xsd:string ] ; vso:engineName "1.6 TDI"@en ; # Configurable components / features coo:hasSpecItems ex:Colors1, ex:AudioOptions1 ; # Compatibility information coo:compatibility ex:ConfigurationInfo1, ex:ConfigurationInfo2a, ex:ConfigurationInfo2b, ex:ConfigurationInfo2c ; foaf:depiction <http://www.volkswagen.co.uk/2010/Golf/GolfS/GolfS16TDI.jpg> ; # URI of a photo foaf:page <http://www.volkswagen.co.uk/2010/Golf/GolfS/GolfS16TDI/> . # URI of the web page # Spec Items ex:Colors1 a coo:SpecItemCollection ; # A set of color choices rdfs:label "Color"@en ; coo:default ex:OceanBlue ; # The default color is ocean blue coo:availableChoice ex:Silver, ex:Gold, ex:Black ; coo:max 1 ; # exactly one color must be chosen coo:min 1 ; coo:displayPos 1 . # The color choice should come first in a user dialog ex:AudioOptions1 a coo:SpecItemCollection ; # A set of color choices rdfs:label "Audio Option"@en ; coo:default ex:AMFMRadio ; # The default color is an AMFMRadio coo:availableChoice ex:CD, ex:MultimediaStation ; coo:max 1 ; # at max one Audio option can be chosen coo:min 0 ; coo:displayPos 2 . # The audio choice should come second in a user dialog # Choices ex:OceanBlue a coo:ChoiceOrComponent ; # Note that this is a subclass of gr:ProductOrServiceModel # So ontologically, this is not a color, but a feature document to be added to an existing model or car rdfs:label "ocean blue"@en ; coo:featureOverride [ a coo:PropertySpecification ; vso:color "ocean blue"@en ] ; # Important: The car will be ocean blue, not the option! coo:displayPos 1 . ex:Silver a coo:ChoiceOrComponent ; rdfs:label "silver"@en ; coo:featureOverride [ a coo:PropertySpecification ; vso:color "silver"@en] coo:displayPos 2 . ex:Gold a coo:ChoiceOrComponent ; rdfs:label "gold"@en ; coo:featureOverride [ a coo:PropertySpecification ; vso:color "gold"@en ] ; coo:displayPos 3 . ex:Black a coo:ChoiceOrComponent ; rdfs:label "black"@en ; coo:featureOverride [ a coo:PropertySpecification ; vso:color "black"@en ] ; coo:displayPos 4 . ex:AMFMRadio a coo:ChoiceOrComponent ; rdfs:label "AM/FM Radio"@en ; # Note that this is a subclass of gr:ProductOrServiceModel # So ontologically, this is the model of a radio an can have all properties for radios from various vocabularies # Add radio properties here, if available # It also modifies the properties of the resulting vehicle to vso:feature dbpedia:Radio coo:featureOverride [ a coo:PropertySpecification ; vso:feature dbpedia:Radio ] ; coo:displayPos 1 . ex:CD a coo:ChoiceOrComponent ; rdfs:label "CD player for cars"@en ; coo:featureOverride [ a coo:PropertySpecification ; vso:feature dbpedia:CD_Changer ] ; # Add CD player properties here, if available coo:displayPos 2 . ex:MultimediaStation a coo:ChoiceOrComponent ; rdfs:label "Multimedia Station for cars"@en ; # Add additional properties here, if available coo:displayPos 3 .
Turtle:
# The AM/FM radio option is not possible in combination with a silver color ex:ConfigurationInfo1 a coo:ConfigurationInfo ; coo:includesChoices ex:AMFMRadio, ex:Silver ; coo:valid "false"^^xsd:boolean . # Alternative modeling using pairwise statement ex:Silver coo:inCompatibleWith ex:AMFMRadio . # The color option gold is assured to be compatible with any audio option ex:ConfigurationInfo2a a coo:ConfigurationInfo ; coo:includesChoices ex:AMFMRadio, ex:Gold ; coo:valid "true"^^xsd:boolean . ex:ConfigurationInfo2b a coo:ConfigurationInfo ; coo:includesChoices ex:CD, ex:Gold ; coo:valid "true"^^xsd:boolean . ex:ConfigurationInfo2c a coo:ConfigurationInfo ; coo:includesChoices ex:MultimediaStation, ex:Gold ; coo:valid "true"^^xsd:boolean . # Alternative modeling using three pairwise statements ex:Gold coo:compatibleWith ex:AMFMRadio, ex:CD, ex:MultimediaStation . # Inclusion of features # If you choose the Multimedia station, you also get power speakers ex:MultimediaStation coo:includes ex:PowerSpeakers . ex:PowerSpeakers a coo:ChoiceOrComponent ; rdfs:label "2 x 100 W Power Speakers"@en . # Add additional speaker properties here, if available # Dependecies of features # If you choose the Multimedia station, you need an extra battery ex:MultimediaStation coo:dependsOn ex:ExtraBattery . ex:ExtraBattery a coo:ChoiceOrComponent ; rdfs:label "100 Ah Extra Battery"@en . # Add additional battery properties here, if available # Now, we also need to state that the extra battery is an option for the derivative: ex:GolfS16TDI coo:hasSpecItems ex:AdditionalBattery . ex:AdditionalBattery a coo:SpecItemCollection ; # A set of battery choices coo:availableChoice ex:ExtraBattery ; coo:max 1 ; coo:min 0 . # Compatibility info could be added
Turtle:
# Complex Property Specification via coo:featureOverride # The multimedia station is so big that you give up one seat (4 instead of 5) # Note that the new seating capacity is not a property of the multimedia station, but of the resulting car ex:MultimediaStation coo:featureOverride ex:ReductionOfSeats . ex:ReductionOfSeats a coo:ComplexPropertySpecification ; vso:seatingCapacity [ a gr:QuantitativeValueInteger ; gr:hasMinValueInteger "1"^^xsd:int ; gr:hasMaxValueInteger "4"^^xsd:int ; gr:hasUnitOfMeasurement "C62"^^xsd:string ] . # You should also state that this is a valid configuration ex:GolfS16TDI coo:compatibility ex:ConfigurationInfo3 . ex:ConfigurationInfo3 a coo:ConfigurationInfo ; coo:includesChoices ex:ExtraBattery, ex:PowerSpeakers, ex:MultimediaStation ; coo:compatible "true"^^xsd:boolean . # Relative Price Specifications via coo:priceModifier # Variant 1: The multimedia station increases the car price by 500 EUR ex:MultimediaStation coo:priceModifier ex:MultimediaUpgrade . ex:MultimediaUpgrade a coo:RelativePriceSpecification ; gr:hasCurrency "EUR"^^xsd:string ; gr:hasCurrencyValue "500"^^xsd:float . # Variant 2: The multimedia station for golden cars is just 400 EUR ex:ConfigurationInfo2c coo:priceModifier ex:MultimediaGoldUpgrade . ex:MultimediaGoldUpgrade a coo:RelativePriceSpecification ; gr:hasCurrency "EUR"^^xsd:string ; gr:hasCurrencyValue "400"^^xsd:float .
You can try the queries against the sample data provided at http://www.heppnetz.de/ontologies/tribalddb/coo/examples.ttl.
Scenario: List all configuration options (coo:SpecItem) for a given derivative (coo:Derivative)
SPARQL Query:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX coo: <http://purl.org/coo/ns#> PREFIX ex: <http://www.heppnetz.de/ontologies/tribalddb/coo/examples#> # List SpecItems and Choices for a particular coo:Derivative # Note: This does not yet include a check for buildability SELECT * WHERE { ex:GolfS16TDI coo:hasSpecItems ?s . ?s rdfs:label ?ls . OPTIONAL {?s coo:displayPos ?ps } . ?s coo:availableChoice ?c . ?c rdfs:label ?lc . OPTIONAL {?s coo:displayPos ?pc } . } ORDER BY ?ps ?pc LIMIT 500
Scenario: Can the color option "silver" be combined with an AM/FM radio for the GolfS16TDI derivative?
SPARQL Query:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX coo: <http://purl.org/coo/ns#> PREFIX ex: <http://www.heppnetz.de/ontologies/tribalddb/coo/examples#> # If the result is true, you know it's valid # If the result is false, you know it is invalid SELECT ?valid WHERE { ex:GolfS16TDI coo:compatibility ?ci. ?ci coo:includesChoices ex:Silver . ?ci coo:includesChoices ex:AMFMRadio . ?ci coo:valid ?valid . }
URI http://purl.org/coo/ns#
rdfs:label Car Options Ontology
dc:subject E-Commerce, E-Business, GoodRelations, Ontology, Cars, Automobiles
dc:contributor Charles Sandeman-Craik, Tribal DDB; Chris Jenkins, Tribal DDB; Tim Redding, Tribal DDB; Yago Otero, Tribal DDB; William Greenly, Tribal DDB; Robin Dingle, Volkswagen UK;
dc:rights The Car Options Ontology is available under the Creative Commons Attribution 3.0 Unported license; see http://creativecommons.org/licenses/by/3.0/. In a nutshell, you are free to copy, distribute and transmit the work; to remix/adapt the work (e.g. to import the ontology and create specializations of its elements), as long as you attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
Cardinality Recommendations
For properties, cardinality
recommendations are given in the form "propertyName (0..*)".
This indicates the recommended range for the number of occurrences of this property for the same subject.
The following variants are used:
Note: These cardinality recommendations are NOT modeled as OWL cardinality constraints, since the OWL formal semantics does not match the intended semantics.
URI http://purl.org/coo/ns#BaseModel
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label BaseModel
A Base Model is an abstract entity specifying the basic features of a group of vehicles.
Examples: VW Golf, VW Polo, VW Passat
is rdfs:domain of coo:hasTrim
URI http://purl.org/coo/ns#ChoiceOrComponent
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label ChoiceOrComponent
A Choice or Component is a component (e.g. engine), add-on, feature (color "ocean blue"), or service that can be chosen to be part of a final vehicle configuration.
Example: Engine 1.6 l TDI, color ocean blue, trailer hitch
is rdfs:domain of coo:compatibleWith coo:dependsOn coo:featureOverride coo:includes coo:incompatibleWith coo:priceModifier
is rdfs:range of coo:availableChoice coo:compatibleWith coo:default coo:dependsOn coo:hasSpecItemChoice coo:includes coo:includesChoices coo:incompatibleWith
URI http://purl.org/coo/ns#CompleteCarModel
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label CompleteCarModel
A Complete Car Model is an abstract entity specifying all features and configuration choices needed for actually producing a vehicle. In other words, it is the gr:ProductOrServiceModel ("datasheet") for a completely configured vehicle.
While a Complete Car Model can be defined indepently of a Base Model, Trim, or Derivative, it is usually based on a Derivative plus choices for all mandatory configurational options (coo:SpecItemCollection) of that Derivative.
A Complete Car Model should be linked to its Derivative via gr:isVariantOf, if available.
Example: VW Golf S 1.6 TDI 3door Manual in ocean blue with air-conditioning, CD player, trailer hitch, power steering, and power windows
Note: A coo:CompleteCarModel is NOT an actual car, but a complete feature description of one or multiple actual cars.
is rdfs:domain of coo:hasSpecItemChoice
is rdfs:range of coo:hasCompleteCarModel
URI http://purl.org/coo/ns#ConfigurationInfo
rdfs:label ConfigurationInfo
A Configuration Info is an abstract entity that gives information on whether a set of Choices Or Components results in a valid configuration.
Using coo:compatible, it is possible to indicate either compatibility (true) and incompatibility (false) so that modeling remains efficient, no matter whether most combinations are valid or whether most configurations are invalid.
If no such statement is found, the validity of a configuration is unknown.
Note: The two properties coo:includes and coo:dependsOn, attached to coo:ChoiceOrComponent, may contain additional information on the validity of configuration.
is rdfs:domain of coo:featureOverride coo:includesChoices coo:priceModifier coo:valid
is rdfs:range of coo:compatibility
URI http://purl.org/coo/ns#Derivative
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label Derivative
A Derivative is an abstract entity specifying (1) the basic features plus (2) a set of functional (e.g. engine type) and non-functional configuration (e.g. upholstery) choices of a group of vehicles.
A Derivative has often a number of remaining configuration choices (coo:SpecItemCollection attached via coo:hasSpecItems), which will determine the actual properties of the resulting vehicle.
A Derivative should be linked to its Trim via gr:isVariantOf, if available.
Examples: VW Golf S 1.6 TDI 3door Manual
is rdfs:domain of coo:compatibility coo:hasCompleteCarModel coo:hasSpecItems
is rdfs:range of coo:hasDerivative
URI http://purl.org/coo/ns#PropertySpecification
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label PropertySpecification
A Property Specification is an abstract entity specifying a set of properties for a vehicle that results from a single choice or the combination of two or more choices and that override the individual properties of the resulting vehicle.
Example 1: Power steering and Air conditioning in combination reduce the available engine power from 90 kW to 89 kW.
Example 2: Choosing the color option "blue" changes the color of the car to "blue".
URI http://purl.org/coo/ns#RelativePriceSpecification
rdfs:subClassOf http://purl.org/goodrelations/v1#PriceSpecification
rdfs:label RelativePriceSpecification
A shortcut for indicating the effect of a choice or set of choices on the unit price. Use positive values for a surcharge and negative values for a deduction.
Note: Price information should in general be attached to a gr:Offering node, not to a Base Model, Trim, Derivative, or Complete Car Model. Use this shortcut with care.
is rdfs:range of coo:priceModifier
URI http://purl.org/coo/ns#SpecItemCollection
rdfs:label SpecItemCollection
A Spec Item Collection is an entity collating multiple coo:ChoiceOrComponent options for a given coo:Derivative, i.e. the available configurational choices.
The default choice can be indicated using a coo:default link. All other choices are attached using coo:availableChoice. The number of coo:ChoiceOrComponent items that can / must be selected for a valid configuration are indicated via coo:min and coo:max.
is rdfs:domain of coo:availableChoice coo:default coo:max coo:min
is rdfs:range of coo:hasSpecItems
URI http://purl.org/coo/ns#Trim
rdfs:subClassOf http://purl.org/goodrelations/v1#ProductOrServiceModel
rdfs:label Trim
A Trim is an abstract entity specifying (1) the basic features plus (2) a set of configuration choices (mostly non-functional) of a group of vehicles.
A Trim should be linked to its Base Model via gr:isVariantOf, if available.
Examples: VW Golf S, VW Polo Match, VW Passat SE
is rdfs:domain of coo:hasDerivative
is rdfs:range of coo:hasTrim
URI http://purl.org/coo/ns#displayPos
rdfs:label displayPos (0..1)
The position at which the option or element should be listed in a menu or user dialog, lower numbers come first.
The main usage of this property are coo:SpecItemCollection and coo:ChoiceOrComponent, but it is possible to apply it to any owl:Class.
Note: It is recommended to rely on this property only for data originating from a single RDF graph; otherwise, unpredictable results are possible.
rdfs:domain http://www.w3.org/2002/07/owl#Class
rdfs:range http://www.w3.org/2001/XMLSchema#int
URI http://purl.org/coo/ns#max
rdfs:label max (0..1)
The maximum number of coo:ChoiceOrComponent entities that can be selected for a valid configuration
rdfs:domain coo:SpecItemCollection
rdfs:range http://www.w3.org/2001/XMLSchema#int
URI http://purl.org/coo/ns#min
rdfs:label min (0..1)
The minimum number of coo:ChoiceOrComponent entities that must be selected for a valid configuration
rdfs:domain coo:SpecItemCollection
rdfs:range http://www.w3.org/2001/XMLSchema#int
URI http://purl.org/coo/ns#valid
rdfs:label valid (1..1)
Indicates whether the attached set of choices is a valid (true) or invalid (false) configuration for the Derivative
rdfs:domain coo:ConfigurationInfo
rdfs:range http://www.w3.org/2001/XMLSchema#boolean
URI http://purl.org/coo/ns#availableChoice
rdfs:label availableChoice (1..*)
This property links available Choices or Components to a Spec Item.
rdfs:domain coo:SpecItemCollection
rdfs:range coo:ChoiceOrComponent
Subproperties
URI http://purl.org/coo/ns#compatibility
rdfs:label compatibility (0..*)
Links from a Derivative to information on whether a particular configuration is valid (true) or invalid (false)
URI http://purl.org/coo/ns#compatibleWith
rdfs:label compatibleWith (0..*)
Indicates that two Choices or Components are compatible with each other.
Note: This property is symmetric, i.e., if A is compatible with B, then B is also compatible with A.
rdfs:domain coo:ChoiceOrComponent
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#default
rdfs:subPropertyOf coo:availableChoice
rdfs:label default (0..1)
This property links the default Choice or Component to a Spec Item.
Since it is defined a sub-property of coo:availableChoice, the default choice is automatically part of the available choices.
rdfs:domain coo:SpecItemCollection
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#dependsOn
rdfs:label dependsOn (0..*)
Links a Choice or Component to one or multiple other Choices Or Components required for that choice
Note: This property is transitive, i.e., if B is required by A and C and D are required by B, then C and D are also required by A.
rdfs:domain coo:ChoiceOrComponent
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#featureOverride
rdfs:label featureOverride (0..*)
Links a coo:ConfigurationInfo node to information on how a choice or component or the combination of multiple choices will override the regular properties of the resulting vehicle
rdfs:domain coo:ChoiceOrComponent coo:ConfigurationInfo
rdfs:range coo:PropertySpecification
URI http://purl.org/coo/ns#hasCompleteCarModel
rdfs:label hasCompleteCarModel (0..*)
Links one or multiple Complete Car Models to the underlying Derivative
URI http://purl.org/coo/ns#hasDerivative
rdfs:label hasDerivative (0..*)
Links a Derivative to a Trim
URI http://purl.org/coo/ns#hasSpecItemChoice
rdfs:label hasSpecItemChoice (0..*)
Links a Complete Car Model to the choices for configurational options
rdfs:domain coo:CompleteCarModel
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#hasSpecItems
rdfs:label hasSpecItems (0..*)
This property links available Spec Items to a Derivative.
rdfs:domain coo:Derivative
rdfs:range coo:SpecItemCollection
URI http://purl.org/coo/ns#hasTrim
rdfs:label hasTrim (0..*)
Links a Trim to Base Model
URI http://purl.org/coo/ns#includes
rdfs:label includes (0..*)
Links a Choice or Component to one or multiple other Choices Or Components implicity contained
Note: This property is transitive, i.e., if B is included in A and C and D are included in B, then C and D are also included in A.
rdfs:domain coo:ChoiceOrComponent
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#includesChoices
rdfs:label includesChoices (1..*)
Indicates the set of Choices Or Components to which the Configuration Info node refers
Note 1: Complementing compatibility information can be attached to the components directly via coo:compatibleWith, coo:incompatibleWith, coo:dependsOn, and coo:includes.
Note 2: The coo:ConfigurationInfo node makes only a valid statement for a configuration that includes ALL of the Choices or Components attached via this property.
Note 3: If you want to know whether further components can be added, check that there are no coo:incompatibleWith relationships with any Choice or Component. This check must also be extended to all Choices or Components implicitly included via coo:includes.
Note 4: If you want to know whether some components may be omitted without invalidating the configuration, check that there are no coo:dependsOn relationships with any Choice or Component. This check must also be extended to all Choices Or Components implicitly included via coo:includes.
Note 5: Under an Open World Assumption (OWA), only an explicit compatibility statement for your configuration is really reliable. A weaker guarantee may be sufficient for your application, though.
rdfs:domain coo:ConfigurationInfo
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#incompatibleWith
rdfs:label incompatibleWith (0..*)
Indicates that two Choices or Components are incompatible with each other, independent from other choices.
Note: This property is symmetric, i.e., if A is incompatible with B, then B is also incompatible with A.
rdfs:domain coo:ChoiceOrComponent
rdfs:range coo:ChoiceOrComponent
URI http://purl.org/coo/ns#priceModifier
rdfs:label priceModifier (0..1)
Links a coo:ConfigurationInfo node to information on a choice or component or the combination of multiple choices will affect the regular pricing of the resulting vehicle
Note: The use of gr:addOn is in general a better way of modeling surcharges
rdfs:domain coo:ChoiceOrComponent coo:ConfigurationInfo
rdfs:range coo:RelativePriceSpecification
URI http://purl.org/coo/ns#hasID
rdfs:label hasID (0..1)
An annotation property that can be used to attach element identifiers from XML schemas for the corresponding XML data or schema.
|
Univ.-Prof. Dr. Martin Hepp Hepp Research GmbH
Phone: +49 751 205 8512 |
William Greenly Tribal DDB
Phone: +44 207 258 4652 |
Volkswagen Marketing Yeomans Drive
Phone: 0800 0833 920 |
The Car Options Ontology is available under the Creative Commons Attribution 3.0 license. You are free to copy, distribute and transmit the work; to remix/adapt the work (e.g. to import the ontology and create specializations of its elements), as long as you attribute the work and link back to http://purl.org/coo/ns.
We would like to thank Volkswagen UK and Tribal DDB for very useful suggestions and feedback.
This documentation has been generated automatically from the most recent ontology specification in OWL using a Python script written by Alex Stolz and Martin Hepp. Our script uses the RDFlib library for parsing and handling RDF and the Jinja template engine for generating the HTML document.
Hepp, Martin: GoodRelations: An Ontology for Describing Products and Services Offers on the Web, Proceedings of the 16th International Conference on Knowledge Engineering and Knowledge Management (EKAW2008), Acitrezza, Italy, September 29 - October 3, 2008, Springer LNCS, Vol 5268, pp. 332-347.
2010-10-12: Changed coo:hasSpecItem to coo:hasSpecItems
2010-10-11: Changed coo:SpecItem to coo:SpecItemCollection
2010-10-02: Polishing
2010-09-15: Finalization
2010-09-12: First mature release (without examples yet)
2010-09-10: Initial release
rdfs:comment
COO: The Car Options Ontology
The COO provides a vocabulary for exposing available configuration options for car models. It allows indicating choices that can be made as well as compatibility, dependency, and inclusion information.
The ontology imports and extends the GoodRelations ontology for e-commerce, which provides an abstract framework for product model information via gr:ProductOrServiceModel and ist associated properies.
The main difference between COO and the default patterns for model data in GoodRelations is that GoodRelations requires the materialization of all choices for features, which can quickly lead to very large amounts of data if features can be combines rather freely, due to the combinatorial effects.
Vocabulary: http://purl.org/coo/ns
Namespace: http://purl.org/coo/ns#
The Car Options Ontology is designed to be used in combination with GoodRelations, a standard vocabulary for the commercial aspects of offers for sale or rental, and the Vehicle Sales Ontology.
See http://purl.org/goodrelations/ and http://purl.org/vso/ns for more information.