PREFIX seas: PREFIX rdfs: PREFIX owl: PREFIX xsd: PREFIX vs: PREFIX sgfn: WHEREVER { ?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 { a owl:Class ; rdfs:label "{?dim2} Property"@en ; rdfs:comment "The class of{?dim2} properties."@en ; rdfs:subClassOf seas:Property ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . a owl:Class ; rdfs:label "{?dim2} Evaluation"@en ; rdfs:comment "The class of evaluations for{?dim2} properties."@en ; rdfs:subClassOf seas:Evaluation ; rdfs:subClassOf ?{ sgfn:bnode( ?dim ) } ; owl:equivalentClass ?{ sgfn:bnode( ?dim ) } ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . ?{ sgfn:bnode( ?dim ) } owl:onProperty seas:evaluationOf ; owl:someValuesFrom . WHEREVER { ?p a ?d . BIND( strafter( xsd:string( ?p ) , "http://purl.oclc.org/NET/ssnx/cf/cf-property#" ) AS ?prop ) } CONSTRUCT { (?prop) }> a owl:ObjectProperty , owl:FunctionalProperty ; rdfs:label "{ replace( ?prop, "_", " ") }"@en ; rdfs:comment "The { replace( ?prop, "_", " ") } of a feature of interest ."@en ; rdfs:subPropertyOf seas:hasProperty ; rdfs:domain seas:FeatureOfInterest ; rdfs:range ; vs:term_status "testing" ; rdfs:isDefinedBy seas:ClimateAndForecastOntology . }. }