Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Swapping out brick quantitykinds for QUDT QKs when Brick adds nothing #570

Closed
wants to merge 1 commit into from

Conversation

gtfierro
Copy link
Member

@gtfierro gtfierro commented Sep 27, 2023

In some cases, Brick augments QUDT's quantity kinds (e.g. by adding new units, refining the existing units, or altering the definition to be more specific to the building/HVAC context).

Temperature is a good example of this. `Temperature` in Brick is `ThermodynamicTemperature` in QUDT, but Brick also adds some special subtypes
    "Temperature": {
        BRICK.hasQUDTReference: QUDTQK["Temperature"],
        SKOS.narrower: {
            "Differential_Temperature": {
                BRICK.hasQUDTReference: QUDTQK["Temperature"],
                QUDT.isDeltaQuantity: Literal(True),
            },
            "Operative_Temperature": {
                QUDT.applicableUnit: [UNIT["DEG_F"], UNIT["DEG_C"], UNIT["K"]],
                SKOS.definition: Literal(
                    "The uniform temperature of an imaginary black enclosure in which an occupant would exchange the same amount of heat by radiation plus convection as in the actual nonuniform environment (https://en.wikipedia.org/wiki/Operative_temperature)"
                ),
                QUDT.hasDimensionVector: QUDTDV["A0E0L0I0M0H1T0D0"],
                RDFS.isDefinedBy: URIRef(str(BRICK).strip("#")),
                RDFS.label: Literal("Operative_Temperature"),
                SKOS.broader: QUDTQK.Temperature,
            },
            "Radiant_Temperature": {
                QUDT.applicableUnit: [UNIT["DEG_F"], UNIT["DEG_C"], UNIT["K"]],
                SKOS.definition: Literal(
                    "the uniform temperature of an imaginary enclosure in which the radiant heat transfer from the human body is equal to the radiant heat transfer in the actual non-uniform enclosure. (https://en.wikipedia.org/wiki/Mean_radiant_temperature)"
                ),
                QUDT.hasDimensionVector: QUDTDV["A0E0L0I0M0H1T0D0"],
                RDFS.isDefinedBy: URIRef(str(BRICK).strip("#")),
                RDFS.label: Literal("Radiant_Temperature"),
                SKOS.broader: QUDTQK.Temperature,
            },
            "Dry_Bulb_Temperature": {
                QUDT.applicableUnit: [UNIT["DEG_F"], UNIT["DEG_C"], UNIT["K"]],
                SKOS.definition: Literal(
                    "The temperature of air measured by a thermometer freely exposed to the air, but shielded from radiation and moisture. (https://en.wikipedia.org/wiki/Dry-bulb_temperature)"
                ),
                QUDT.hasDimensionVector: QUDTDV["A0E0L0I0M0H1T0D0"],
                RDFS.isDefinedBy: URIRef(str(BRICK).strip("#")),
                RDFS.label: Literal("Dry_Bulb_Temperature"),
                SKOS.broader: QUDTQK.Temperature,
                SKOS.narrower: {
                    "Differential_Dry_Bulb_Temperature": {
                        QUDT.isDeltaQuantity: Literal(True),
                    },
                },
            },
            "Wet_Bulb_Temperature": {
                QUDT.applicableUnit: [UNIT["DEG_F"], UNIT["DEG_C"], UNIT["K"]],
                SKOS.definition: Literal(
                    "The temperature read by a thermometer covered in water-soaked cloth (wet-bulb thermometer) over which air is passed. A wet-bulb thermometer indicates a temperature close to the true (thermodynamic) wet-bulb temperature. The wet-bulb temperature is the lowest temperature that can be reached under current ambient conditions by the evaporation of water only.  DBT is the temperature that is usually thought of as air temperature, and it is the true thermodynamic temperature. It indicates the amount of heat in the air and is directly proportional to the mean kinetic energy of the air molecule. (https://en.wikipedia.org/wiki/Wet-bulb_temperature)"
                ),
                QUDT.hasDimensionVector: QUDTDV["A0E0L0I0M0H1T0D0"],
                RDFS.isDefinedBy: URIRef(str(BRICK).strip("#")),
                RDFS.label: Literal("Wet_Bulb_Temperature"),
                SKOS.broader: QUDTQK.Temperature,
            },
        },

In others, Brick simply copies all of the properties from the existing QUDT quantity kind. This PR removes redundant QKs from Brick and expands the hasQuantity relationship to accept QUDT QKs in addition to Brick's own.

Addresses an initial thought in #450

@steveraysteveray
Copy link
Collaborator

Actually, quantitykind:ThermodynamicTemperature in QUDT is the quantity kind of temperatures that have a zero offset, i.e. zero is the same as Absolute Zero (like unit:K and unit:DEG_R). So unit:DEG_C and unit:DEG_F do not have qudt:hasQuantityKind quantitykind:ThermodynamicTemperature. The skos:broader concept in QUDT is quantitykind:Temperature which is compatible with all the temperature scales.

@gtfierro
Copy link
Member Author

Thanks for the clarification!

@gtfierro gtfierro added this to the 1.4.0 Pre-Release milestone Dec 14, 2023
@gtfierro gtfierro closed this Jan 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants