Modeling Product Models
From Wiki of the E-Business and Web Science Research Group
Modeling Product Model Data Using the GoodRelations Ontology
Author: Martin Hepp
Abstract: On this page, we explain how the GoodRelations Ontology can be used to specify product models, like "Ford T", "Volkswagen Golf", "Thinkpad T60", and the like.
Prequisites: You need to understand the difference between a product model, a product class, and an actual product instance. Such is explained in the GoodRelations Primer and the GoodRelations Technical Report.
Note: If you want to include product features, you must use or create a products or services ontology like eClassOWL. See here for details.
Step-by-Step Example
Scenario: Assume we want to say that ACME Electronics produces a TV set model ACME Colorvision 123. It has a screensize of 20 centimeters.
Step 1: Define the namespaces and import the GoodRelations ontology and the respective ontology for products and services.
#Base: http://www.owl-ontologies.com/Ontology1218723903.owl# @prefix toy: <http://www.heppnetz.de/ontologies/examples/toy#> . @prefix gr: <http://purl.org/goodrelations/v1#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix default: <http://www.owl-ontologies.com/Ontology1218723903.owl#> . @prefix protege: <http://protege.stanford.edu/plugins/owl/protege#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix owl: <http://www.w3.org/2002/07/owl#> .
<http://www.owl-ontologies.com/Ontology1218723903.owl> a owl:Ontology ; owl:imports <http://www.heppnetz.de/ontologies/examples/toy> , <http://purl.org/goodrelations/v1> .
Step 2: Define the Business Entity, i.e. the manufacturer.
default:ACME_Electronics a gr:BusinessEntity ; gr:hasDUNS "123456789"^^xsd:string ; gr:legalName "ACME Electronics Ltd."^^xsd:string .
Step 3: Define the product model and its features.
default:Colorvision123 a gr:ProductOrServiceModel , toy:TVSet ; gr:description "The ACME Model Colorvision 123"^^xsd:string ; gr:hasEAN_UCC-13 "1234567890123"^^xsd:string ; gr:hasManufacturer default:ACME_Electronics ; toy:hasScreenSize default:QuantitativeValueFloat_1 .
default:QuantitativeValueFloat_1 a gr:QuantitativeValueFloat ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ; gr:hasValueFloat "20"^^xsd:string .
Step 4: Express that the manufacturer is also selling unknown instances of this model (if needed).
default:ACMESellingInstances a gr:Offering ; gr:eligibleCustomerTypes gr:Reseller ; gr:hasBusinessFunction gr:Sell ; gr:includesObject default:TypeAndQuantityNode_3 ; gr:validFrom "2008-08-14T16:40:50"^^xsd:dateTime ; gr:validThrough "2009-08-14T16:40:54"^^xsd:dateTime .
default:SomeACMETVSets a gr:ProductOrServicesSomeInstancesPlaceholder , toy:TVSet ; gr:hasMakeAndModel default:Colorvision123 .
default:TypeAndQuantityNode_3 a gr:TypeAndQuantityNode ; gr:amountOfThisGood "1.0"^^xsd:float ; gr:hasUnitOfMeasurement "C62"^^xsd:string ; gr:typeOfGood default:SomeACMETVSets .
Step 5: Make your RDF data known!
Don't forget to make your RDF data known: http://pingthesemanticweb.com/
Full Example in N3 Notation
#Base: http://www.owl-ontologies.com/Ontology1218723903.owl# @prefix toy: <http://www.heppnetz.de/ontologies/examples/toy#> . @prefix gr: <http://purl.org/goodrelations/v1#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix default: <http://www.owl-ontologies.com/Ontology1218723903.owl#> . @prefix protege: <http://protege.stanford.edu/plugins/owl/protege#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . <http://www.owl-ontologies.com/Ontology1218723903.owl> a owl:Ontology ; owl:imports <http://www.heppnetz.de/ontologies/examples/toy> , <http://purl.org/goodrelations/v1> . default:ACME_Electronics a gr:BusinessEntity ; gr:hasDUNS ""^^xsd:string ; gr:legalName ""^^xsd:string . default:Colorvision123 a gr:ProductOrServiceModel , toy:TVSet ; rdfs:comment "The ACME Model Colorvision 123"^^xsd:string ; gr:description "The ACME Model Colorvision 123"^^xsd:string ; gr:hasEAN_UCC-13 "1234567890123"^^xsd:string ; gr:hasManufacturer default:ACME_Electronics ; toy:hasScreenSize default:QuantitativeValueFloat_1 . default:QuantitativeValueFloat_1 a gr:QuantitativeValueFloat ; gr:hasUnitOfMeasurement "CMT"^^xsd:string ; gr:hasValueFloat "20"^^xsd:string . default:ACMESellingInstances a gr:Offering ; gr:eligibleCustomerTypes gr:Reseller ; gr:hasBusinessFunction gr:Sell ; gr:includesObject default:TypeAndQuantityNode_3 ; gr:validFrom "2008-08-14T16:40:50"^^xsd:dateTime ; gr:validThrough "2009-08-14T16:40:54"^^xsd:dateTime. default:SomeACMETVSets a gr:ProductOrServicesSomeInstancesPlaceholder , toy:TVSet ; gr:hasMakeAndModel default:Colorvision123 . default:TypeAndQuantityNode_3 a gr:TypeAndQuantityNode ; gr:amountOfThisGood "1.0"^^xsd:float ; gr:hasUnitOfMeasurement "C62"^^xsd:string ; gr:typeOfGood default:SomeACMETVSets .
