# baseURI: https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/ISO/ISO11240-UnitsOfMeasurement/
# imports: https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/ISO/ISO21090-HarmonizedDatatypes/
# imports: https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/META/ChangeManagement/
# imports: https://www.omg.org/spec/Commons/AnnotationVocabulary/
# imports: https://www.omg.org/spec/Commons/CodesAndCodeSets/
# imports: https://www.omg.org/spec/Commons/Collections/
# imports: https://www.omg.org/spec/Commons/Designators/
# imports: https://www.omg.org/spec/Commons/Documents/
# imports: https://www.omg.org/spec/Commons/Identifiers/
# imports: https://www.omg.org/spec/Commons/Locations/
# imports: https://www.omg.org/spec/Commons/QuantitiesAndUnits/
# imports: https://www.omg.org/spec/Commons/TextDatatype/
# imports: https://www.omg.org/spec/LCC/Languages/LanguageRepresentation/

@base <https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/ISO/ISO11240-UnitsOfMeasurement/> .
@prefix cmns-av: <https://www.omg.org/spec/Commons/AnnotationVocabulary/> .
@prefix cmns-cds: <https://www.omg.org/spec/Commons/CodesAndCodeSets/> .
@prefix cmns-col: <https://www.omg.org/spec/Commons/Collections/> .
@prefix cmns-doc: <https://www.omg.org/spec/Commons/Documents/> .
@prefix cmns-dsg: <https://www.omg.org/spec/Commons/Designators/> .
@prefix cmns-id: <https://www.omg.org/spec/Commons/Identifiers/> .
@prefix cmns-loc: <https://www.omg.org/spec/Commons/Locations/> .
@prefix cmns-qtu: <https://www.omg.org/spec/Commons/QuantitiesAndUnits/> .
@prefix cmns-txt: <https://www.omg.org/spec/Commons/TextDatatype/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix idmp-chg: <https://spec.pistoiaalliance.org/idmp/ontology/META/ChangeManagement/> .
@prefix idmp-dtp: <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO21090-HarmonizedDatatypes/> .
@prefix idmp-uom: <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> .
@prefix lcc-lr: <https://www.omg.org/spec/LCC/Languages/LanguageRepresentation/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

<https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/>
	a owl:Ontology ;
	rdfs:label "ISO 11240 Units of Measurement (UOM) Ontology" ;
	dcterms:abstract "This ontology provides a semantic model representing common definitions for exchanging units of measure and measurement concepts that are commonly encountered in healthcare environments in support of information exchange in the healthcare environment. It is derived from the ISO 11240:2012 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement as well as from other ISO and OMG standards such as SysML." ;
	dcterms:license "https://opensource.org/licenses/MIT"^^xsd:anyURI ;
	owl:imports
		<https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/ISO/ISO21090-HarmonizedDatatypes/> ,
		<https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/META/ChangeManagement/> ,
		<https://www.omg.org/spec/Commons/AnnotationVocabulary/> ,
		<https://www.omg.org/spec/Commons/CodesAndCodeSets/> ,
		<https://www.omg.org/spec/Commons/Collections/> ,
		<https://www.omg.org/spec/Commons/Designators/> ,
		<https://www.omg.org/spec/Commons/Documents/> ,
		<https://www.omg.org/spec/Commons/Identifiers/> ,
		<https://www.omg.org/spec/Commons/Locations/> ,
		<https://www.omg.org/spec/Commons/QuantitiesAndUnits/> ,
		<https://www.omg.org/spec/Commons/TextDatatype/> ,
		<https://www.omg.org/spec/LCC/Languages/LanguageRepresentation/>
		;
	owl:versionIRI <https://spec.pistoiaalliance.org/idmp/ontology/master/v1.4.0/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:changeNote
		"The https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement.rdf version of this ontology was augmented to integrate revisions to the content from the 1.2 revision of the OMG Commons Ontology Library (IDMP-774)." ,
		"The https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement.rdf version of this ontology was modified to add a specific property for 'has unit of presentation' (IDMP-473)."
		;
	idmp-chg:hasMaturityLevel idmp-chg:Release ;
	cmns-av:copyright
		"Copyright (c) 2022-2024 EDM Council, Inc." ,
		"Copyright (c) 2022-2024 Pistoia Alliance, Inc."
		;
	.

idmp-uom:CodeSystemFullName
	a owl:Class ;
	rdfs:subClassOf
		idmp-dtp:CodeSystemName ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:isNameOf ;
			owl:onClass idmp-uom:UnitOfMeasureIdentificationScheme ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		]
		;
	rdfs:label "code system full name" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.3 Code System, Table 3" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "official name of the code system" ;
	.

idmp-uom:CodeSystemIdentifier
	a owl:Class ;
	rdfs:subClassOf
		idmp-dtp:ObjectIdentifier ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-id:identifies ;
			owl:someValuesFrom cmns-cds:CodeSet ;
		]
		;
	rdfs:label "code system identifier" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.3 Code System, Table 3" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "globally unique identifier for the code system" ;
	skos:note "Code System Identifier should take the form of an ISO Object Identifier (OID)." ;
	.

idmp-uom:ISO11240LexiconCodeEntry
	a owl:Class ;
	rdfs:subClassOf
		idmp-uom:UnitOfMeasureIdentifier ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:hasDescription ;
			owl:minQualifiedCardinality "0"^^xsd:nonNegativeInteger ;
			owl:onDataRange cmns-txt:Text ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty idmp-uom:hasRegionCode ;
			owl:someValuesFrom cmns-loc:GeographicRegionIdentifier ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty idmp-dtp:hasLanguageCode ;
			owl:someValuesFrom lcc-lr:LanguageIdentifier ;
		]
		;
	rdfs:label "ISO 11240 lexicon code entry" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.2" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "unique identifier for the unit of measurement entry within the ISO lexicon" ;
	skos:note "This code represents the unit of measurement concept and shall be used as the unit of measurement identifier in electronic communication. This identifier shall be a Unified Code for Units of Measure (UCUM). A valid code shall be provided for each concept included in an implementation of this International Standard. The OID of the coding system for the unit of measurement identifier is 2.16.840.1.113883.6.8." ;
	.

idmp-uom:TimeQuantity
	a owl:Class ;
	rdfs:subClassOf
		cmns-qtu:ScalarQuantity ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-qtu:hasQuantityKind ;
			owl:hasValue idmp-uom:TimeQuantityKind ;
		]
		;
	rdfs:label "time quantity" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "fundamental scalar physical property that expresses the duration separating two events" ;
	.

idmp-uom:TimeQuantityKind
	a
		owl:NamedIndividual ,
		cmns-qtu:QuantityKind
		;
	rdfs:label "time quantity kind" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "quantity kind for the amount of time passed between two events" ;
	.

idmp-uom:TimeQuantityValue
	a owl:Class ;
	rdfs:subClassOf
		cmns-qtu:ScalarQuantityValue ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-qtu:expressesTheMagnitudeOf ;
			owl:allValuesFrom idmp-uom:TimeQuantity ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-qtu:hasMeasurementUnit ;
			owl:allValuesFrom idmp-uom:TimeUnit ;
		]
		;
	rdfs:label "time quantity value" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "quantity value expressing the amount of time passed (duration)" ;
	cmns-av:usageNote "Durations outside of the domain of the natural sciences will be usually using an instance of Duration from the CMNS Dates and Times ontology. Duration uses the ISO 8601 temporal duration notation to express the time passed." ;
	.

idmp-uom:TimeQuantityValueRange
	a owl:Class ;
	rdfs:subClassOf
		cmns-qtu:ScalarQuantityValueRange ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-qtu:hasLowerBound ;
			owl:allValuesFrom idmp-uom:TimeQuantityValue ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-qtu:hasUpperBound ;
			owl:allValuesFrom idmp-uom:TimeQuantityValue ;
		]
		;
	rdfs:label "time quantity value range" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "quantity value range expressing upper and lower bounds on time (duration) values" ;
	.

idmp-uom:TimeUnit
	a owl:Class ;
	rdfs:subClassOf cmns-qtu:PhysicalUnit ;
	rdfs:label "time unit" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "measurement unit for passed time or duration" ;
	.

idmp-uom:UnitOfMeasureIdentificationScheme
	a owl:Class ;
	rdfs:subClassOf
		cmns-cds:CodeSet ,
		cmns-id:IdentificationScheme ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-col:hasMember ;
			owl:allValuesFrom idmp-uom:UnitOfMeasureIdentifier ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:hasName ;
			owl:onClass idmp-uom:CodeSystemFullName ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:hasName ;
			owl:onClass idmp-dtp:CodeSystemName ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:hasDescription ;
			owl:onDataRange cmns-txt:Text ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		]
		;
	rdfs:label "unit of measure identification scheme" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.1" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "system for minting identifiers for things that specifies constraints on the structure of the unit of measure identifier" ;
	.

idmp-uom:UnitOfMeasureIdentifier
	a owl:Class ;
	rdfs:subClassOf
		cmns-cds:CodeElement ,
		cmns-id:Identifier ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-col:compliesWith ;
			owl:someValuesFrom idmp-uom:UnitOfMeasureIdentificationScheme ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-col:isMemberOf ;
			owl:someValuesFrom idmp-uom:UnitOfMeasureIdentificationScheme ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-id:identifies ;
			owl:someValuesFrom cmns-qtu:MeasurementUnit ;
		]
		;
	rdfs:label "unit of measure identifier" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.1" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "unique identifier for the unit of measure in some system of units" ;
	.

idmp-uom:UnitOfPresentation
	a owl:Class ;
	rdfs:subClassOf cmns-qtu:MeasurementUnit ;
	rdfs:label "unit of presentation" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 3.1.34" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	skos:definition "qualitative term describing the discrete countable entity in which a pharmaceutical product or manufactured item is presented, in cases where strength or quantity is expressed referring to one instance of this countable entity" ;
	skos:example
		"To describe quantity: a bottle, box or vial 'contains 100 ml per bottle' (unit of presentation = bottle)." ,
		"To describe strength: a puff, spray or tablet 'contains 100 mcg per spray' (unit of presentation = spray)."
		;
	skos:note "A unit of presentation can have the same name as another controlled vocabulary, such as a basic dose form or a container, but the two concepts are not equivalent, and each has a unique controlled vocabulary term identifier." ;
	.

idmp-uom:hasRegionCode
	a owl:ObjectProperty ;
	rdfs:subPropertyOf cmns-doc:refersTo ;
	rdfs:label "has region code" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.2 Unit of measurement Code Entry, Table 2" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	rdfs:range cmns-loc:GeographicRegionIdentifier ;
	skos:definition "indicates a geographic refinement of the language of this entry using ISO 3166" ;
	idmp-dtp:isEncodedAs idmp-dtp:DatatypeCode-CD ;
	.

idmp-uom:hasUnitOfPresentation
	a owl:ObjectProperty ;
	rdfs:subPropertyOf cmns-qtu:hasMeasurementUnit ;
	rdfs:label "has unit of presentation" ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	rdfs:range idmp-uom:UnitOfPresentation ;
	skos:definition "indicates the presentation unit in which something is expressed" ;
	.

idmp-uom:isSIQuantity
	a
		owl:DatatypeProperty ,
		owl:FunctionalProperty
		;
	rdfs:subPropertyOf idmp-dtp:hasBooleanValue ;
	rdfs:label "is SI quantity" ;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.1, Table 1" ;
	rdfs:domain cmns-qtu:MeasurementUnit ;
	rdfs:isDefinedBy <https://spec.pistoiaalliance.org/idmp/ontology/ISO/ISO11240-UnitsOfMeasurement/> ;
	rdfs:range xsd:boolean ;
	skos:definition "indicates that the unit of measure is an SI quantity, or is based on an SI quantity" ;
	idmp-dtp:isEncodedAs idmp-dtp:DatatypeCode-BL ;
	.

cmns-qtu:MeasurementUnit
	a owl:Class ;
	rdfs:subClassOf
		[
			a owl:Restriction ;
			owl:onProperty idmp-uom:isSIQuantity ;
			owl:onDataRange xsd:boolean ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-dsg:hasDescription ;
			owl:onDataRange cmns-txt:Text ;
			owl:qualifiedCardinality "1"^^xsd:nonNegativeInteger ;
		] ,
		[
			a owl:Restriction ;
			owl:onProperty cmns-id:isIdentifiedBy ;
			owl:someValuesFrom idmp-uom:UnitOfMeasureIdentifier ;
		]
		;
	dcterms:source "ISO 11240 Health informatics - Identification of medicinal products - Data elements and structures for the unique identification and exchange of units of measurement, clause 4.6.2.1, Table 1" ;
	skos:note
		"Each core unit of measurement concept may have one or more associated unit of measurement code entries from different CodeSystems, reflecting the fact that a unit of measurement concept can be present in multiple unit of measurement dictionaries or coding systems (e.g. UCUM, NCI Thesaurus, SNOMED)." ,
		"The two core attributes (identifier and definition) refer to the abstract concept, and shall be part of its core definition. The identifier represents a particular unit quantity and refers to the underlying metrological or published definitions, e.g. the SI base units, through the intrinsic formalism that is provided by the reference code system."
		;
	.

