Is there a list of Units available?
Closed this issue · 9 comments
I'm looking for a list of units (including Unit, PrefixedUnit, UnitExponentiation, etc.), in any standard data format, so that our different user groups can pick a much smaller selection of the units they want to have for their specific application, and we can load them into their instance. We basically need class name, a label, and a symbol, plus any useful categorization
I've looked around here, and briefly checked out the python conversion app, neither of which seemed like it could easily provide such a list. Now I am manually going through the raw git file here, which will give me what I want, but is taking quite a while.
Is there something I missed? (Apologies if so!) I would very much appreciate any help you can give.
If I am doing it the only or best way, then I'm happy to do it and return to you a list of units when I am done.
You could try to load the RDF file in a triple store (or some other libraries) and run a SPARQL query to get those results.
This query might still work or at least give you a start for that.
Thanx both! Indeed, Sirko's solution seems like a good solution. The query should indeed still work.
Please let us know, Lynn, if this is working for you.
Thanks both! I will let you know! Small learning curve on my side first, but I will get there shortly. :)
Hello again. Sirko's query worked well, and I got my list of units. I added to the script to get the class/type, and include all the subclasses of Unit. Then for me as a SPARQL newbie, I did some manual manipulation for our purposes.
Here is what I used, in case it is useful to you.
Again, many thanks for your prompt help!
PREFIX om: <http://www.ontology-of-units-of-measure.org/resource/om-2/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT DISTINCT
?unit
?label
?labelLang
?symbol
?type
?definition
WHERE {
{ ?unit a om:Unit }
UNION { ?unit a om:PrefixedUnit }
UNION { ?unit a om:UnitMultiple }
UNION { ?unit a om:SingularUnit }
UNION { ?unit a om:CompoundUnit }
UNION { ?unit a om:LengthUnit }
UNION { ?unit a om:AreaUnit }
UNION { ?unit a om:VolumeUnit }
UNION { ?unit a om:AngleUnit }
UNION { ?unit a om:SolidAngleUnit }
UNION { ?unit a om:TimeUnit }
UNION { ?unit a om:MassUnit }
UNION { ?unit a om:QuantityOfDimensionOneUnit }
UNION { ?unit a om:NumberUnit }
UNION { ?unit a om:RatioUnit }
UNION { ?unit a om:PercentageUnit }
UNION { ?unit a om:MassFractionUnit }
UNION { ?unit a om:AreaFractionUnit }
UNION { ?unit a om:VolumeFractionUnit }
UNION { ?unit a om:RelativeHumidityUnit }
UNION { ?unit a om:FrequencyUnit }
UNION { ?unit a om:NumberDensityUnit }
UNION { ?unit a om:WavenumberUnit }
UNION { ?unit a om:AccelerationUnit }
UNION { ?unit a om:DensityUnit }
UNION { ?unit a om:SpecificVolumeUnit }
UNION { ?unit a om:SpeedUnit }
UNION { ?unit a om:ForceUnit }
UNION { ?unit a om:PressureUnit }
UNION { ?unit a om:StressUnit }
UNION { ?unit a om:TorqueUnit }
UNION { ?unit a om:MomentOfForceUnit }
UNION { ?unit a om:EnergyUnit }
UNION { ?unit a om:PowerUnit }
UNION { ?unit a om:SpecificEnergyUnit }
UNION { ?unit a om:AngularSpeedUnit }
UNION { ?unit a om:AngularAccelerationUnit }
UNION { ?unit a om:DynamicViscosityUnit }
UNION { ?unit a om:KinematicViscosityUnit }
UNION { ?unit a om:PowerDensityUnit }
UNION { ?unit a om:RadiantIntensityUnit }
UNION { ?unit a om:RadianceUnit }
UNION { ?unit a om:EnergyDensityUnit }
UNION { ?unit a om:ActionUnit }
UNION { ?unit a om:AngularMomentumUnit }
UNION { ?unit a om:FluidityUnit }
UNION { ?unit a om:MomentumUnit }
UNION { ?unit a om:MomentOfInertiaUnit }
UNION { ?unit a om:ShearRateUnit }
UNION { ?unit a om:SurfaceTensionUnit }
UNION { ?unit a om:VolumetricFlowRateUnit }
UNION { ?unit a om:DetectivityUnit }
UNION { ?unit a om:MassFlowUnit }
UNION { ?unit a om:AreaDensityUnit }
UNION { ?unit a om:AreaDensityRateUnit }
UNION { ?unit a om:ColumnNumberDensityUnit }
UNION { ?unit a om:ThermalDiffusivityUnit }
UNION { ?unit a om:TemperatureUnit }
UNION { ?unit a om:EntropyUnit }
UNION { ?unit a om:HeatCapacityUnit }
UNION { ?unit a om:SpecificEntropyUnit }
UNION { ?unit a om:SpecificHeatCapacityUnit }
UNION { ?unit a om:ThermalConductivityUnit }
UNION { ?unit a om:ThermalResistanceUnit }
UNION { ?unit a om:HeatTransferCoefficientUnit }
UNION { ?unit a om:TemperatureRateUnit }
UNION { ?unit a om:VolumetricHeatCapacityUnit }
UNION { ?unit a om:ElectricCurrentUnit }
UNION { ?unit a om:MagnetomotiveForceUnit }
UNION { ?unit a om:CurrentDensityUnit }
UNION { ?unit a om:ElectricChargeUnit }
UNION { ?unit a om:ElectricPotentialUnit }
UNION { ?unit a om:CapacitanceUnit }
UNION { ?unit a om:ElectricalResistanceUnit }
UNION { ?unit a om:ElectricalConductanceUnit }
UNION { ?unit a om:ElectricFieldUnit }
UNION { ?unit a om:ElectricChargeDensityUnit }
UNION { ?unit a om:ElectricFluxDensityUnit }
UNION { ?unit a om:MagneticFluxUnit }
UNION { ?unit a om:MagneticFieldUnit }
UNION { ?unit a om:MagneticFluxDensityUnit }
UNION { ?unit a om:InductanceUnit }
UNION { ?unit a om:Permeance-ElectromagneticUnit }
UNION { ?unit a om:PermeabilityOfFreeSpaceUnit }
UNION { ?unit a om:PermittivityUnit }
UNION { ?unit a om:ElectricDipoleMomentUnit }
UNION { ?unit a om:ReluctanceUnit }
UNION { ?unit a om:ElectricalResistivityUnit }
UNION { ?unit a om:ElectricalConductivityUnit }
UNION { ?unit a om:StrainUnit }
UNION { ?unit a om:AlfvenNumberUnit }
UNION { ?unit a om:CowlingNumberUnit }
UNION { ?unit a om:EulerNumberUnit }
UNION { ?unit a om:FirstCowlingNumberUnit }
UNION { ?unit a om:FourierNumberUnit }
UNION { ?unit a om:FourierNumberForMassTransferUnit }
UNION { ?unit a om:FroudeNumberUnit }
UNION { ?unit a om:GrashofNumberUnit }
UNION { ?unit a om:GrashofNumberForMassTransferUnit }
UNION { ?unit a om:HartmannNumberUnit }
UNION { ?unit a om:KnudsenNumberUnit }
UNION { ?unit a om:LewisNumberUnit }
UNION { ?unit a om:MachNumberUnit }
UNION { ?unit a om:MagneticReynoldsNumberUnit }
UNION { ?unit a om:NusseltNumberUnit }
UNION { ?unit a om:NusseltNumberForMassTransferUnit }
UNION { ?unit a om:PecletNumberUnit }
UNION { ?unit a om:PecletNumberForMassTransferUnit }
UNION { ?unit a om:PrandtlNumberUnit }
UNION { ?unit a om:RayleighNumberUnit }
UNION { ?unit a om:ReynoldsNumberUnit }
UNION { ?unit a om:SchmidtNumberUnit }
UNION { ?unit a om:StantonNumberUnit }
UNION { ?unit a om:StantonNumberForMassTransferUnit }
UNION { ?unit a om:StrouhalNumberUnit }
UNION { ?unit a om:WeberNumberUnit }
UNION { ?unit a om:AmountOfSubstanceUnit }
UNION { ?unit a om:AmountOfSubstanceConcentrationUnit }
UNION { ?unit a om:AmountOfSubstanceFractionUnit }
UNION { ?unit a om:MolarEnergyUnit }
UNION { ?unit a om:MolarEntropyUnit }
UNION { ?unit a om:MolarHeatCapacityUnit }
UNION { ?unit a om:GasConstantUnit }
UNION { ?unit a om:MolalityUnit }
UNION { ?unit a om:MolarMassUnit }
UNION { ?unit a om:MolarVolumeUnit }
UNION { ?unit a om:AmountOfSubstanceFlowUnit }
UNION { ?unit a om:CatalyticActivityUnit }
UNION { ?unit a om:CatalyticActivityConcentrationUnit }
UNION { ?unit a om:SpecificCatalyticActivityUnit }
UNION { ?unit a om:LuminousIntensityUnit }
UNION { ?unit a om:LuminanceUnit }
UNION { ?unit a om:LuminousEnergyUnit }
UNION { ?unit a om:LuminousFluxUnit }
UNION { ?unit a om:IlluminanceUnit }
UNION { ?unit a om:ExposureUnit }
UNION { ?unit a om:LuminousEfficacyUnit }
UNION { ?unit a om:AbsorbedDoseUnit }
UNION { ?unit a om:DoseEquivalentUnit }
UNION { ?unit a om:ActivityUnit }
UNION { ?unit a om:ExposureToXAndGammaRaysUnit }
UNION { ?unit a om:AbsorbedDoseRateUnit }
UNION { ?unit a om:DynamicRangeUnit }
UNION { ?unit a om:QuantumEfficiencyUnit }
UNION { ?unit a om:MagnitudeUnit }
UNION { ?unit a om:ResponsivityUnit }
UNION { ?unit a om:CurvatureConstantUnit }
UNION { ?unit a om:DecelerationParameterUnit }
UNION { ?unit a om:DensityParameterUnit }
UNION { ?unit a om:HubbleConstantUnit }
UNION { ?unit a om:Permeability-EarthScienceUnit }
UNION { ?unit a om:MaterialsScienceUnit }
UNION { ?unit a om:ViableCountUnit }
UNION { ?unit a om:VolumetricViableCountUnit }
UNION { ?unit a om:SpecificViableCountUnit }
UNION { ?unit a om:AmountOfMoneyUnit }
UNION { ?unit a om:SpecificAmountOfMoneyUnit }
UNION { ?unit a om:InformationCapacityUnit }
UNION { ?unit a om:SymbolRateUnit }
UNION { ?unit a om:PixelCountUnit }
UNION { ?unit a om:FontSizeUnit }
UNION { ?unit a om:UnitDivision }
UNION { ?unit a om:GramPerPrefixedLitre }
UNION { ?unit a om:MetrePerPrefixedSecond-Time }
UNION { ?unit a om:MetrePerPrefixedSecond-TimeSquared }
UNION { ?unit a om:MolePerPrefixedLitre }
UNION { ?unit a om:MolePerPrefixedMetre }
UNION { ?unit a om:PrefixedGramPerLitre }
UNION { ?unit a om:PrefixedGramPerPrefixedLitre }
UNION { ?unit a om:PrefixedMetrePerPrefixedSecond-TimeSquared }
UNION { ?unit a om:PrefixedMetrePerPrefixedSecond-TimeSquared }
UNION { ?unit a om:PrefixedMetrePerPrefixedSecond-Time }
UNION { ?unit a om:PrefixedMetrePerSecond-Time }
UNION { ?unit a om:PrefixedMetrePerSecond-TimeSquared }
UNION { ?unit a om:PrefixedMolePerLitre }
UNION { ?unit a om:PrefixedMolePerMetre }
UNION { ?unit a om:PrefixedMolePerPrefixedLitre }
UNION { ?unit a om:PrefixedMolePerPrefixedMetre }
UNION { ?unit a om:SquarePrefixedMetre }
UNION { ?unit a om:PrefixedSecond-TimeSquared }
UNION { ?unit a om:CubicPrefixedMetre }
UNION { ?unit a om:SquarePrefixedMetre }
UNION { ?unit a om:UnitMultiplication }
UNION { ?unit a om:PrefixedMetrePrefixedGram }
UNION { ?unit a om:UnitExponentiation }
UNION { ?unit a om:CelsiusTemperatureUnit }
UNION { ?unit a om:FahrenheitTemperatureUnit }
UNION { ?unit a om:RankineTemperatureUnit }
UNION { ?unit a om:ReaumurTemperatureUnit }
UNION { ?unit a om:ThermodynamicTemperatureUnit }
UNION { ?unit a om:PrefixedAmpere }
UNION { ?unit a om:PrefixedAre }
UNION { ?unit a om:PrefixedBecquerel }
UNION { ?unit a om:PrefixedBit }
UNION { ?unit a om:PrefixedByte }
UNION { ?unit a om:PrefixedCalorie-Mean }
UNION { ?unit a om:PrefixedCandela }
UNION { ?unit a om:PrefixedCoulomb }
UNION { ?unit a om:PrefixedDegreeCelsius }
UNION { ?unit a om:PrefixedElectronvolt }
UNION { ?unit a om:PrefixedFarad }
UNION { ?unit a om:PrefixedGram }
UNION { ?unit a om:PrefixedGray }
UNION { ?unit a om:PrefixedHenry }
UNION { ?unit a om:PrefixedHertz }
UNION { ?unit a om:PrefixedJoule }
UNION { ?unit a om:PrefixedKatal }
UNION { ?unit a om:PrefixedKelvin }
UNION { ?unit a om:PrefixedLitre }
UNION { ?unit a om:PrefixedLumen }
UNION { ?unit a om:PrefixedLux }
UNION { ?unit a om:PrefixedMetre }
UNION { ?unit a om:PrefixedMolair }
UNION { ?unit a om:PrefixedMole }
UNION { ?unit a om:PrefixedNewton }
UNION { ?unit a om:PrefixedOhm }
UNION { ?unit a om:PrefixedPascal }
UNION { ?unit a om:PrefixedPoise }
UNION { ?unit a om:PrefixedRadian }
UNION { ?unit a om:PrefixedSecond-Time }
UNION { ?unit a om:PrefixedSiemens }
UNION { ?unit a om:PrefixedSievert }
UNION { ?unit a om:PrefixedSteradian }
UNION { ?unit a om:PrefixedStokes }
UNION { ?unit a om:PrefixedTesla }
UNION { ?unit a om:PrefixedTonne }
UNION { ?unit a om:PrefixedUnifiedAtomicMassUnit }
UNION { ?unit a om:PrefixedVolt }
UNION { ?unit a om:PrefixedWatt }
UNION { ?unit a om:PrefixedWeber }
OPTIONAL {
?unit rdfs:label ?label
BIND( LANG(?label) AS ?labelLang )
}
OPTIONAL { ?unit om:symbol ?symbol }
OPTIONAL { ?unit rdfs:comment ?definition }
OPTIONAL { ?unit rdf:type ?type }
}
Hi Lynn,
Glad this works, and happy to have helped!
One question, if you allow me: I see you have a large WHERE clause, referring to all subclasses of om:Unit. Is that necessary because you have added the rdf:type of the units in your SELECT?
Cheers, Hajo
One question, if you allow me: I see you have a large WHERE clause, referring to all subclasses of om:Unit. Is that necessary because you have added the rdf:type of the units in your SELECT?
No, it wasn't because of the rdf:type addition. In the original query, I was only getting back units that were type Unit, it wasn't smart enough to automatically bring back units of Unit's subclasses. (There might be more elegant ways to do what I did, but that worked.) In some cases, the units were associated to more than one type, so of course I got duplicate rows, but I just got rid of those manually from the result set.
Clear, thanx! :)
In some cases, the units were associated to more than one type, so of course I got duplicate rows, but I just got rid of those manually from the result set.
Then I guess the DISTINCT didn't work that well either. :/
Then I guess the DISTINCT didn't work that well either. :/
Right, they weren't distinct because it was making records out of triples. I got a row for each language too. And each language/type combination. :)
Wow, that's a lot of rows! ;)