PREFIX dqm: <http://purl.org/dqm-vocabulary/v1/dqm#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

dqm:LegalValueRangeRule a rdfs:Class ;
  rdfs:label "Legal Value Range Rule"@en ;
  rdfs:comment "A legal value range rule is a property requirement that specifies the upper and/or lower boundary of numeric values that a certain property is allowed to obtain."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:taskDependent a rdf:Property ;
  rdfs:label "Task Dependent"@en ;
  rdfs:comment "Specifies whether the data quality rule is task dependent."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:testedClass a rdf:Property ;
  rdfs:label "Tested Class"@en ;
  rdfs:comment "The tested class property specifies the class that holds the instances that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:TestedClass ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:validUntil a rdf:Property ;
  rdfs:label "Valid Until"@en ;
  rdfs:comment "Specifies the date and time until a rule stays valid."@en ;
  rdfs:range xsd:dateTime ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:confidence a rdf:Property ;
  rdfs:label "Confidence"@en ;
  rdfs:comment "The confidence property indicates how confident a rule creators is regarding the correctness of the rule."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range <https://w3id.org/linkml/Any> ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:appliesFor a rdf:Property ;
  rdfs:label "Applies For"@en ;
  rdfs:comment "Connects data requirements with the tasks in which the requirement applies."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:Task ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:ruleViolation a rdf:Property ;
  rdfs:label "Rule Violation"@en ;
  rdfs:comment "Connects data requirements with data quality problems that have been identified using the requirement."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:DataRequirementViolation ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:upperLimit a rdf:Property ;
  rdfs:label "Upper Limit"@en ;
  rdfs:comment "Specifies the upper limit a numeric property value shall obtain."@en ;
  rdfs:range xsd:float .

dqm:lowerLimit a rdf:Property ;
  rdfs:label "Lower Limit"@en ;
  rdfs:comment "Specifies the lower limit a numeric property value shall obtain."@en ;
  rdfs:range xsd:float .

dqm:validFrom a rdf:Property ;
  rdfs:label "Valid From"@en ;
  rdfs:comment "Specifies the date and time from which a rule is valid."@en ;
  rdfs:range xsd:dateTime ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:filtering a rdf:Property ;
  rdfs:label "Filtering"@en ;
  rdfs:comment "The filtering property indicates whether the rule shall be used for information filtering, i.e. only high quality data is retrieved."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:unitOfConfidence a rdf:Property ;
  rdfs:label "Unit of Confidence"@en ;
  rdfs:comment "The unit in which confidence is expressed."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:Unit .

dqm:unitOfImportance a rdf:Property ;
  rdfs:label "Unit of Importance"@en ;
  rdfs:comment "The unit in which importance is expressed."@en ;
  rdfs:range dqm:Unit .

dqm:validation a rdf:Property ;
  rdfs:label "Validation"@en ;
  rdfs:comment "Validation indicates whether a data quality rule shall be used for validation during data entry."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:boolean .

dqm:hasScore a rdf:Property ;
  rdfs:label "Has Score"@en ;
  rdfs:comment "Connects data requirements with the data quality score which was calculated based on the requirement."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:DataQualityScore ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:reqDescription a rdf:Property ;
  rdfs:label "Requirement Description"@en ;
  rdfs:comment "Describes a data requirement in natural language."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:reqSource a rdf:Property ;
  rdfs:label "Requirement Source"@en ;
  rdfs:comment "Specifies the source of a data requirement."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:importance a rdf:Property ;
  rdfs:label "Importance"@en ;
  rdfs:comment "Specifies the importance of a task, a data quality rule, or a data element."@en ;
  rdfs:range <https://w3id.org/linkml/Any> ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:lastModified a rdf:Property ;
  rdfs:label "Last Modified"@en ;
  rdfs:comment "The property lastModified indicates the date and time when the rule was last modified."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:dateTime ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:testedProperty1 a rdf:Property ;
  rdfs:label "Tested Property 1"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:testedProperty .

dqm:assessment a rdf:Property ;
  rdfs:label "Assessment"@en ;
  rdfs:comment "The assessment property indicates whether the rule shall be used for data quality assessment."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:cleansing a rdf:Property ;
  rdfs:label "Cleansing"@en ;
  rdfs:comment "The data cleansing property specifies whether the rule shall be applied to cleanse the data in a data source."@en ;
  rdfs:domain dqm:DataRequirement ;
  rdfs:range xsd:boolean ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:reqName a rdf:Property ;
  rdfs:label "Requirement Name"@en ;
  rdfs:comment "Specifies the name of a data requirement in natural language."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:reqMetadata .

dqm:Condition a rdfs:Class ;
  rdfs:label "Condition"@en ;
  rdfs:comment "A condition constrains instances of a class to a certain subset for which certain data quality rules apply."@en .

dqm:endsWith a rdf:Property ;
  rdfs:label "Ends With"@en ;
  rdfs:comment "Holds one or more consecutive characters that are supposed to be found at the end of strings of another property."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:equals a rdf:Property ;
  rdfs:label "Equals"@en ;
  rdfs:comment "Holds one or more consecutive characters that are supposed to be found in the same order in strings of another property."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:startsWith a rdf:Property ;
  rdfs:label "Starts With"@en ;
  rdfs:comment "Holds one or more consecutive characters that are supposed to be found at the beginning of strings of another property."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:lessThan a rdf:Property ;
  rdfs:label "Less Than"@en ;
  rdfs:comment "Holds a numeric value that is used to identify values of a property that are less than the value of this property."@en ;
  rdfs:range xsd:float ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:conditionalProperty a rdf:Property ;
  rdfs:label "Conditional Property"@en ;
  rdfs:comment "The conditional property property indicates the URI of a property that holds values that can be used to filter the relevant subset of data for which a rule applies."@en ;
  rdfs:domain dqm:Condition ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:notEqualTo a rdf:Property ;
  rdfs:label "Not Equal To"@en ;
  rdfs:comment "Holds one or more consecutive characters that are used to identify values of another property that do not match with the value of this property."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:greaterThan a rdf:Property ;
  rdfs:label "Greater Than"@en ;
  rdfs:comment "Holds a numeric value that is used to identify values of a property that are greater than the value of this property."@en ;
  rdfs:range xsd:float ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:contains a rdf:Property ;
  rdfs:label "Contains"@en ;
  rdfs:comment "Holds one or more consecutive characters that are supposed to be found in strings of another property."@en ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:operatedValue .

dqm:OutdatedInstanceRule a rdfs:Class ;
  rdfs:label "Outdated Instance Rule"@en ;
  rdfs:comment "An outdated instance rule is a data requirement that specifies the point in time when an instance is not current anymore."@en ;
  rdfs:subClassOf dqm:ClassRequirement .

dqm:ConditionalPropertyCompletenessRule a rdfs:Class ;
  rdfs:label "Conditional Data Competeness Rule"@en ;
  rdfs:comment "Conditional property completeness rules specify that a tested property and/or its literal values must exist when the value of another property obtains a certain state. E.g. the property foo:state must exist and have a value when the property foo:country obtains the value \"USA\"."@en ;
  rdfs:subClassOf dqm:ConditionalRule .

dqm:hasCondition2 a rdf:Property ;
  rdfs:label "Has Condition 2"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition."@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:hasCondition .

dqm:hasCondition3 a rdf:Property ;
  rdfs:label "Has Condition 3"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition."@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:hasCondition .

dqm:hasCondition4 a rdf:Property ;
  rdfs:label "Has Condition 4"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition."@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:hasCondition .

dqm:requiredProperty a rdf:Property ;
  rdfs:label "Required Property"@en ;
  rdfs:comment "Specifies whether a property must exist."@en ;
  rdfs:range xsd:boolean .

dqm:hasCondition5 a rdf:Property ;
  rdfs:label "Has Condition 5"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition."@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:hasCondition .

dqm:requiredValue a rdf:Property ;
  rdfs:label "Required Value"@en ;
  rdfs:comment "Specifies whether a value for a property must exist."@en ;
  rdfs:range xsd:boolean .

dqm:hasCondition1 a rdf:Property ;
  rdfs:label "Has Condition 1"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition."@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:hasCondition .

dqm:UpdateRule a rdfs:Class ;
  rdfs:label "Update Rule"@en ;
  rdfs:comment "An update rule is an outdated instance rule that specifies the maximum duration tolerated without any updates. Update rules require timestamps about the last update of an instance."@en ;
  rdfs:subClassOf dqm:OutdatedInstanceRule .

dqm:expectedUpdateInterval a rdf:Property ;
  rdfs:label "Expected Update Interval"@en ;
  rdfs:comment "The expected update interval specifies the time interval in which instances of a specific class must be updated in order to be current."@en ;
  rdfs:domain dqm:UpdateRule ;
  rdfs:range xsd:duration .

dqm:TestedProperty a rdfs:Class ;
  rdfs:label "Tested Property"@en ;
  rdfs:comment "A tested property holds the values to be analyzed for data quality problems."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:hasURI a rdf:Property ;
  rdfs:label "Has URI"@en ;
  rdfs:comment "The hasURI property is used to map properties to instances of a class."@en ;
  rdfs:domain dqm:DataElement ;
  rdfs:range xsd:anyURI .

dqm:AffectedClass a rdfs:Class ;
  rdfs:label "Affected Class"@en ;
  rdfs:comment "An affected class holds one or more affected instances"@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:hasProperties a rdf:Property ;
  rdfs:label "Has Properties"@en ;
  rdfs:comment "Reconnects mapped classes and properties with each other."@en ;
  rdfs:range <https://w3id.org/linkml/Any> ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:PopulationUniqueness a rdfs:Class ;
  rdfs:label "Population Uniqueness"@en ;
  rdfs:comment "Entity uniqueness is the degree to which entities (that must be uniquely represented within a certain class) are unique."@en ;
  rdfs:subClassOf dqm:Uniqueness .

dqm:weightedScore a rdf:Property ;
  rdfs:label "Weighted Score"@en ;
  rdfs:comment "A weighted score is a data quality dimension score that is computed by integration of importance values of data requirements, tasks, or data elements."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:basedOn a rdf:Property ;
  rdfs:label "Based On"@en ;
  rdfs:comment "Connects a data quality score with the data requirements that were used to calculate the score."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range dqm:DataRequirement ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:assessedClass a rdf:Property ;
  rdfs:label "Assessed Class"@en ;
  rdfs:comment "The assessed class is the class that holds the instances that have been analyzed to compute the assessment score."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range dqm:TestedClass ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:timeOfAssessment a rdf:Property ;
  rdfs:label "Time Of Assessment"@en ;
  rdfs:comment "The time of assessment represents the data and time when the data quality score was computed."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range xsd:dateTime .

dqm:plainScore a rdf:Property ;
  rdfs:label "Plain Score"@en ;
  rdfs:comment "The plain score represents a data quality dimension score that was assessed by using a certain formula that accounts for the violations of data quality rules related to the size of the relevant data set."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:assessedProperty a rdf:Property ;
  rdfs:label "Assessed Property"@en ;
  rdfs:comment "The assessed property represents all properties that have been tested for rule violations during the computation of the assessment score."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:unitOfMeasurement a rdf:Property ;
  rdfs:label "Unit of Measurement"@en ;
  rdfs:comment "Indicates the unit of measurement, e.g. of data quality scores. It is recommended to use UN/CEFACT common codes to specify the unit of measurement, e.g. \"P1\" stands for percent."@en ;
  rdfs:domain dqm:DataQualityScore ;
  rdfs:range dqm:Unit .

dqm:DataElement a rdfs:Class ;
  rdfs:label "Data Element"@en ;
  rdfs:comment "A data element is a class, a property, an instance, or a literal value."@en .

dqm:AffectedInstance a rdfs:Class ;
  rdfs:label "Affected Instance"@en ;
  rdfs:comment "An affected instance is a data instance that contains one or more data quality problems."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:PopulationCompleteness a rdfs:Class ;
  rdfs:label "Population Completeness"@en ;
  rdfs:comment "Population completeness is the degree to which all objects of a certain reference are represented in a specific class."@en ;
  rdfs:subClassOf dqm:Completeness .

dqm:UniquenessViolation a rdfs:Class ;
  rdfs:label "Uniqueness Violation"@en ;
  rdfs:comment "A uniqueness violation occurs when two or more identical values are assigned to a property that requires unique values."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:ruleOfIdentification a rdf:Property ;
  rdfs:label "Rule Of Identification"@en ;
  rdfs:comment "The rule of identification property connects the data quality problem instances with the instance of the data requirement that has detected the problem."@en ;
  rdfs:domain dqm:DataRequirementViolation ;
  rdfs:range dqm:DataRequirement ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:affectedProperty a rdf:Property ;
  rdfs:label "Affected Property"@de ;
  rdfs:comment "An affected property specifies the property of a data instance that contains one or more data requirement violations. Some data requirement violations, such as functional dependency violations, have more than one affected property."@de ;
  rdfs:domain dqm:DataRequirementViolation ;
  rdfs:range dqm:AffectedProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:affectedInstance a rdf:Property ;
  rdfs:label "Affected Instance"@de ;
  rdfs:comment "An affected instance is the data instance that contains one or more data requirement violations."@de ;
  rdfs:domain dqm:DataRequirementViolation ;
  rdfs:range dqm:AffectedInstance ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:affectedClass a rdf:Property ;
  rdfs:label "Affected Class"@en ;
  rdfs:comment "An affected class holds one or more instances with one or more data requirement violations."@en ;
  rdfs:domain dqm:DataRequirementViolation ;
  rdfs:range dqm:AffectedClass ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:timeOfIdentification a rdf:Property ;
  rdfs:label "Time Of Identification"@en ;
  rdfs:comment "The time of identification property specifies the date and time in which the data quality problem was detected"@en ;
  rdfs:domain dqm:DataRequirementViolation ;
  rdfs:range xsd:dateTime .

dqm:FunctionalDependencyViolation a rdfs:Class ;
  rdfs:label "Functional Dependency Violation"@en ;
  rdfs:comment "A functional dependency violation is a combination of different property values within the same instance that must not occur together. E.g. an instance describing the man “Peter Miller” has the value “Mr.” as salutation property, but the value “female” as sex."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:MissingElement a rdfs:Class ;
  rdfs:label "Missing Element"@en ;
  rdfs:comment "A missing element is a data requirement violation that occurs when schema elements, instances, or data values are missing, but required."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:SyntaxViolation a rdfs:Class ;
  rdfs:label "Syntax Violation"@en ;
  rdfs:comment "A syntax violation is a data requirement violation that occurs when a data value contains disallowed characters or does not match a predefined pattern."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:IllegalValue a rdfs:Class ;
  rdfs:label "Illegal Value"@en ;
  rdfs:comment "An illegal value is a data value that must not be used for a property."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:DuplicateInstanceRule a rdfs:Class ;
  rdfs:label "Duplicate Instance Rule"@en ;
  rdfs:comment "A duplicate instance rule is a multi property requirement which specifies the properties that (when seen together) uniquely identify an entity. I.e. if the properties of two or more different instances represent the same state, then the instances represent the same entity. Thus, the instances are considered to be duplicates."@en ;
  rdfs:subClassOf dqm:MatchingValueRule .

dqm:testedProperty3 a rdf:Property ;
  rdfs:label "Tested Property 3"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:MatchingValueRule ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:testedProperty .

dqm:testedProperty5 a rdf:Property ;
  rdfs:label "Tested Property 5"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:MatchingValueRule ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:testedProperty .

dqm:testedProperty2 a rdf:Property ;
  rdfs:label "Tested Property 2"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:MatchingValueRule ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:testedProperty .

dqm:testedProperty4 a rdf:Property ;
  rdfs:label "Tested Property 4"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:domain dqm:MatchingValueRule ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:testedProperty .

dqm:DataRequirement a rdfs:Class ;
  rdfs:label "Data Requirement"@en ;
  rdfs:comment "A data requirement is a prescribed directive or consensual agreement that defines the content and/or structure that constitute high quality data instances and values."@en .

dqm:CustomRequirement a rdfs:Class ;
  rdfs:label "Custom Requirement"@en ;
  rdfs:comment "A custom requirement is a data requirement that is expressed via a SPARQL query."@en ;
  rdfs:subClassOf dqm:DataRequirement .

dqm:sparqlrule a rdf:Property ;
  rdfs:label "SPARQL rule"@en ;
  rdfs:comment "This property can store custom data requirements that are expressed via SPARQL queries."@en ;
  rdfs:domain dqm:CustomRequirement ;
  rdfs:range xsd:string .

dqm:BlacklistProperty a rdfs:Class ;
  rdfs:label "Blacklist Property"@en ;
  rdfs:comment "A blacklist property holds the values that are disallowed for a certain data set."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:MissingValue a rdfs:Class ;
  rdfs:label "Missing Value"@en ;
  rdfs:comment "A missing value occurs when a property of an instance does not hold a value."@en ;
  rdfs:subClassOf dqm:MissingElement .

dqm:IllegalValueRule a rdfs:Class ;
  rdfs:label "Illegal Value Rule"@en ;
  rdfs:comment "An illegal value rule is a property requirement that specifies the values that a certain property must not obtain. Illegal value rules, therefore, refer to reference properties that hold all disallowed values."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:blacklistProperty a rdf:Property ;
  rdfs:label "Blacklist Property"@en ;
  rdfs:comment "A blacklist property holds the values that are disallowed for a certain data set."@en ;
  rdfs:domain dqm:IllegalValueRule ;
  rdfs:range dqm:BlacklistProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:blacklistClass a rdf:Property ;
  rdfs:label "Blacklist Class"@en ;
  rdfs:comment "A blacklist class holds instances with values that are disallowed for a certain data set."@en ;
  rdfs:domain dqm:IllegalValueRule ;
  rdfs:range dqm:BlacklistClass ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:Completeness a rdfs:Class ;
  rdfs:label "Completeness"@en ;
  rdfs:comment "Completeness is the extent to which data are of sufficient breadth, depth, and scope for the task at hand."@en ;
  rdfs:subClassOf dqm:DataQualityScore .

dqm:OutOfRangeValue a rdfs:Class ;
  rdfs:label "Out of Range Value"@en ;
  rdfs:comment "A value is out of range when it is not part of the legal value range or when it is part of the illegal value range."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:TrustedProperty a rdfs:Class ;
  rdfs:label "Trusted Property"@en ;
  rdfs:comment "A trusted property holds the values that serve as a trusted reference in legal value rules / functional dependency reference rules, e.g. to define legal values for a tested property."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:PropertyUniqueness a rdfs:Class ;
  rdfs:label "Property Uniqueness"@en ;
  rdfs:comment "Property uniqueness is the degree to which the values of a property (that must only contain unique values within instances of a certain class) are unique."@en ;
  rdfs:subClassOf dqm:Uniqueness .

dqm:DataRequirementViolation a rdfs:Class ;
  rdfs:label "Data Requirement Violation"@en ;
  rdfs:comment "A data requirement violation occurs when a data value or a data instance does not meet its requirements."@en .

dqm:MatchingValueRule a rdfs:Class ;
  rdfs:label "Matching Value Rule"@en ;
  rdfs:comment "Matching value rules are multi property requirements in which the property values of other instances are used to identify data requirements violations in an instance."@en ;
  rdfs:subClassOf dqm:MultiPropertyRequirement .

dqm:DuplicateInstance a rdfs:Class ;
  rdfs:label "Duplicate Instance"@en ;
  rdfs:comment "Two or more instances are duplicates when they represent the same real world entity."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:MissingProperty a rdfs:Class ;
  rdfs:label "Missing Property"@en ;
  rdfs:comment "A property is missing when an instances does not contain a specific property that is required."@en ;
  rdfs:subClassOf dqm:MissingElement .

dqm:ValueSubstitution a rdfs:Class ;
  rdfs:label "Value Substitution Rule"@en ;
  rdfs:comment "A value substitution rule specifies a value to be removed and a new value that shall substitute the removed value."@en ;
  rdfs:subClassOf dqm:LiteralCleansingRule .

dqm:cleansesClass a rdf:Property ;
  rdfs:label "Cleanses Class"@en ;
  rdfs:comment "This property identifies classes that contain instances that shall be cleansed via a data cleansing rule."@en ;
  rdfs:domain dqm:DataCleansingRule ;
  rdfs:range dqm:TestedClass ;
  rdfs:subPropertyOf dqm:dataCleansingRuleRelationship .

dqm:cleansesProperty1 a rdf:Property ;
  rdfs:label "Cleanses Property 1"@en ;
  rdfs:comment "This property identifies a property that holds values that shall be cleansed."@en ;
  rdfs:domain dqm:DataCleansingRule ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:dataCleansingRuleRelationship .

dqm:newValue a rdf:Property ;
  rdfs:label "New Value"@en ;
  rdfs:comment "The new value property specifies the new value which shall substitute the current value."@en ;
  rdfs:domain dqm:ValueSubstitution ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:cleansingProperty .

dqm:currentValue a rdf:Property ;
  rdfs:label "Current Value"@en ;
  rdfs:comment "The current value propertiy specifies the value to be removed."@en ;
  rdfs:domain dqm:ValueSubstitution ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:cleansingProperty .

dqm:BlacklistClass a rdfs:Class ;
  rdfs:label "Blacklist Class"@en ;
  rdfs:comment "A blacklist class holds instances with values that are disallowed for a certain data set. Thus, illegal value rules refer to such classes over the blacklist class property."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:DataQualityScore a rdfs:Class ;
  rdfs:label "Data Quality Assessment"@en ;
  rdfs:comment "Data quality score is an abstract class that can be used to structure data quality dimension scores that indicate the quality state of classes and/or properties."@en .

dqm:OutdatedInstance a rdfs:Class ;
  rdfs:label "Outdated Instance"@en ;
  rdfs:comment "An instance is outdated when it represents an outdated state of its corresponding real-world entity."@en ;
  rdfs:subClassOf dqm:DataRequirementViolation .

dqm:FuncDepValueRule a rdfs:Class ;
  rdfs:label "Functionally Dependent Value Rule"@en ;
  rdfs:comment "A functionally dependent value rule defines that the value of a tested property must have a certain value when the values of other properties obtain certain states (conditions). E.g. the property foo:inStock must have value \"true\" when the property foo:availableAmount is greater than zero."@en ;
  rdfs:subClassOf dqm:ConditionalRule .

dqm:TrustedClass a rdfs:Class ;
  rdfs:label "Trusted Class"@en ;
  rdfs:comment "Legal value rules and functional dependency reference rules require the specification of a trusted class as a reference that holds instances with legal values / legal value combinations."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:SyntaxRule a rdfs:Class ;
  rdfs:label "Syntax Rule"@en ;
  rdfs:comment "A syntax rule is a property requirement that specifies the allowed characters and/or character pattern to be used in values for a certain property in instances of a certain class."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:regex a rdf:Property ;
  rdfs:label "Regular Expression"@en ;
  rdfs:comment "The regular expressions property can be used to express legal character ranges and data patterns for values of a certain property via regular expressions."@en ;
  rdfs:range xsd:string .

dqm:pattern a rdf:Property ;
  rdfs:label "Pattern"@en ;
  rdfs:comment "The pattern property can be used to express value patterns based on a simple syntax without the need for knowing regular expressions. E.g. the pattern \"AaaaaNN\" where \"A\" stands for capital letters, \"a\" for small letters, and \"N\" for numbers."@en ;
  rdfs:range xsd:string .

dqm:ExpiryRule a rdfs:Class ;
  rdfs:label "Expiry Rule"@en ;
  rdfs:comment "An expiry rule is an outdated instance rule that specifies the expiration date of an instance that must not exceed the current date and time. Therefore, expiry rules require date information about the validity period of an instance."@en ;
  rdfs:subClassOf dqm:OutdatedInstanceRule .

dqm:MultiPropertyRequirement a rdfs:Class ;
  rdfs:label "Multi Property Requirement"@en ;
  rdfs:comment "Multi property requirements are data requirements that consider values from two or more properties."@en ;
  rdfs:subClassOf dqm:DataRequirement .

dqm:ConditionalRule a rdfs:Class ;
  rdfs:label "Conditional Rule"@en ;
  rdfs:comment "A conditional rule is a multi property requirement that can be used to specify that values of a tested property A must always obtain a certain state under the condition that values of another property B obtain a certain state (condition)."@en ;
  rdfs:subClassOf dqm:MultiPropertyRequirement .

dqm:MultiPropertyCleansingRule a rdfs:Class ;
  rdfs:label "Multi Property Cleansing Rule"@en ;
  rdfs:comment "Multi property cleansing rules can be used to cleanse the literal values of two or more dependent properties."@en ;
  rdfs:subClassOf dqm:DataCleansingRule .

dqm:Accuracy a rdfs:Class ;
  rdfs:label "Accuracy"@en ;
  rdfs:comment "Accuracy is the degree to which a data value represents the desired state regarding its syntax and semantics."@en ;
  rdfs:subClassOf dqm:DataQualityScore .

dqm:TestedClass a rdfs:Class ;
  rdfs:label "Tested Class"@en ;
  rdfs:comment "A tested class is a class that holds the instances that shall be analyzed for data quality problems."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:ScaleValue a rdfs:Class ;
  rdfs:label "Scale Value"@en ;
  rdfs:comment "A scale value is a value of a nominal or ordinal scale."@en .

dqm:technicalName a rdf:Property ;
  rdfs:label "Technical Name"@en ;
  rdfs:comment "Technical name of a value."@en ;
  rdfs:domain dqm:ScaleValue ;
  rdfs:range xsd:string .

dqm:officialName a rdf:Property ;
  rdfs:label "Official Name"@en ;
  rdfs:comment "Official name of a value."@en ;
  rdfs:domain dqm:ScaleValue ;
  rdfs:range xsd:string .

dqm:rank a rdf:Property ;
  rdfs:label "Rank"@en ;
  rdfs:comment "Position of a value in an ordinal scale."@en ;
  rdfs:domain dqm:ScaleValue ;
  rdfs:range xsd:int .

dqm:valueMeaning a rdf:Property ;
  rdfs:label "Value Meaning"@en ;
  rdfs:comment "Meaning of a value."@en ;
  rdfs:domain dqm:ScaleValue ;
  rdfs:range xsd:string .

dqm:next a rdf:Property ;
  rdfs:comment "Links an instances to the next instance in an ordinal scale."@en ;
  rdfs:domain dqm:ScaleValue ;
  rdfs:range dqm:ScaleValue .

dqm:IllegalValueRangeRule a rdfs:Class ;
  rdfs:label "Illegal Value Range Rule"@en ;
  rdfs:comment "An illegal value range rule is a property requirement that specifies the upper and/or lower boundary of numeric values that a certain property must not obtain."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:SyntacticAccuracy a rdfs:Class ;
  rdfs:label "Syntactic Accuracy"@en ;
  rdfs:comment "Syntactic accuracy is the degree to which data values of a property represent legal values and are free from syntax violations."@en ;
  rdfs:subClassOf dqm:Accuracy .

dqm:LegalValueRule a rdfs:Class ;
  rdfs:label "Legal Value Rule"@en ;
  rdfs:comment "A legal value rule is a property requirement that specifies all values that a certain property is allowed to obtain. Legal value rules, therefore, refer to reference properties of classes that hold instances with all allowed values."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:referenceClass a rdf:Property ;
  rdfs:label "Reference Class"@en ;
  rdfs:comment "The reference class property points to the URI of a class that contains trusted instances, i.e. instances of high quality."@en ;
  rdfs:range dqm:TrustedClass ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:referenceProperty1 a rdf:Property ;
  rdfs:label "Reference Property 1"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:referenceProperty .

dqm:LiteralCleansingRule a rdfs:Class ;
  rdfs:label "Literal Cleansing Rule"@en ;
  rdfs:comment "Literal cleansing rules can be used to cleanse the literal values of a certain property."@en ;
  rdfs:subClassOf dqm:DataCleansingRule .

dqm:PropertyCompletion a rdfs:Class ;
  rdfs:label "Property Completion Rule"@en ;
  rdfs:comment "A property completion rule specifies a property and value that shall be added to certain instances."@en ;
  rdfs:subClassOf dqm:MultiPropertyCleansingRule .

dqm:addValue a rdf:Property ;
  rdfs:label "Add Value"@en ;
  rdfs:comment "A value that shall be added to a property of an instance."@en ;
  rdfs:domain dqm:PropertyCompletion ;
  rdfs:range xsd:string ;
  rdfs:subPropertyOf dqm:cleansingProperty .

dqm:addProperty a rdf:Property ;
  rdfs:label "Add Property"@en ;
  rdfs:comment "A property that shall be added to an instance."@en ;
  rdfs:domain dqm:PropertyCompletion ;
  rdfs:range xsd:anyURI ;
  rdfs:subPropertyOf dqm:cleansingProperty .

dqm:Timeliness a rdfs:Class ;
  rdfs:label "Timeliness"@en ;
  rdfs:comment "Timeliness is the degree to which instances of a specific class (1) are updated within an expected time or (2) have not exceeded their expiration date."@en ;
  rdfs:subClassOf dqm:DataQualityScore .

dqm:SemanticAccuracy a rdfs:Class ;
  rdfs:label "Semantic Accuracy"@en ;
  rdfs:comment "Semantic accuracy is the degree to which the data values of an instance represent the correct state of an entity’s property."@en ;
  rdfs:subClassOf dqm:Accuracy .

dqm:Unit a rdfs:Class ;
  rdfs:label "Unit"@en ;
  rdfs:comment "Class for units of numerical values that are used to express certain property states."@en .

dqm:scaleValues a rdf:Property ;
  rdfs:label "Scale Values"@en ;
  rdfs:comment "Links to values of a certain ordinal or nominal scale."@en ;
  rdfs:domain dqm:Unit ;
  rdfs:range dqm:ScaleValue .

dqm:unitName a rdf:Property ;
  rdfs:label "Unit Name"@en ;
  rdfs:comment "Name of a unit of measurement."@en ;
  rdfs:domain dqm:Unit ;
  rdfs:range xsd:string .

dqm:unitDescription a rdf:Property ;
  rdfs:label "Unit Description"@en ;
  rdfs:comment "Description of a unit of measurement."@en ;
  rdfs:domain dqm:Unit ;
  rdfs:range xsd:string .

dqm:scaleType a rdf:Property ;
  rdfs:label "Scale Type"@en ;
  rdfs:comment "Type of statistical scale."@en ;
  rdfs:domain dqm:Unit ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:commonCode a rdf:Property ;
  rdfs:label "UN/CEFACT common code"@en ;
  rdfs:comment "UN/CEFACT common code of a unit of measurement."@en ;
  rdfs:domain dqm:Unit ;
  rdfs:range xsd:string .

dqm:StrictValueCombination a rdfs:Class ;
  rdfs:label "Strict Value Combination Rule"@en ;
  rdfs:comment "A strict value combination is a combination of two values of different properties that may only be assigned to each other, but not to other values."@en ;
  rdfs:subClassOf dqm:MultiPropertyCleansingRule .

dqm:DataCleansingRule a rdfs:Class ;
  rdfs:label "Data Cleansing Rule"@en ;
  rdfs:comment "A data cleansing rule is an unambiguous rule that precisely specifies the required state of a data value."@en .

dqm:PropertyCompletenessRule a rdfs:Class ;
  rdfs:label "Property Completeness Rule"@en ;
  rdfs:comment "A property completeness rule is a data requirement that specifies that a certain property and/or its value must exist in all instances of a certain class."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:MissingPropertyAndValue a rdfs:Class ;
  rdfs:label "Missing Property and Value"@en ;
  rdfs:comment "Class for instances that miss both a property and its value."@en ;
  rdfs:subClassOf dqm:MissingElement .

dqm:UniqueValueRule a rdfs:Class ;
  rdfs:label "Unique Value Rule"@en ;
  rdfs:comment "A unique value rule is a property requirement that specifies that each value of a certain property must be unique in instances of a certain class."@en ;
  rdfs:subClassOf dqm:PropertyRequirement .

dqm:ConditionalSyntaxRule a rdfs:Class ;
  rdfs:label "Conditional Syntax Rule"@en ;
  rdfs:comment "Conditional syntax rules define that the literal values of a tested property must follow a certain syntax when the value of another property obtains a certain state. E.g. the property foo:state must have a value with two capital letters when the property foo:country obtains the value \"USA\"."@en ;
  rdfs:subClassOf dqm:ConditionalRule .

dqm:PropertyCompleteness a rdfs:Class ;
  rdfs:label "Property Completeness"@en ;
  rdfs:comment "Property completeness is the degree to which values for a specific property are missing in entities of a specific class."@en ;
  rdfs:subClassOf dqm:Completeness .

dqm:Uniqueness a rdfs:Class ;
  rdfs:label "Uniqueness"@en ;
  rdfs:comment "Uniqueness is the degree to which properties and classes are free of duplicate values and instances."@en ;
  rdfs:subClassOf dqm:DataQualityScore .

<https://w3id.org/linkml/Any> a rdfs:Class ;
  rdfs:comment "An unconstrained type or object"@en .

dqm:Task a rdfs:Class ;
  rdfs:label "Task"@en ;
  rdfs:comment "Classifies the tasks for which the data quality rule shall apply for."@en .

dqm:hasRequirement a rdf:Property ;
  rdfs:label "Has Requirement"@en ;
  rdfs:comment "Specifies the data requirements that have to be fulfilled to perform the task."@en ;
  rdfs:domain dqm:Task ;
  rdfs:range dqm:DataRequirement ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:taskName a rdf:Property ;
  rdfs:label "Task Name"@en ;
  rdfs:comment "Specifies the name of the task."@en ;
  rdfs:domain dqm:Task ;
  rdfs:range xsd:string .

dqm:subTaskOf a rdf:Property ;
  rdfs:label "Sub Task Of"@en ;
  rdfs:comment "Property that can be used to represent hierachies of between tasks."@en ;
  rdfs:domain dqm:Task ;
  rdfs:range dqm:Task ;
  rdfs:subPropertyOf dqm:dataRequirementsRelationship .

dqm:taskDescription a rdf:Property ;
  rdfs:label "Task Description"@en ;
  rdfs:comment "Describes the task in natural language."@en ;
  rdfs:domain dqm:Task ;
  rdfs:range xsd:string .

dqm:FuncDepReferenceRule a rdfs:Class ;
  rdfs:label "Functional Dependency Reference Rule"@en ;
  rdfs:comment "A functional dependency reference rule is a multi property requirement that specifies legal value combinations for two or more properties that are allowed to occur within the same instance. Functional dependency reference rules refer to reference properties of classes that hold instances with all allowed value combinations."@en ;
  rdfs:subClassOf dqm:MatchingValueRule .

dqm:referenceProperty5 a rdf:Property ;
  rdfs:label "Reference Property 5"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:domain dqm:FuncDepReferenceRule ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:referenceProperty .

dqm:referenceProperty2 a rdf:Property ;
  rdfs:label "Reference Property 2"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:domain dqm:FuncDepReferenceRule ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:referenceProperty .

dqm:referenceProperty4 a rdf:Property ;
  rdfs:label "Reference Property 4"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:domain dqm:FuncDepReferenceRule ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:referenceProperty .

dqm:referenceProperty3 a rdf:Property ;
  rdfs:label "Reference Property 3"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:domain dqm:FuncDepReferenceRule ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:referenceProperty .

dqm:AffectedProperty a rdfs:Class ;
  rdfs:label "Affected Property"@en ;
  rdfs:comment "An affected property specifies the property of a data instance that contains one or more data quality problems."@en ;
  rdfs:subClassOf dqm:DataElement .

dqm:WhitespaceRemoval a rdfs:Class ;
  rdfs:label "White Space Removal Rule"@en ;
  rdfs:comment "A white space removal rule states that whitespaces at the beginning of a string and at the end of a string shall be removed for the specified property."@en ;
  rdfs:subClassOf dqm:LiteralCleansingRule .

dqm:ClassRequirement a rdfs:Class ;
  rdfs:label "Class Requirement"@en ;
  rdfs:comment "A class requirement is a data requirement that refers to the instances of a class as a whole."@en ;
  rdfs:subClassOf dqm:DataRequirement .

dqm:PropertyRequirement a rdfs:Class ;
  rdfs:label "Property Requirement"@en ;
  rdfs:comment "Property requirements are data requirements that are related to values of a single property."@en ;
  rdfs:subClassOf dqm:DataRequirement .

dqm:cleansingProperty a rdf:Property ;
  rdfs:label "Cleansing Property"@en ;
  rdfs:comment "Cleansing properties are properties of data cleansing rules."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:dataCleansingRuleRelationship a rdf:Property ;
  rdfs:label "Data Cleansing Rule Relationship"@en ;
  rdfs:comment "Data cleansing rule relationships are object properties of the data cleansing rules."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:dataElementRelationship a rdf:Property ;
  rdfs:label "Data Element Relationship"@en ;
  rdfs:comment "The data element relationship property is an abstract property that holds object properties that are used to define internal and external relationships of data elements."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:dataRequirementsRelationship a rdf:Property ;
  rdfs:label "Data Requirements Relationship"@en ;
  rdfs:comment "The data requirements relationship property is an abstract property that holds object properties that are used to define internal and external relationships of data requirements."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:hasCondition a rdf:Property ;
  rdfs:label "Condition"@en ;
  rdfs:comment "Connects a conditional rule with a certain condition"@en ;
  rdfs:range dqm:Condition ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:operatedValue a rdf:Property ;
  rdfs:label "Operated Value"@en ;
  rdfs:comment "The operated value property is an abstract property for datatype properties that are used to express string filtering criteria."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:referenceProperty a rdf:Property ;
  rdfs:label "Reference Property"@en ;
  rdfs:comment "The reference property points to the URI of a property that holds trusted values, i.e. values of high quality"@en ;
  rdfs:range dqm:TrustedProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .

dqm:reqMetadata a rdf:Property ;
  rdfs:label "Requirement Metadata"@en ;
  rdfs:comment "An abstract property that holds generic datatype properties that describe a data requirement."@en ;
  rdfs:range <https://w3id.org/linkml/Any> .

dqm:testedProperty a rdf:Property ;
  rdfs:label "Tested Property"@en ;
  rdfs:comment "The property with the values that shall be tested for data quality problems."@en ;
  rdfs:range dqm:TestedProperty ;
  rdfs:subPropertyOf dqm:dataElementRelationship .
