Giter Club home page Giter Club logo

qudt-public-repo's Introduction

QUDT - Quantities, Units, Dimensions and dataTypes - public repository

Overview

This QUDT1 public repository contains the schema and vocabulary source files for the graphs making up the QUDT collection. It is probably the most convenient way for software developers to include the QUDT ontologies in their work, and is the most up-to-date. However, for those who prefer the linked data world, each QUDT graph is also available in both a versioned and an unversioned form on the qudt.org website.

DOI reference for citations: https://doi.org/10.25504/FAIRsharing.d3pqw7

Here is the core design pattern of the QUDT ontology:

QUDT Triad Pattern

Here is the imports closure graph, so you can see which files you need to explicitly import, depending on your application:

image

Note that the default schema is expressed in SHACL. You can change this to use the OWL schema if you prefer, as documented here.

Our current plan is to deliver this material in even more powerful ways. The website now hosts an engine supporting SPARQL and GraphQL queries. Fully resolvable URIs at the graph and instance level are available online. Eventually we will also support resolvable class URIs as well. We are also creating a series of User Guides on the wiki for this repository.

We encourage you to get involved. If you have particular needs or see errors, please create an Issue and/or make changes or additions yourself (please see our Wiki for more detailed instructions, and specifically the Units Submission Guide if you would like to suggest additional units.) We are a volunteer-staffed effort, but we do have infrastructural expenses. Please consider making a DONATION.

Installation / Configuration instructions

The QUDT ontology is provided in two forms: OWL and SHACL. By default, the vocabularies are configured to use the SHACL schema. To configure it to use the OWL schema instead, just make the following single change in the file schema/SHEMA-FACADE_QUDT-v2.1.ttl. You can see in the imports closure diagram above how all the vocabularies import this single "facade" file to make it easy to switch the ontology.

Change this line:
  owl:imports <http://qudt.org/2.1/schema/shacl/qudt> ;  
To:
  owl:imports <http://qudt.org/2.1/schema/qudt> ;

If you are using the tools from TopQuadrant, you should also change the comment line at the top of the same file:

Change this line:
# imports: http://qudt.org/2.1/schema/shacl/qudt
To:
# imports: http://qudt.org/2.1/schema/qudt

Configuration for QUDT Users versus QUDT Developers

QUDT SHACL is supported by a set of validation rules that check the integrity and consistency of class, property and instance definitions of the QUDT collection. However, for someone who wishes to simply use the QUDT ontologies without modifying the schema or vocabularies, these validation rules impose an unnecessary computational load. For QUDT users, you can skip the validation of QUDT itself by making the following change in the FACADE file mentioned above:

Change this line:
  owl:imports <http://qudt.org/2.1/collection/qa/all> ;
To:
  owl:imports <http://qudt.org/2.1/collection/usertest> ;

If you are using the tools from TopQuadrant, you should also change the comment line at the top of the same file:

Change this line:
# imports: http://qudt.org/2.1/collection/qa/all
To:
# imports: http://qudt.org/2.1/collection/usertest

Currently, the tests in the usertest graph check for references to deprecated instances or properties and recommend the updated instance or property.

Protege Users

Disclaimer: The QUDT ontologies have been tested to load without error only in Protege 5.5.0, but not later releases.

To load QUDT into Protege, choose "Open from URI" from the file menu, and enter http://qudt.org/2.1/vocab/unit

(The "facade" file that is resolvable on the web (http://qudt.org/2.1/schema/facade/qudt) is already configured to load the OWL schema rather than the SHACL schema, so Protege users will be in the OWL world using this method.)

Ontology libraries

Please note that various libraries exhibit different behaviors when importing the QUDT ontology, see this discussion.

Status

Please see the New Features and Releases topic in the Discussions section for status updates.


1 QUDT.org is a 501(c)(3) not-for-profit organization founded to provide semantic specifications for units of measure, quantity kind, dimensions and data types. QUDT is an advocate for the development and implementation of standards to quantify data expressed in RDF and JSON. Our mission is to improve interoperability of data and the specification of information structures through industry standards for Units of Measure, Quantity Kinds, Dimensions and Data Types. Sponsorships are greatly appreciated!

QUDT.org is a member of the World Wide Web Consortium (W3C)


Last updated by: Steve Ray ([email protected])

Last updated: August 4, 2022

qudt-public-repo's People

Contributors

aellenhicks-jhuapl avatar ahles avatar connorjcantrell avatar cpauloh avatar docmt avatar dr-shorthair avatar edmondchuc avatar ektrah avatar fennibay avatar fkleedorfer avatar gezever avatar glow-mdsol avatar jhodgesatmb avatar jimkont avatar jmkeil avatar justinprice02 avatar kinghuang avatar kitchenprinzessin3880 avatar mgberg avatar milosdrobnjakovic avatar nicholascar avatar paroga avatar qudt avatar ralphtq avatar steveraysteveray avatar stuchalk avatar table-interpretation avatar toni100 avatar tpluscode avatar zack-83 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qudt-public-repo's Issues

Errors opening unit ontology with Protégé

When I try to open the unit ontology with Protégé 5.5, I get the following errors:

...
   INFO  16:15:32  Usage of rdf vocabulary: http://www.linkedmodel.org/schema/dtype#value -> http://www.w3.org/1999/02/22-rdf-syntax-ns#type -> http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
   INFO  16:15:32  Usage of rdf vocabulary: http://www.linkedmodel.org/schema/dtype#value -> http://www.w3.org/1999/02/22-rdf-syntax-ns#type -> http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
   INFO  16:15:32  Usage of rdf vocabulary: http://www.linkedmodel.org/schema/dtype#defaultValue -> http://www.w3.org/1999/02/22-rdf-syntax-ns#type -> http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
  ERROR  16:15:32  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error1 for type Class
  ERROR  16:15:32  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error2 for type Class
   INFO  16:15:32  Unparsed triple: _:genid2147483682 -> http://www.w3.org/2002/07/owl#onProperty -> http://www.linkedmodel.org/schema/dtype#defaultValue
   INFO  16:15:32  Unparsed triple: _:genid2147483685 -> http://www.w3.org/2002/07/owl#onProperty -> http://www.linkedmodel.org/schema/dtype#value
   INFO  16:15:32  Finished loading imported ontology at http://www.linkedmodel.org/schema/dtype
...
   INFO  16:11:07  Usage of rdf vocabulary: http://www.w3.org/2004/02/skos/core#exactMatch -> http://www.w3.org/1999/02/22-rdf-syntax-ns#type -> http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
   INFO  16:11:07  Usage of rdf vocabulary: http://www.w3.org/2004/02/skos/core#closeMatch -> http://www.w3.org/1999/02/22-rdf-syntax-ns#type -> http://www.w3.org/1999/02/22-rdf-syntax-ns#Property
   INFO  16:11:07  Finished loading imported ontology at http://www.w3.org/2004/02/skos/core
  ERROR  16:11:07  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error3 for type Class
  ERROR  16:11:07  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error4 for type Class
  ERROR  16:11:07  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error5 for type Class
  ERROR  16:11:07  Entity not properly recognized, missing triples in input? http://org.semanticweb.owlapi/error#Error6 for type Class
...
   INFO  16:15:34  Imported ontology document http://qudt.org/2.1/vocab/quantitykind was not resolved to any documents defined in the ontology catalog.
   INFO  16:15:35  Imported ontology document http://qudt.org/2.1/vocab/dimensionvector was not resolved to any documents defined in the ontology catalog.
  ERROR  16:15:37  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-DIMENSION-VECTORS> "dimensionVector"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
   INFO  16:15:37  Finished loading imported ontology at http://qudt.org/2.1/vocab/dimensionvector
   INFO  16:15:37  Imported ontology document http://qudt.org/2.1/vocab/unit was not resolved to any documents defined in the ontology catalog.
  ERROR  16:15:39  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-DIMENSION-VECTORS> "dimensionVector"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
   INFO  16:15:39  Finished loading imported ontology at http://qudt.org/2.1/vocab/unit
  ERROR  16:15:39  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-QUANTITY-KINDS-ALL> "quantitykind"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
  ERROR  16:15:39  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-DIMENSION-VECTORS> "dimensionVector"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
   INFO  16:15:39  Finished loading imported ontology at http://qudt.org/2.1/vocab/quantitykind
  ERROR  16:15:39  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-QUANTITY-KINDS-ALL> "quantitykind"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
  ERROR  16:15:39  Attempt to transform an axiom to correct misuse of properties failed. Property replacement: {<http://www.linkedmodel.org/schema/vaem#hasDomain>=<http://www.linkedmodel.org/schema/vaem#hasDomain>, <http://qudt.org/schema/qudt/ucumCaseSensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseSensitiveCode>, <http://qudt.org/schema/qudt/rationale>=<http://qudt.org/schema/qudt/rationale>, <http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>=<http://qudt.org/schema/qudt/ucumCaseInsensitiveCode>, <http://qudt.org/schema/qudt/vectorMagnitude>=<http://qudt.org/schema/qudt/vectorMagnitude>}, axiom: AnnotationAssertion(<http://www.linkedmodel.org/schema/vaem#hasDomain> <http://www.linkedmodel.org/schema/vaem#GMD_QUDT-DIMENSION-VECTORS> "dimensionVector"), error: uk.ac.manchester.cs.owl.owlapi.OWLLiteralImplNoCompression cannot be cast to org.semanticweb.owlapi.model.IRI
   INFO  16:15:39  Finished loading file:/C:/Users/Yoav/Downloads/qudt/unit
   INFO  16:15:39  Loading for ontology and imports closure successfully completed in 10067 ms
   INFO  16:15:39  Updated document format class from: org.semanticweb.owlapi.formats.RioTurtleDocumentFormat to: org.semanticweb.owlapi.formats.TurtleDocumentFormat
   INFO  16:15:39  
...

Am I doing something wrong?

Some questions for completeness and usability

Hi @steveraysteveray, I started looking into unit ontologies for Brick again. My first requirement is consistency in the names. While I haven't looked through the entire list yet, the vocabularies in QUDT got much consistent than I remember :) I have some questions to discuss this further in the Brick community.

Need to clean up temperature quantitykinds

We have:

  1. Temperature (no units point to it)
  2. ThermodynamicTemperature (referenced by DEG_F, DEG_R, K, MilliDEG_C, and PlanckTemperature)
  3. CelciusTemperature (referenced by DEG_C).

Question: Is there really some special quantitykind called CelciusTemperature? If so, MilliDEG_C should also reference it.

My first instinct is to just have Temperature, with all the relevant units pointing to it, but I don't know what I don't know.

Could others please weigh in?

Where to put fundamental constants? They are in 2 places right now.

The two files:
/vocab/quantitykinds/standards-based-quantitykinds/VOCAB_QUDT-QUANTITY-KINDS-NIST-CONSTANTS-v2.0.ttl
and
/vocab/constants/VOCAB_qudt-constants-nist-v1.2.ttl

both contain almost identical content (and lots of it). One of them has to go. The second file is the only one in the "constants" folder. There are several design issues:

The constants are all instances of either qudt:PhysicalConstant (defining the constant) or qudt:ConstantValue (giving the numerical value). Should either or both of these really have the namespace of "quantitykind"? Maybe "constant" would be a better namespace, since they really are different animals than quantity kinds (IMO).

If we do switch the namespace to "constant", then maybe the constants folder is a good home.

This design decision might also affect the "Characteristic Numbers" found in several of the quantity kind folders, which also are in the quantitykind namespace.

Furthermore, there are 5 constants that are defined in the "unit" namespace in the above files (which is how I bumped into this issue):
unit:BohrRadius
unit:EV (also defined in atomic and nuclear physics)
unit:ElementaryCharge (also defined in electromagnetism)
unit:HartreeEnergy
unit:PlanckConstant (also defined in atomic and nuclear physics, although seems like it shouldn't be)

We should put them into whatever namespace we decide on for the constants, and remove the ones that are really units.

Comments? Opinions?

Question: how to traverse the QUDT vocabularies

Now that the QUDT vocabularies are online properly, they are starting to get some attention.
So we can test to ensure that (a) the ontology is fit-for-purpose (b) the individuals are properly described. So I ran through this hypothetical, and got stuck:

convert a volume expressed in pints to litres.

I find PINT - http://qudt.org/vocab/unit/PINT - where I'm told

unit:PINT a qudt:Unit ;
    qudt:conversionMultiplier 5.6826125E-4 ;
    qudt:conversionOffset 0.0 ;
    qudt:hasQuantityKind quantitykind:Volume ;
.

This gives the factor and offset to convert to the standard, reference units for 'volume' (everything else is annotations). But what is the standard unit for volume?
So I look up http://qudt.org/vocab/quantitykind/Volume - where I'm told

qk:Volume a qudt:QuantityKind ;
    qudt:baseUnitDimensions "L^3" , "m^3" ;    # this looks a little odd - m^3 isn't a dimension
    qudt:hasDimensionVector dimension:A0E0L3I0M0H0T0D0 ;
.

How do I find out what the reference units for this quantity kind is? Without that, I can't proceed. Where to now?

Label issues

While rerunning some old analysis scripts of ours for the mapping between SWEET and QUDT2, I found some issues regarding the labels and IRIs within QUDT2:

http://qudt.org/vocab/unit/KiloBIT-PER-SEC
http://qudt.org/vocab/unit/KilobitsPerSecond

Those concepts appear to be denoting the same unit. The latter also violates the naming scheme (afaik).


http://qudt.org/vocab/unit/KiloGM-PER-SEC2

The label should most likely be "Kilogram per Second Squared" and not "Kilogram Second Squared" (see also http://qudt.org/vocab/unit/KiloGM-SEC2 )


http://qudt.org/vocab/unit/MegaTOE

Some of the properties here seem to be copied over from http://qudt.org/vocab/unit/TOE . However, they are not applicable. At least the following seem wrong to me right now: qudt:conversionMultiplier, qudt:code, qudt:id, rdfs:label, skos:prefLabel , qudt:symbol


http://qudt.org/vocab/unit/MilliARCSEC

rdfs:label and skos:prefLabel says "Mil Length" and "mil-length", but shouldn't those be exclusively for http://qudt.org/vocab/unit/MilLength ?


http://qudt.org/vocab/unit/KiloCAL-PER-CentiM2-DEG_C

No annotation makes any reference to the "Kilo" in "KiloCAL" or the 2 of "CentiM2*" of the IRI. I see multiple causes/solutions here:

  • Fix all annotations to properly match up with the IRI.
  • Remove the "2" from the IRI, which would merge it with the existing http://qudt.org/vocab/unit/KiloCAL-PER-CentiM-SEC-DEG_C
  • Remove both, the "2" and the "Kilo", from the IRI, which would bring the IRI in line with the annotations

Finally, I see two pairs of concepts, that denote different labels for the same unit, but have no apparent connection (e.g., owl:sameAs or skos:closeMatch):

http://qudt.org/vocab/unit/Dalton & http://qudt.org/vocab/unit/AMU
http://qudt.org/vocab/unit/GON & http://qudt.org/vocab/unit/GR

Add geoscience-specific elements to a profile of QUDT

Rather than adding derived units, specialised quantity kinds etc. for the geoscience field to the main QUDT ontology, they should be added to a Geoscience Profile of QUDT.

If this is accepted, the Profile would include:

  • generic units used in geoscience:
    • base mass units: grams etc.
    • base energy units: British Thermal Units
    • common derived units: kilogram, megajoule
  • less common derived units used in geoscience:
    • hundred revs per min
    • million barrels of oil equivalent per megalitre
  • specialised Scales, Quantities, QuantityKinds
    • MineralOccurenceQuantityKind
    • OreBodyQuantityKind
    • carat scale for gems
  • examples & guidance documents
    • as per all good models/profiles
  • descriptions for all elements
    • currently many QUDT elements state "A sub-type of '...'. Detailed desciption(sic) to be provided in a future version.

Whether qudt will accept M3-PER-M3

Obviously this is unitless, but one of the scientists has indicated that they would usually show m3/m3 to indicate that it is a volumetric comparison.
For example, as shown in graphs in this article https://agupubs.onlinelibrary.wiley.com/doi/10.1002/2013WR015138

unit:M3-PER-M3
    a qudt:Unit ;
    qudt:conversionMultiplier "1"^^xsd:double ;
    qudt:conversionOffset "0.0"^^xsd:double ;
    qudt:plainTextDescription "An explicit unit to indicate the volume of one component relative to the volume of a second component, usually supplied as a unitless decimal fraction. Example: volumetric water content (VWC), a given volume of water contained in given volume of substrate (soil or any other soiless media that can soak water)." ;
    qudt:hasQuantityKind quantitykind:Dimensionless ;
    qudt:symbol "m^3/m^3" ;
    rdfs:label "metre cubed per metre cubed" ;
.

Will QUDT accept that as a unit? Thanks

Need a volunteer to populate dimension ratios for dimensionless quantity kinds

See Pull Request #33 for some examples:
Angle
CompressibilityFactor
Gain
HeatCapacityRatio
MachNumber
MoleFraction
ReynoldsNumber
ThermalEfficiency

The idea is that for those quantity kinds that are dimensionless ratios, the qudt:hasDimensionVector property points to qkdv:A0E0L0I0M0H0T0D1 . (i.e. the "dimensionless" vector component D equals 1.)
However, not all dimensionless ratios are the same. Some are ratios of speed (MachNumber), some are ratios of power (Gain). So each of these dimensionless ratio quantity kinds needs to point to two additional properties:
qudt:qkdvNumerator
qudt:qkdvDenominator

...which would be of the same dimension. So, MachNumber would point these two properties to qkdv:A0E0L1I0M0H0T-1D0 (i.e. Length/Time, or speed).

We need somebody to dig in to the quantity kind vocabulary and populate these properties.

Make qudt:Concept sub-class-of skos:Concept

QUDT individuals can be reasonably understood to behave as a special kind of 'concept' in the sense designed in SKOS. Conceived this way, sets of QUDT individuals could be managed and published through standard vocabulary services.

All that is needed is to add the axiom

qudt:Concept rdfs:subClassOf skos:Concept .

PINT-compatible export

PINT is a Python library for manipulation of quantities and units.
It appears to be very actively maintained and well supported.
The documentation is here: https://pint.readthedocs.io/en/stable/

To get a sense of the scope of PINT here is the default dataset:
https://github.com/hgrecco/pint/blob/master/pint/default_en.txt

I haven't dug too much deeper, but thought it was worth drawing attention to this as a potentially significant implementation route in a very popular scientific programming environment.

Need more cross-references to other unit collections

QUDT contains links to several other collections of unit definitions, including:
UNECE
IEC 61360
OM
Wikipedia
DBpedia
ISO 80000
UCUM

Some of these sets of links are not fully populated. Also, there are other sets of unit definitions that we do not currently link to.
It would be very helpful if anybody would be interested in adding additional links.
If you would like to link to an additional collection, we will add an appropriate property to the schema. Please let us know and we will work with you.

VOCAB_unicode-v1.2.ttl is Self Importing

The file: vocab/codes/VOCAB_unicode-v1.2.ttl declares an owl:versionIRI for itself, then imports the same IRI as seen in the fragment:

<http://qudt.org/2.0/vocab/unicode>
  rdf:type owl:Ontology ;
  owl:imports <http://qudt.org/2.0/schema/unicode> ;
  owl:versionIRI <http://qudt.org/2.0/schema/unicode> ;

Add sameAs links to the old URIs

Version 1 of QUDT used the same base URI (namespace) as v2 for the vocabularies, but with different names for the items (# separator, lower-case local names). Since there are still a lot of cross-references to QUDT v1 in various places (e.g. ESIPFed/sweet#60), but the base URI now resolves to the V2.1 vocabulary (good!) it would be helpful to add sameAs mappings to help people find their way around. e,g,

http://qudt.org/vocab/unit#MinuteAngle owl:sameAs http://qudt.org/vocab/unit/ARCMIN .

(copied from https://github.com/qudtdev/qudt-r2/issues/99)

VOCAB_QUDT-SCALE-ASTROPHYSICS-v2.0.ttl Header Import Declaration Out of Sync with OWL Imports

On line 4 of VOCAB_QUDT-SCALE-ASTROPHYSICS-v2.0.ttl the header import line appears:

# imports: http://www.linkedmodel.org/schema/vaem-xics

the vaem-xics resource however does not also appear in the owl:import list:

<http://qudt.org/2.0/vocab/scale/astrophysics>
  owl:imports <http://qudt.org/2.1/schema/qudt> ;
  owl:imports <http://www.linkedmodel.org/schema/vaem> ;
  owl:imports <http://www.w3.org/2004/02/skos/core> ;
  owl:versionIRI <http://qudt.org/2.0/vocab/unit/base> ;

Note that the owl:versionIRI statement may also be unintended.

GM-PER-M2-DAY vs GM-M2-PER-DAY

In relation to #129

I think the most likely science question is 'how does x change over time?' .

So just wondering if it would be better to express this as GM-M2-PER-DAY?

VOCAB_QUDT-QUANTITY-KINDS-ISQ-INFORMATION-SCIENCE-AND-TECHNOLOGY-v2.0.ttl Contains Missing Imports

The file, VOCAB_QUDT-QUANTITY-KINDS-ISQ-INFORMATION-SCIENCE-AND-TECHNOLOGY-v2.0.ttl, contains imports of resources that are not included in the QUDT Release 2.1.4:

<http://qudt.org/2.0/vocab/isq/quantitykind/information-science-and-technology>
  owl:imports <http://qudt.org/2.0/vocab/dimensionvector> ;
  owl:imports <http://qudt.org/2.0/vocab/quantitykind/information-theory> ;
  owl:imports <http://qudt.org/2.0/vocab/quantitykind/si> ;
  owl:imports <http://qudt.org/2.0/vocab/unit/informatics> ;
  owl:versionIRI <http://qudt.org/2.0/vocab/quantitykinds/si> ;

The import of http://qudt.org/2.0/vocab/quantitykinds/si appears to be a self-import following the declaration of the same IRI as the resources owl:versionIRI.

Could QUDT vocab entries be generated dynamically?

I see a lot of careful work going on to clean up the current cache of QUDT individuals, particularly in the /vocab/unit/ tree. This is good and enhances the credibility of the QUDT service. However, it is ultimately a never ending task, as the complete set of individual units of measure is essentially infinite, when you consider all the potential combinations of all the terminals and their variants in the different systems. Perhaps another approach is warranted - generate new individuals algorithmically.

For example a query could specify the dimension and system-of-units, or the UCUM symbol*, and then the QUDT service could return the QUDT representation and a URI for it. This might come from a static cache (which is what you are currently constructing) but if not found there it could be built on-the-fly.

*I mention the UCUM symbol since for the main tree of derived units, the UCUM symbol is both unique and its structure actually defines the production of the uom.

@stuchalk what do you think?

API to get unit by {label}

Something that might be done quite quickly would be to enable unit-definitions to be requested using the annotation values. E.g.

http://qudt.org/vocab/unit/?ucumCaseInsensitiveCode=[FT_I].HR-1
to get
http://qudt.org/vocab/unit/FT-PER-HR

General case would be

http://qudt.org/vocab/unit/?{property}={value}

(Copied from https://github.com/qudtdev/qudt-r2/issues/67)

constant:Value_AtomicUnitOf2ndHyperpolarizability needs completing

There is one constant remaining (constant:Value_AtomicUnitOf2ndHyperpolarizability) that has a link to an undefined unit,
unit:QuarticCoulombMeterPerCubicEnergy.
At some point we need somebody to double check it, and also tie in the appropriate quantity kind and dimension vector.
I believe the correct dimension vector is qkdv:A0E4L-5I0M-3H0T10D0, but this is only
inferred from the name of the unit.

Originally posted by @steveraysteveray in #12 (comment)

Need a domain expert to populate mortality and morbidity units

We have created a few mortality and morbidity units such as cases per thousand individuals per year, and deaths per thousand individuals per year, but we need someone with domain knowledge of the most important units and quantity kinds used by the epidemiology community. If you are, or know someone who could help, please let us know.

Use the PROF vocabulary to to supply profiles

Instead of using keeping the various disciplines, Finance, Science, etc. just in separate file, they could be declared as profiles of QUDT using the W3C's Profiles Vocabulary.

Anything that conforms to a Profile, MUST conform to the QUDT base specification while a profile may also implement additional constraints on the base specification.

This would look something like this:

(the profile declaration file for Finance)

@prefix prof: <http://www.w3.org/ns/dx/prof/> .  # the Profiles Vocabulary
@prefix role: <http://www.w3.org/ns/dx/prof/role/> .  # the vocabulary of profile part roles

<http://qudt.org/2.0/schema/qudt/finance>
  a owl:Ontology ;  # this is still an ontology
  a prof:Profile ;     # additionally it's a profile, of the main QUDT
  prof:isProfileOf <http://qudt.org/2.1/schema/qudt> ;  # QUDT identified by namespace URI
  rdfs:label "QUDT Schema - Finance" ;
  owl:imports <http://qudt.org/2.1/schema/qudt> ;  # owl:imports owl:subPropertyOf prof:isProfileOf 
  prof:hasResource [
    a prof:ResourceDescriptor ;  # this is one of the elements of the profile
    prof:hasRole role:vocabulary ;  # the role of this ResourceDescriptor
    prof:hasArtifact <SOME-FILE-IN-THE-QUDT-REPO> ;  # the actual vocab file
  ] ;
  prof:hasResource [
    a prof:ResourceDescriptor ;  
    # other ResourceDescriptors, if relevant
  ] ;
...
.

In this example, QUDT All contains all of QUDT and this profile for Finance imports it and then extends on it with any new elements that it declares within the vocabulary resource indicated. If the Finance sector has additional validation rules, guidance documents or examples, additional ResourceDescriptors can be described.

The purpose of doing this the PROF way is that now all of generic QUDT is in one place and Finance just declares the extra, finance-only, bits.

FRED.stlouisfed.org (coding Financial-Economic Units)

The St Louis Federal Reserve sponsors an extensive set of data feeds (792,000) that are (1) poorly indexed (they say they don't have a list of all their feeds) and poorly unitized (seem to be "cut-and-pasted" from the prose title, rather than systematically logged.

I'm proposing for myself (and would like help with)

  1. To map all 765,000 data feeds (most US Federal sources, like Census, BLS, and financial regulators)
  2. To map the long-prose and short-prose units used in all the feeds
  3. To code them so that "everyone" in the QUDT community would have a systematic way of understanding when FRED says "mil. of $" as the units that it is expressed in standard QUDT form in some kind of cross-walk

I have begun at https://fred.stlouisfed.org/tags/series

with the 167 currently-active feeds (there are hundreds of others that are infrequent or ancient (cotton mill production in New England in the early 1800s, for example)

https://fred.stlouisfed.org/release?rid=9

https://fred.stlouisfed.org/release?rid=10
https://fred.stlouisfed.org/release?rid=11
https://fred.stlouisfed.org/release?rid=13
https://fred.stlouisfed.org/release?rid=14
https://fred.stlouisfed.org/release?rid=15
https://fred.stlouisfed.org/release?rid=17
https://fred.stlouisfed.org/release?rid=18
https://fred.stlouisfed.org/release?rid=19
https://fred.stlouisfed.org/release?rid=20
https://fred.stlouisfed.org/release?rid=21
https://fred.stlouisfed.org/release?rid=22
https://fred.stlouisfed.org/release?rid=25
https://fred.stlouisfed.org/release?rid=27
https://fred.stlouisfed.org/release?rid=46
https://fred.stlouisfed.org/release?rid=47
https://fred.stlouisfed.org/release?rid=49
https://fred.stlouisfed.org/release?rid=50
https://fred.stlouisfed.org/release?rid=51
https://fred.stlouisfed.org/release?rid=52
https://fred.stlouisfed.org/release?rid=53
https://fred.stlouisfed.org/release?rid=54
https://fred.stlouisfed.org/release?rid=61
https://fred.stlouisfed.org/release?rid=63
https://fred.stlouisfed.org/release?rid=70
https://fred.stlouisfed.org/release?rid=71
https://fred.stlouisfed.org/release?rid=72
https://fred.stlouisfed.org/release?rid=86
https://fred.stlouisfed.org/release?rid=91
https://fred.stlouisfed.org/release?rid=92
https://fred.stlouisfed.org/release?rid=93
https://fred.stlouisfed.org/release?rid=95
https://fred.stlouisfed.org/release?rid=97
https://fred.stlouisfed.org/release?rid=100
https://fred.stlouisfed.org/release?rid=101
https://fred.stlouisfed.org/release?rid=109
https://fred.stlouisfed.org/release?rid=110
https://fred.stlouisfed.org/release?rid=112
https://fred.stlouisfed.org/release?rid=113
https://fred.stlouisfed.org/release?rid=116
https://fred.stlouisfed.org/release?rid=122
https://fred.stlouisfed.org/release?rid=140
https://fred.stlouisfed.org/release?rid=148
https://fred.stlouisfed.org/release?rid=151
https://fred.stlouisfed.org/release?rid=169
https://fred.stlouisfed.org/release?rid=171
https://fred.stlouisfed.org/release?rid=175
https://fred.stlouisfed.org/release?rid=179
https://fred.stlouisfed.org/release?rid=180
https://fred.stlouisfed.org/release?rid=183
https://fred.stlouisfed.org/release?rid=185
https://fred.stlouisfed.org/release?rid=187
https://fred.stlouisfed.org/release?rid=188
https://fred.stlouisfed.org/release?rid=189
https://fred.stlouisfed.org/release?rid=190
https://fred.stlouisfed.org/release?rid=192
https://fred.stlouisfed.org/release?rid=193
https://fred.stlouisfed.org/release?rid=194
https://fred.stlouisfed.org/release?rid=196
https://fred.stlouisfed.org/release?rid=197
https://fred.stlouisfed.org/release?rid=198
https://fred.stlouisfed.org/release?rid=199
https://fred.stlouisfed.org/release?rid=200
https://fred.stlouisfed.org/release?rid=206
https://fred.stlouisfed.org/release?rid=208
https://fred.stlouisfed.org/release?rid=209
https://fred.stlouisfed.org/release?rid=212
https://fred.stlouisfed.org/release?rid=219
https://fred.stlouisfed.org/release?rid=221
https://fred.stlouisfed.org/release?rid=228
https://fred.stlouisfed.org/release?rid=229
https://fred.stlouisfed.org/release?rid=238
https://fred.stlouisfed.org/release?rid=239
https://fred.stlouisfed.org/release?rid=242
https://fred.stlouisfed.org/release?rid=245
https://fred.stlouisfed.org/release?rid=251
https://fred.stlouisfed.org/release?rid=253
https://fred.stlouisfed.org/release?rid=256
https://fred.stlouisfed.org/release?rid=261
https://fred.stlouisfed.org/release?rid=263
https://fred.stlouisfed.org/release?rid=266
https://fred.stlouisfed.org/release?rid=267
https://fred.stlouisfed.org/release?rid=268
https://fred.stlouisfed.org/release?rid=269
https://fred.stlouisfed.org/release?rid=271
https://fred.stlouisfed.org/release?rid=274
https://fred.stlouisfed.org/release?rid=279
https://fred.stlouisfed.org/release?rid=281
https://fred.stlouisfed.org/release?rid=282
https://fred.stlouisfed.org/release?rid=283
https://fred.stlouisfed.org/release?rid=287
https://fred.stlouisfed.org/release?rid=288
https://fred.stlouisfed.org/release?rid=289
https://fred.stlouisfed.org/release?rid=290
https://fred.stlouisfed.org/release?rid=291
https://fred.stlouisfed.org/release?rid=296
https://fred.stlouisfed.org/release?rid=301
https://fred.stlouisfed.org/release?rid=304
https://fred.stlouisfed.org/release?rid=305
https://fred.stlouisfed.org/release?rid=308
https://fred.stlouisfed.org/release?rid=313
https://fred.stlouisfed.org/release?rid=315
https://fred.stlouisfed.org/release?rid=317
https://fred.stlouisfed.org/release?rid=319
https://fred.stlouisfed.org/release?rid=320
https://fred.stlouisfed.org/release?rid=321
https://fred.stlouisfed.org/release?rid=322
https://fred.stlouisfed.org/release?rid=323
https://fred.stlouisfed.org/release?rid=325
https://fred.stlouisfed.org/release?rid=326
https://fred.stlouisfed.org/release?rid=327
https://fred.stlouisfed.org/release?rid=328
https://fred.stlouisfed.org/release?rid=331
https://fred.stlouisfed.org/release?rid=332
https://fred.stlouisfed.org/release?rid=333
https://fred.stlouisfed.org/release?rid=334
https://fred.stlouisfed.org/release?rid=336
https://fred.stlouisfed.org/release?rid=339
https://fred.stlouisfed.org/release?rid=341
https://fred.stlouisfed.org/release?rid=342
https://fred.stlouisfed.org/release?rid=343
https://fred.stlouisfed.org/release?rid=345
https://fred.stlouisfed.org/release?rid=351
https://fred.stlouisfed.org/release?rid=352
https://fred.stlouisfed.org/release?rid=353
https://fred.stlouisfed.org/release?rid=355
https://fred.stlouisfed.org/release?rid=357
https://fred.stlouisfed.org/release?rid=359
https://fred.stlouisfed.org/release?rid=362
https://fred.stlouisfed.org/release?rid=363
https://fred.stlouisfed.org/release?rid=364
https://fred.stlouisfed.org/release?rid=372
https://fred.stlouisfed.org/release?rid=373
https://fred.stlouisfed.org/release?rid=374
https://fred.stlouisfed.org/release?rid=375
https://fred.stlouisfed.org/release?rid=376
https://fred.stlouisfed.org/release?rid=377
https://fred.stlouisfed.org/release?rid=378
https://fred.stlouisfed.org/release?rid=379
https://fred.stlouisfed.org/release?rid=383
https://fred.stlouisfed.org/release?rid=386
https://fred.stlouisfed.org/release?rid=391
https://fred.stlouisfed.org/release?rid=397
https://fred.stlouisfed.org/release?rid=400
https://fred.stlouisfed.org/release?rid=403
https://fred.stlouisfed.org/release?rid=427
https://fred.stlouisfed.org/release?rid=434
https://fred.stlouisfed.org/release?rid=435
https://fred.stlouisfed.org/release?rid=436
https://fred.stlouisfed.org/release?rid=439
https://fred.stlouisfed.org/release?rid=440
https://fred.stlouisfed.org/release?rid=441
https://fred.stlouisfed.org/release?rid=442
https://fred.stlouisfed.org/release?rid=444
https://fred.stlouisfed.org/release?rid=445
https://fred.stlouisfed.org/release?rid=446
https://fred.stlouisfed.org/release?rid=449
https://fred.stlouisfed.org/release?rid=450
https://fred.stlouisfed.org/release?rid=454
https://fred.stlouisfed.org/release?rid=456
https://fred.stlouisfed.org/release?rid=459
https://fred.stlouisfed.org/release?rid=462
https://fred.stlouisfed.org/release?rid=463
https://fred.stlouisfed.org/release?rid=465
https://fred.stlouisfed.org/release?rid=468
https://fred.stlouisfed.org/release?rid=469
https://fred.stlouisfed.org/release?rid=470

I'm suspicious of quantitykind:LengthEnergy

The three units that refer to it are:
unit:MegaEV
unit:MegaEV-FemtoM
unit:MegaV-FM
...which are all dimensionally different if you believe the qnames.
Further, I can't find mention of the concept of "Length Energy" in SP-811 or the web in general.
If anybody knows more about this, please comment.

Strange string of characters in descriptions of units

In the VOCAB_QUDT-UNITS-ALL-v2.1.ttl file there are 11 plainTextDescriptions containing the string '0,000 001' and 37 plainTextDescriptions containing the string '0,001' (actually there are others). Looks like all the issues are related to the magnitude of a particular dimensional unit. Anyway, needs a check...

TON_M and TON_Metric_* units should be denoted TONNE and TONNE_*

"tonne" is the generally accepted name for 1000kg. It is used in SI documentation, in all non-english-speaking countries, and is recognised in most english-speaking countries. It acknowledges the fact that 'tonne' is not some deviant form of 'ton' but is defined separately in its own right. Use of TONNE would avoid all ambiguities around M or Metric suffixes.

'Metric ton' is an alt-label at best, used only in USA and UK.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.