-
Notifications
You must be signed in to change notification settings - Fork 23
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
restructure Matter #58
Conversation
solve the matter problems by creating a "phase_description" bfo:quality and a "PotionOfMatter" bfo:object_aggregate where its subclasses are defined through phase_description
change StateOfMatter and subclasses
I dont know how common the term "defined class" is. I mean a class where it's members dont have to be explicitely declared but just have to fulfill some requirement like in this case have a specific normal state of matter. |
Solves part of #45 |
There are three different answers to the role of "Defined Classes": a logical, a philosophical, and a ontology engineering answer. (All of which are interconnected.) It's a bit too complicated to put all of this into a ticket. If there is interest, I can meet with you or join a OEO developers meeting and explain it. |
it partly solves the issue. Is there a keyword for that? |
No, I would just say it explicitly, like "Solves part of #45" |
I guess, 'phase_description' means something equivalent to 'state_of_matter', but there is a definition missing: https://github.com/OpenEnergyPlatform/ontology/wiki/Best-Practice-Principles "PortionOfMatter" has the wrong definition (state of matter).
Further, I would like to discuss whether we need the subclass of flourinated gases at all? |
change relation to has_state_of_matter instead of has_normal_state_of_matter
rename phase_description to state_of_matter for better clarity and update the definitions to fit the entities
all material entities (apart from flourinated gas) are classified right now as subclasses of EnergyCarrier. So I'll implement the changes of #52 (make EnergyCarrier a disposition) here to preserve the monohierarchy and not leave the matter entities superclass-less between those two changes. Which leaves the question of the new superclass of those matter entities. I'm reluctant to make for example water a subclass of PortionOfMatter as a portion of water is a PortionOfMatter, not water itself. |
or is water a portion of matter? In the sense of "all the water in the universe" as a subclass of "all the matter in the universe"? I'll make them a direct subclass now of portion of matter to implement #52 as I wrote before |
make EnergyCarrier and its subclasses a bfo:disposition, except for Air, Water and Fuel who classify as PortionOfMatter
Thank you.
I am not sure about that either. @fabianneuhaus Can you please help with the portion_of_matter issue? |
add "has_disposition some EnergyCarrier" to Air, Fuel and Water because they were former subclasses of it
change range of has_physical_input to 'has_disposition some EnergyCarrier' because the input is material and EnergyCarrier now a disposition.
making EnergyCarrier a disposition to get Air, Fuel and Water to be subclasses of PortionOfMatter raised the question which other subclasses of EnergyCarrier are also not proper subclasses:
|
So, the remaining subclasses of EnergyCarrier as seen in my last comment and their subclasses are either energy or processes to produce energy. I would separate them into those categories. Energy - 'bfo: generically dependent continuant' as it depends on a carrier but that carrier can change (but does that energy conserve its identity when it's carrier changes?)
EnergyProduction - 'bfo:process'
|
add missing definitions to subclasses of EnergyCarrier and PortionOfMatter
@akleinau - As mentioned in the |
@Bachibouzouk I got explicitly asked by @MGlauer and @gnn to let my changes undergo a review process before I merge so I‘m in conflict right now. |
@akleinau - No you're not in conflict :) : I am not giving you the order to merge without asking for a review, I am suggesting we do not let a PR open for too long. Therefore suggesting you should soon ask for someone to review your PR so we can merge it and you can keep working on the issue in a subsequent PR :) My point is that we should keep each PR as small work packages (all the changes you commit should nevertheless not be dependent of changes to come). For example, it seems to me that the commit 693b450 could perfectly be merged into To recap : @MGlauer and @gnn are right that changes need review before merging and one should merge as often as possible (because all developers will modify |
Then I‘d appreciate some suggestions/ volunteers who can review fast. |
@Bachibouzouk @akleinau
I appreciate that your goal to avoid merge conflicts by committing often, but this sounds like a very dangerous strategy, because it would involve merging untested content into dev. In the ontology world there is no such thing as "local variable" or "encapsulation". Thus, any change you make to an ontology may interact with anything else (via logical inferences). For this reason, if you make significant changes to the structure of an ontology, it is usually not possible to break that down into smaller steps. In my experience you need to finish the task, ensure consistency, and check whether the ontology is able to prove its intended consequences (aka competency questions), and then you make the pull request. |
Concerning Water. The easy way out -- that I hope you will be able to take -- is to fudge the treatment of mass terms in your ontology. Hence, there is no term for water or wine or wisdom. Instead you only have terms for portions of stuff (a portion of wine, water or wisdom). That does not necessarily mean that the name of the class should be "Portion of Water" but rather that the definition of "Water" should make clear that the instances of this class are portions of stuff. Thus, the ontology does not make a distinction of Water and Portion of Water, but rather treats the label "Water" as the name of the second. Most of the time that strategy works. If not, we would have to come up with something better. You probably wonder why I suggest to avoid mass terms at almost all cost: its because they are fiendishly complicated. Its just unclear what the term "water" denotes. In case you are interested: here is a good overview article: https://plato.stanford.edu/entries/logic-massexpress/ |
I agree with you @akleinau. |
Thank you, I think that helps. But are 'PortionOfMatter' and its subclasses bfo:objects or bfo:objectAggregates? Besides the definitions of the PortionOfMatter-subclasses, we should take a closer look on all of the definitions. Many of them are imprecise at the moment! But maybe in a second step after the restructuring, to get the current PRs into the dev soon. |
separate energyCarrier, energy and energyProduction
I implemented the distinction between energy and energyproduction now. PortionOfMatter was classified as bfo:objectAggregate because of #45 (comment) |
Good question. Short answer: it depends, but probably Portion of Matter is a subclass of Object Aggregate. Let me explain you my reasoning to illustrate how I approach these questions: Objects are causally unified and maximally self-connected. A portion of water is not causally unified and not maximally self-connected (e.g., the left half of the portion of water that is currently in my glas is itself a portion of water.) Hence, a portion of water is not an object. Therefore, it follows logically that Portion of Matter is not a subclass of Object. If you have an entity that consists of a collection of objects and there is nothing interesting to say about the that entity beyond its parts, then it is an object aggregate. E.g., a human consists of a molecules, but we are more than just a collection of molecules. E.g., the spatial arrangement of the molecules is quite important; as are the functional interactions between them. Thus, humans are not object aggregates. In contrast, the portion of water in my glass is just a collection of molecules. There is nothing interesting to know about it beyond that. Hence it is an object aggregate. I believe that Portion of Matter is a subclass of Object Aggregate. Because, at least in the examples that come to my mind, the "stuff" becomes an object if you look at it on a lower level of granularity. E.g., water is just uncountable "stuff" on a macroscopic scale, but on a microscopic scale it consists of water molecules, which are (a) countable (b) are causally unified and (c) maximally connected. Hence water molecules are objects. The question is whether there are examples of Object Aggregates that are not Portion of Matter. Intuitively, I would say "no" because a collection of people at a bus stop is an object aggregate, but I would not call this collection "a portion of matter". Thus, I conclude that Portion of Matter is a proper subclass of Object Aggregate. However, and that is important: what I formulated above are just my intuitions about the English phrase "Portion of Matter". What oeo:PortionOfMatter will mean depends on the definition in the OEO. And sometimes it is not easy to develop definitions that preserve the intended meanings. |
closes #52 |
closes #45 |
@@ -31,6 +31,7 @@ Here is a template for new release sections | |||
- pollutant and subclasses (#51) | |||
- structure of the ontology (#47) | |||
- change peat to solid and not gas (#39) | |||
- StateOfMatter and subclasses (#45) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@akleinau - I did not indicate it clearly, but the convention I took was to indicate the PR number and not the issue number. In the changelog we want to track what was changed and where and not directly why (why is still accessible via the issue number which everyone should indicate in their PR :))
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated that in #70, so no need to change it for now , just a heads up for the future
solve the matter problems by creating a "phase_description" bfo:quality and a "PortionOfMatter" bfo:object_aggregate where its subclasses are defined through phase_description.
The individuals gaseous, liquid, plasmatic and solid are instances of phase_description now.
I also added "has_part some Person" as superclass of organisation, this is unrelated but such a small change that I hope it doesnt hurt the readability of this pull request.
Sidenote: These are also the last remaining changes from #50.