GRValidator Implemented E2
From Wiki of the E-Business and Web Science Research Group
Contents |
Error 2
E2: If range specified, no explicit value specified (for quantitative properties and for currencyValue)
Validator Tool: Step # 2
Error Message
A specifec value (hasValue) cannot be defined when a range is present (hasMinValue or hasMaxValue) for both numeric and currencies values.
Potential Problem
Prices and quantitative product properties can be specified as intervals using the gr:hasMinValueFloat - gr:hasMaxValueFloat, gr:hasMinValueInteger - gr:hasMaxValueInteger and gr:hasMinCurrencyValue - gr:hasMaxCurrencyValue properties. Care must be taken that if a range is present, no specif value should be included (hasFloatValue, hasIntegerValue, and hasCurrencyValue.
Examples of Wrong Data
Wrong Data: hasMinValueInteger, hasMaxValueInteger, hasValueInteger
@prefix gr: <http://purl.org/goodrelations/v1#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix toy: <http://www.heppnetz.de/ontologies/examples/toy#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.heppnetz.de/ontologies/examples/gr> rdf:type owl:Ontology ; owl:imports <http://www.heppnetz.de/ontologies/examples/toy> , <http://purl.org/goodrelations/v1> . <http://www.heppnetz.de/ontologies/examples/gr#mySony100TVSet> rdf:type gr:ActualProductOrServiceInstance . <http://www.heppnetz.de/ontologies/examples/gr#QuantitativeValueInteger_1> rdf:type gr:QuantitativeValueInteger ; gr:hasUnitOfMeasurement "CMT"^^<http://www.w3.org/2001/XMLSchema#string> ; gr:hasMinValueInteger 300 ; gr:hasValueInteger 150 . <http://www.heppnetz.de/ontologies/examples/gr#mySony100TVSet> toy:hasScreenSize <http://www.heppnetz.de/ontologies/examples/gr#QuantitativeValueInteger_1> ; rdf:type toy:TVSet . <http://www.heppnetz.de/ontologies/examples/gr#ElectronicsCom> rdf:type gr:BusinessEntity ; gr:legalName "Electronics.com Ltd."^^<http://www.w3.org/2001/XMLSchema#string> ; rdfs:seeAlso <http://www.electronics.com> .
Wrong Data: hasMinCurrencyaValue, hasMaxCurrencyValue, hasCurrencyValue
@prefix gr: <http://purl.org/goodrelations/v1#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix toy: <http://www.heppnetz.de/ontologies/examples/toy#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . <http://www.heppnetz.de/ontologies/examples/gr> rdf:type owl:Ontology ; owl:imports <http://www.heppnetz.de/ontologies/examples/toy> , <http://purl.org/goodrelations/v1> . <http://www.heppnetz.de/ontologies/examples/gr#mySony100TVSet> rdf:type gr:ActualProductOrServiceInstance . <http://www.heppnetz.de/ontologies/examples/gr#UnitPriceSpecification_1> rdf:type gr:UnitPriceSpecification ; gr:hasUnitOfMeasurement "CMT"^^<http://www.w3.org/2001/XMLSchema#string> ; gr:hasMinCurrencyValue "300.0"^^<http://www.w3.org/2001/XMLSchema#float> ; gr:hasCurrencyValue "150.0"^^<http://www.w3.org/2001/XMLSchema#float> . <http://www.heppnetz.de/ontologies/examples/gr#mySony100TVSet> toy:hasScreenSize <http://www.heppnetz.de/ontologies/examples/gr#UnitPriceSpecification_1> ; rdf:type toy:TVSet . <http://www.heppnetz.de/ontologies/examples/gr#ElectronicsCom> rdf:type gr:BusinessEntity ; gr:legalName "Electronics.com Ltd."^^<http://www.w3.org/2001/XMLSchema#string> ; rdfs:seeAlso <http://www.electronics.com> .
SPARQL Query
PREFIX gr:<http://purl.org/goodrelations/v1#>
SELECT ?object
WHERE {
{
?object a gr:QuantitativeValue .
?object gr:hasMinValue ?minValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeValue .
?object gr:hasMaxValue ?maxValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeValueFloat .
?object gr:hasMinValue ?minValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeValueFloat .
?object gr:hasMaxValue ?maxValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeInteger .
?object gr:hasMinValue ?minValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeInteger .
?object gr:hasMaxValue ?maxValue .
?object gr:hasValue ?value
} UNION {
?object a gr:QuantitativeValueFloat .
?object gr:hasMinValueFloat ?minValue .
?object gr:hasValueFloat ?value
} UNION {
?object a gr:QuantitativeValueFloat .
?object gr:hasMaxValueFloat ?maxValue .
?object gr:hasValueFloat ?value
} UNION {
?object a gr:QuantitativeValueInteger .
?object gr:hasMinValueInteger ?minValue .
?object gr:hasValueInteger ?value
} UNION {
?object a gr:QuantitativeValueInteger .
?object gr:hasMaxValueInteger ?maxValue .
?object gr:hasValueInteger ?value
} UNION {
?object a gr:PriceSpecification .
?object gr:hasMinCurrencyValue ?minValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:PriceSpecification .
?object gr:hasMaxCurrencyValue ?maxValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:UnitPriceSpecification .
?object gr:hasMinCurrencyValue ?minValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:UnitPriceSpecification .
?object gr:hasMaxCurrencyValue ?maxValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:DeliveryChargeSpecification .
?object gr:hasMinCurrencyValue ?minValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:DeliveryChargeSpecification .
?object gr:hasMaxCurrencyValue ?maxValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:PaymentChargeSpecification .
?object gr:hasMinCurrencyValue ?minValue .
?object gr:hasCurrencyValue ?value
} UNION {
?object a gr:PaymentChargeSpecification .
?object gr:hasMaxCurrencyValue ?maxValue .
?object gr:hasCurrencyValue ?value
}
}
