PREFIX seas: PREFIX rdfs: PREFIX owl: PREFIX xsd: PREFIX vs: WHEREVER { ?F rdfs:subClassOf . BIND( strafter( xsd:string( ?F ) , "http://purl.oclc.org/NET/ssnx/cf/cf-feature#" ) AS ?Foi ) BIND( replace( ?Foi, "([A-Z])", " $1") AS ?Foi2) } CONSTRUCT { (?Foi) }> a owl:Class ; rdfs:label "{ SUBSTR( ?Foi2, 2) }"@en ; rdfs:comment "The class of{ ?Foi2 } features of interest."@en ; rdfs:subClassOf seas:FeatureOfInterest ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . WHEREVER { ?f a ?F . BIND( strafter( xsd:string( ?f ) , "http://purl.oclc.org/NET/ssnx/cf/cf-feature#" ) AS ?foi ) } CONSTRUCT { (?foi) }> a (?Foi) }> ; rdfs:label "{ replace( ?foi, "_", " ") }"@en ; rdfs:comment "The { replace( ?foi, "_", " ") }, a{ ?Foi2 }."@en ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . } . WHEREVER { ?f a ?F ; ?p . BIND( strafter( xsd:string( ?f ) , "http://purl.oclc.org/NET/ssnx/cf/cf-feature#" ) AS ?foi ) BIND( strafter( xsd:string( ?p ) , "http://purl.oclc.org/NET/ssnx/cf/cf-property#" ) AS ?prop ) ?p a ?d . FILTER( strstarts( xsd:string( ?d ) , "http://purl.oclc.org/NET/ssnx/qu/dim#" ) ) BIND( strafter( xsd:string( ?d ) , "http://purl.oclc.org/NET/ssnx/qu/dim#" ) AS ?dim ) BIND( replace( ?dim, "([A-Z])", " $1") AS ?dim2) } CONSTRUCT { (?foi) }> (?prop) }> (?foi) }-{ (?prop) }> . (?foi) }-{ (?prop) }> a ; rdfs:label "{ SUBSTR( ?Foi2, 2) } - { replace( ?prop, "_", " ") }"@en ; rdfs:comment "The { replace( ?prop, "_", " ") } of { replace( ?foi, "_", " ") }."@en ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . } . }