-
Notifications
You must be signed in to change notification settings - Fork 18
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
Add class gist:SpecEntry #527
Comments
Related issue: in the case of concrete objects, as opposed to specifications, we suggest, I guess, that different predicates would be used to indicate the aspect being measured: |
I'd love to have a sub-gist for specifications to include something like this. We have modeled this sort of thing for many clients. |
@rjyounes This should be discussed in the context of #800. I think it is a good idea, especially now that we are creating the operators ontology. The above definition seems overly complicated. Below is more like what we have used for past clients.
|
Closing - this will be handled by the new units and measures model. |
There was not completed. There was no decision or even a discussion about whether/how to have SpecEntry in the context of the new units model. Once that is settled, we should come back and consider how it would work. |
Closing due to implementation of new units and magnitudes model. |
Reopening due to the question of how to handle a range of values (greater than, greater than or equal to, etc.) accommodated in spec entries. It remains to be seen how the new units and magnitudes model will model this, as it was built on the pre-gist13 Magnitude consisting of unit of measure + numeric value, without an aspect built in. One approach would be to define several subproperties of @philblackwood any thoughts on this? |
Given that gist 13 magnitudes include aspect, a class for SpecEntry = ((uom + numericValue) + aspect) doesn't seem necessary. However, SpecEntries have also been used to model aspect + category, as in color: green. Should characteristics whose values can be expressed either numerically or categorially be one aspect or two? Rebecca: Should be one aspect. There are mappings between the two - e.g., European shoe size 40 (a numeric value measured in cm) = US women's shoe size 9 (arguably a category) which can be mapped to, say, medium. It depends on use case. Notably, manufacturers typically need precise numeric values where the customer value is categorial. Amplitude might be measured in decibels while others may only need high, medium, low - it's still the same aspect. Phil agrees, Michael thinks they are distinct. Allowing for either magnitude or categorial values with an aspect would complicate queries, though. We ascertained that Aspect and hasAspect are not definitionally limited to scalar values, though some annotation changes should be made, depending on the decision we reach above:
Do we need a class for Aspect + category (color: green)? What would we call it? |
Not just a value, but a set of acceptable values (which could be just one value). |
We don't want to be forced to align them, but I am strongly against having different ways to do the same thing, just because we did not give enough thought to it. |
I don't see that |
That is too strong, by analogy, engine bolts are created and intended to be part of actual engines. But they might not be so for a while, if ever. I can create a spec entry saying that width is between 1 and 2 inches intending it to be used for furniture. In practice it will almost certainly be part of a specification, but not in principle. |
They are very close in meaning. Each has:
Ignoring ontology modularity issues regarding, gist and the operators and versioning ontologies one could define version range spec to be a subclass of spec entry with three additional restrictions.
In fact, defining version range spec as an explicit subclass would be optional. I'll work out an example to clarify this. |
Having taken a closer look at the versioning ontology, which imports the operators ontology, I have a sense of what it would take to explicitly make VersionRangeSpec a subclass of SpecEntry. I conclude that there is little if any benefit in doing so, given the design goal to keep the versioning and operators ontologies independent from gist. As it is, to keep that independence, we had to recreate separate versions of a few classes and properties that were needed. There is no need for SpecEntry in the versioning ontology, so it's a bit moot to consider creating it just to subclass off it. I thought of having a skos note about it, but that hardly seems worthwhile. |
We deliberately wanted to keep the operators/versioning ontologies independent of gist. I therefore don't see that the subclassing is an option. gist should not inherit a concept as fundamental as |
Agreed. However, this does bring into focus how we implement SpecEntry in gist. Specifically, given that the operators ontology properties were designed to be used with SpecEntry in the first place with client ontologies, it would be nice to just use them w/o reinventing the wheel. Two approaches are:
The first is straight-forward - I had a close look and did not see any issues. |
To me the term "entry" implies that it is actually entered in (or part of) a specification. (See, for example, 4b--"something entered.") For this reason I'm in favor of the restriction. |
@rjyounes -- At one client we've seen a use case for composite aspects. If drawer size is represented as '20in x 10in x 30 in' in the data, it is helpful to be able to model which of those is the height, which is the width, and which the depth. Should the definition of |
That is very interesting, but seems highly specialized - not the sort of thing that we normally include in gist. |
An airplane engine is so called because it is intended to be part of an airplane, just like |
No, that got very messy and we ended up not using it anyway. |
I think maybe the problem is with the word choice - I.e., can we call it something other than |
In long form, a spec entry is
So |
I prefer |
Goal: Specify a set of acceptable values for an aspect. Requirements:
TODOs for next meeting:
|
Getting to be long thread, but it's not clear SpecEntry is necessary. Just relate the specification to an individual magnitude or range of magnitudes. It looks like it would be helpful to add a class for Range. |
|
I agree that since magnitudes include aspect,
Or:
In the first case we duplicate the aspect on both the range and the magnitudes, as we talked about with my proposed |
This is very interesting.
|
@uscholdm if we want to expand the definition of aspect from "measurable characteristics" to "characteristics" then I think we want to use those aspects instead of creating subclasses of category so that there is a single way to represent them. e.g. pick one of these styles: using categories: ex:_ExteriorColor_red (requires updating the ontology to include ExteriorColor) Actually, either style can be used to define specifications, so we can treat the question separately if we agree that we should pick one of these and not use a combination of aspects and subclasses of category. |
Comment about how we use specifications ... Consider the simple case of a specification with two aspects, with a single fixed acceptable value for each one. rectangle specification: length 3 inches, width 8 inches. In this simple case we define the specification exactly the same way we describe the actual. Variation: specification says the width may be either 8 inches or 10 inches. We should cover this case as well, since many specifications come with a choice of values. The concept of SpecEntry really isn't needed in either case. See next comment for how this applies to "categorical values". |
Specifying things with categorical values using our convention of subclasses of categories. Case 1: within each category a thing and its specification are single-valued. Thing 1 conforms to its specification. In general, check to see if there is an exact match between the actual values and the values in the specification. Variation: choice of colors. First introduce the collection of acceptable colors. Now see if the value for thing 1 is one of the acceptable colors: Thing 1 conforms to its specification because its value is one of the acceptable colors in the specification. To specify that a thing can have multiple colors, either create a category for each color combination (explicit) or create a new property (not as useful because it might require one property for a pair of colors, one for any 3 colors, one for any 4 colors, etc.) Note that the examples still work if _ExteriorColor is replaced by _Category_exterior_color (1-to-1 correspondence). |
Interesting, so it seems you are proposing that it is not necessary to have subclasses of Category, one could use aspects instead. |
On property naming... Thing 1 may well be a thing with a red exterior color, and thus saying that it |
If we are going to say that a specification |
A SpecEntry is a Specification that has a magnitude and an aspect; for example, the specification of a particular furnace has an entry specifying weight (aspect) of 107 lbs (magnitude). This seems to be useful in a number of domains. Proposed definition:
Details negotiable. E.g, is it always part of a larger Specification, or could it occur on its own?
Question regarding the first restriction: are two magnitudes expressed in different units of measure and numeric values but which equal the same amount the same thing or two different things? Assuming the latter, I've used a
someValuesFrom
restriction onhasMagnitude
. Assuming the latter we could specify cardinality of 1.Notice also that
aspectOf
doesn't specify domainAspect
; thus theallValuesFrom
restriction on the inverse ofaspectOf
.The text was updated successfully, but these errors were encountered: