GoodRelationsVariants

From Wiki of the E-Business and Web Science Research Group
Jump to: navigation, search
gr_banner_small.png
GoodRelations is a standardized vocabulary for product, price, and company data that can be embedded into existing static and dynamic Web pages.

Project Main Page
Vocabulary
Documentation
Developer's Wiki
GoodRelations Cookbook

This page is a stub and will be completed shortly.

The gr:isVariantOf object property allows for modeling product model variants. This states that a particular ProductOrServiceModel instance is a variant of another ProductOrServiceModel. It is pretty safe to infer that the variant inherits all gr:quantitativeProductOrServiceProperties, gr:qualitativeProductOrServiceProperties, and gr:datatypeProductOrServiceProperties that are defined for the first gr:ProductOrServiceModel, except for those defined for the variant individually.

Exception: gr:hasEAN_UCC-13 and gr:hasStockKeepingUnit should not be inferred for the variant.

Example: foo:Red_Ford_T_Model gr:isVariantOf foo:Ford_T_Model

SPARQL CONSTRUCT Rule:

# Rule for product variants
CONSTRUCT {?model2 ?property ?valueModel1.}
WHERE
{
   ?model1 a gr:ProductOrServiceModel.
   ?model2 a gr:ProductOrServiceModel.
   ?model2 gr:isVariantOf ?model1.
   ?model1 ?property ?valueModel1.
 {
   {?property rdfs:subPropertyOf gr:qualitativeProductOrServiceProperty.}
   UNION
   {?property rdfs:subPropertyOf gr:quantitativeProductOrServiceProperty.}
   UNION
   {?property rdfs:subPropertyOf gr:datatypeProductOrServiceProperty.}
   FILTER (?property!=<http://purl.org/goodrelations/v1#hasEAN_UCC-13> && ?property!=<http://purl.org/goodrelations/v1#hasStockKeepingUnit>)
 }
 OPTIONAL {?model2 ?property ?valueModel2.}
 FILTER (!bound(?valueModel2) && ?model1!=?model2)
}


See also the recommended SPARQL CONSTRUCT rules for product model variants.