GRValidator Implemented E23

Error 23

E23: Check that hasCurrency has a valid value.

Validator Tool: Step # 21

Error Message

The currency for all prices in the Price Specification given must use the ISO 4217 standard (3 characters).

Potential Problem

The hasCurrency property represents the currency for all prices in the Price Specification given. Care must be taken that all currencies are using the ISO 4217 standard (3 characters).

Examples of Wrong Data

@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#Offering_1> a gr:Offering;
    gr:hasBusinessFunction gr:Sell;
    gr:validFrom "2010-11-12T00:00:00+01:00"^^<xsd:dateTime>;
    gr:validThrough "2010-11-12T23:59:59+01:00"^^<xsd:dateTime>;
    gr:hasPriceSpecification <http://www.heppnetz.de/ontologies/examples/gr#UPS_1>.
<http://www.heppnetz.de/ontologies/examples/gr#UPS_1> a gr:UnitPriceSpecification;
        gr:hasCurrency "xxx"^^xsd:string;
    gr:hasCurrencyValue "1.0"^^xsd:float;
    gr:hasUnitOfMeasurement "C62"^^xsd:string.

SPARQL Query

SELECT ?object WHERE {
  ?object gr:hasCurrency ?currency.
  FILTER (
    !bif:exists ((
      SELECT ?s
      FROM <http://data.linkedmdb.org/data/movie/country_currency>
      WHERE {
       ?s <http://data.linkedmdb.org/resource/movie/country_currency> ?o.
       FILTER(?o!="currency").
       FILTER(?o!="").
       FILTER(str(?o) = str(?currency))
      }
      LIMIT 1
    ))
  )
}