Class Model

old topics

MMT SIG approved?

Poll ended at Tue May 29, 2012 7:52 am

Yes
1
20%
Yes with comments
2
40%
No
0
No votes
No with comments
1
20%
Blank vote
1
20%
 
Total votes: 5

Message
Author
Admin
Site Admin
Posts: 32
Joined: Wed Jan 18, 2012 8:50 pm

Class Model

#1 Post by Admin »

...by Hans Teijgeler

Dear MMT member,

I seek your comments/approval for the following:

In order to find a way to describe the "life cycle" of a (Part 2) Class we have to model that Class in a particular way. My rationale for that is:
  1. Any change to the information related to a Class may constitute a change in the "criteria for membership", so in fact a change to another Class.
  2. Classes are eternal and unlimited in number, so the best we can do is put on record when a particular template instance about a Class was created.
  3. When we have a design class, e.g. for P-101, we may see more than one hundred templates related to that Class, and all were made at different date-times, each with their own UUID. But what we mean is still that P-101 class.
  4. In case of changes there will be templates that are contradicting each other, but cannot be deleted (because classes are eternal).
So how do we solve that?

My proposal is:
  1. If we declare these many different Classes to be subclasses of one "Ur"-Class (see http://en.wiktionary.org/wiki/ur-) with an absolute minimum of criteria for membership, we can use that Ur-Class as a collector of all information that has been added, replaced and deleted since we started the record of that Ur-Class.
  2. Each template has an annotation property that is the same as the record_created attribute of Thing.
  3. To the signature of each template about a Class we add its Ur-Class, conceptually similar to the addition of the hasTemporalWhole to templates for temporal parts. For example:
DefiningAClassVariant.png
DefiningAClassVariant.png (27.14 KiB) Viewed 17069 times
  • At times, dictated by the business needs, we can "take stock" and determine what information (= which templates) is considered to be valid at that point in time.
We can use the following templates for that:
ClassifiedDefinitionOfClass.jpg
ClassifiedDefinitionOfClass.jpg (25.21 KiB) Viewed 17069 times
  • The composition of an OIM (Object Information Model) is a matter of choice, using SPARQL, in that one could be interested in all information or in a selection, such as only the "process data".
  • But in any case conflicting information shall be avoided, as will be defined in Part 10. For example two different values for the design pressure.
Please let me know what you think of this.

OnnoPaap
Posts: 189
Joined: Sun Jan 22, 2012 9:14 pm

Re: Class Model

#2 Post by OnnoPaap »

I think it's a elegant solution for the problem of updating classes.

Question: how do we know the class is updated (so a new class exists), by which time, and that the older class is deprecated?

HansTeijgeler
Posts: 283
Joined: Sun Jan 22, 2012 10:02 pm

Re: Class Model

#3 Post by HansTeijgeler »

Hi Onno,

Basically it is the same problem that occurs with finding a previous temporal part of a possible individual that needs to be "ended".

Let me give an example:
1) On Nov. 14th 2011 the design pressure of vessel V-101 (a Class in our plant design) was recorded as 100 barg
2) On March 20th 2012 that value was changed to 110 barg.

Image

Both values cannot be applicable to the same Class, but here they apply to two different subclasses of the Ur-Class.

Since we want to store the life cycle also of our design, we keep both values "alive", with the date-time of creating the record.

If you want to know which design pressure value is/was valid at a given date-time, look for the subclass with a record-creation date-time that is the latest earlier one.

In fact you look, in this case, for templates of the type IndirectPropertyWithValueOfTemporalPart, in which the Ur-Class V-101 is in role 1 and in which the RDL ID for DesignPressure is in role 2, and compare their record creation dates of those templates.

We can do so with all templates (be it with different selection criteria) and define what the OIM of the Ur-Class V-101 is at a given date-time (but that's another story) :)

Pavel Selchukov
Posts: 12
Joined: Tue May 15, 2012 7:06 am

Re: Class Model

#4 Post by Pavel Selchukov »

Hi!

Hans, could you explain me:

1. Do you want to use skolemized "Class of V-101 on Nov. 14 2011"?
2. How this model works with relationships with other objects (which are classes too)?

HansTeijgeler
Posts: 283
Joined: Sun Jan 22, 2012 10:02 pm

Re: Class Model

#5 Post by HansTeijgeler »

Hi Pavel,

Re 1) - Actually it would be something like a "Specialization of Class of V-101 on Nov. 14 2011", but more meaningful for humans would be "Class of V-101 has a design pressure of 100 barg starting Nov. 14 2011".
That specialization is made for one template only. The Ur-Class has, so to speak, a swarm of templates in which its aspects are defined. At a certain date we can find out what the status is by collecting those templates that are still valid at that date (after a revision).
Similarly a WholeLifeIndividual will have a swarm of temporal parts in which its aspects are described. There we subtract, at a certain date, all the templates where an "ended" temporal part plays a role.

Re 2) - Where, in comparison, a connection between two instances of PossibleIndividual is modeled as a connection between temporal parts of those individuals, we do the same with instances of Class, be it that we create subclasses rather than temporal parts.

Regards,
Hans

PS My response Re 1) might miss the point, simply because skolemization is outside my league.

vvagr
Posts: 282
Joined: Mon Feb 27, 2012 11:01 pm
Location: Moscow, Russia
Contact:

Re: Class Model

#6 Post by vvagr »

Hi!

1. Approval of this modeling approach means that we agree that a template statement can occupy a role in a template statement. I'm supporting this idea, but it has a strong opposition also, and we've to bring this discussion to the attention of a broader circle, or, probable, start a new topic for this particular general issue and invite participation of experts beyond our SIG.

2. Practical implementation of this approach, if approved, will require additions to reference data and templates. Specifically we've to decide on the "Template Statement" class. So far we've p7tm:TemplateStatement in the template metamodel reference data set. Can we use it in a template definition, or there is a need to have a separate class in RDL?

vvagr
Posts: 282
Joined: Mon Feb 27, 2012 11:01 pm
Location: Moscow, Russia
Contact:

Re: Class Model

#7 Post by vvagr »

Hans,

1. Why there is a ClassOfInformationRepresentation between hasTemplate and hasOIM role occupiers in CompositionOfOIM template definition? Is it not enough to say that Template Statement in hasTemplate role is connected to OIM by ClassOfCompositionOfIndividual?

2. "To the signature of each template about a Class we add its Ur-Class"

I don't think we really have a need for that. Introducing a new subclass of Ur-Class we can use ClassifiedSpecialisaztionOfClass template to connect them and use all the usual templates for Class thereafter.

HansTeijgeler
Posts: 283
Joined: Sun Jan 22, 2012 10:02 pm

Re: Class Model

#8 Post by HansTeijgeler »

Hi Victor,

This is a reply to both posts.
Post 1
1. Approval of this modeling approach means that we agree that a template statement can occupy a role in a template statement. I'm supporting this idea, but it has a strong opposition also, and we've to bring this discussion to the attention of a broader circle, or, probable, start a new topic for this particular general issue and invite participation of experts beyond our SIG.
[HT] Agreed, please start that new topic.
2. Practical implementation of this approach, if approved, will require additions to reference data and templates. Specifically we've to decide on the "Template Statement" class. So far we've p7tm:TemplateStatement in the template metamodel reference data set. Can we use it in a template definition, or there is a need to have a separate class in RDL?
[HT] I copy what the p7tm ontology, as attached to Part 8 states:

Code: Select all

    <owl:Class rdf:about="#TemplateStatement">
        <rdfs:label>TemplateStatement</rdfs:label>
        <owl:equivalentClass>
            <owl:Class>
                <owl:unionOf rdf:parseType="Collection">
                    <rdf:Description rdf:about="#BaseTemplateStatement"/>
                    <rdf:Description rdf:about="#MetaTemplateStatement"/>
                </owl:unionOf>
            </owl:Class>
        </owl:equivalentClass>
        <rdfs:comment>A template statement is an instance of a template. Example: Given a template F with signature specifying the roles R1, R2 of types, resp., T1, T2. If a and b are individuals, then F(a,b) is a template statement.</rdfs:comment>
    </owl:Class>
This does not reveal any relationship to the Part 2 data model (neither BaseTemplateStatement nor MetaTemplateStatement do that).
The text of Part 8 does make such statements, see 7.2 where you can find:
- A template class is a subclass of the Multidimensional Object class, by the rdfs:subclassOf relationship.
- A template class is a subclass of the Information Representation class, by the rdfs:subclassOf relationship.
So perhaps we should first clear that up (see 1. above).
_____________________________________________________
Post 2
1. Why there is a ClassOfInformationRepresentation between hasTemplate and hasOIM role occupiers in CompositionOfOIM template definition? Is it not enough to say that Template Statement in hasTemplate role is connected to OIM by ClassOfCompositionOfIndividual?
[HT] Logically you could do that, but this solution makes explicit that a TemplateStatement is, also according Part 8, a specialization of ClassOfInformationRepresentation (and of MultidimensionalObject) and therefore can be a part of another ClassOfInformationRepresentation. The signature is the same in either case.
2. "To the signature of each template about a Class we add its Ur-Class"
[VA] I don't think we really have a need for that. Introducing a new subclass of Ur-Class we can use ClassifiedSpecialisaztionOfClass template to connect them and use all the usual templates for Class thereafter.
[HT] Yes, that could be done, but is more cumbersome, because first you specialize, remember the UUID of the subclass, then use the "usual" template with that UUID. Adding the Ur-Class to the "usual" template allows us to automatically generate that UUID and forget about it. The same is the case with the UUID of temporal parts in templates for individuals.
PS - In fact there are no "usual" templates, because the MMT is going to determine what templates will be "usual".

Regards,
Hans

KeithWillshaw
Posts: 77
Joined: Tue May 15, 2012 8:48 am

Re: Class Model

#9 Post by KeithWillshaw »

Before we get into the details of how we describe the life cycle of a class I need to fully understand why we are using a class for a tagged item rather than an individual !

I have seen the diagrams posted by HT and fully understand the difference between the Functional Object , the Physical Object and the Materialized Physical Object but its not clear to me why we are modelling what I regard as the Functional Object as a class.

The tag reference is important throughout the life of the plant, I understand that we need to use templates with temporal aspects to accurately track this life cycle data and record properties and even class changes which may occur if for example a particular model of pump is swapped for another.

In addition to the philosophical issues raised by not using a Part 2 Individual there are some practical implementation issues that need consideration some of which are listed below.

1) As HT says we would have an unlimited number of eternal classes so how do we practically manage this ? The idea of maintaining millions of classes as reference data is clealy impractical in real terms

2) There is no clean point at which the tag P-101 moves from being a FPO to a Physical Object or Materialized Physical Object so deciding which templates I should be using to write from my project repository becomes rather difficult to say the least.

3) Mapping seems to become much more complicated, how does the person mapping a property/class choose whether to use a Class or Individual Template the line between properties which belong to the physical object and class in this model are very blurred

4) At run time if we have multiple templates for P-101 in an application how do we decide which template to use ?

Its relatively easy to mak rules such as PID = Class BUT as PID's remain important and are updated long after the plant is commissioned is this a valid distinction ?

Additionally an increasing number of owner operators are wanting to operate a consolidated Data Management system that acts as an asset register and which issues tags and stores approved changes. Its not clear to me how using a Class for a tagged item instead of an individual fits into this requirement.

Keith Willshaw

HansTeijgeler
Posts: 283
Joined: Sun Jan 22, 2012 10:02 pm

Re: Class Model

#10 Post by HansTeijgeler »

Hi Keith,

Much more than I have written in:
- http://www.15926.info/plant-design/index.htm
- http://www.15926.info/functional-vs-mat ... object.htm
- http://www.15926.info/functional-physic ... /index.htm
- http://www.15926.info/cradle-to-grave/index.htm
I cannot bring to the table.
If that does not convince you, I rest my case.

In response to your 4+ points:
Re 1) - You misread me. I didn't say that for a given plant there are unlimited classes. But no matter how you store the lifecycle information of a plant, you end up with petabytes of data.
Re 2) - That clean point is installation, see Part 2 fig. 51
Re 3) - See http://www.infowebml.ws/mapping-methodology/index.htm
Re 4) - How do you do that in iRING?

Furthermore:
Its relatively easy to mak rules such as PID = Class BUT as PID's remain important and are updated long after the plant is commissioned is this a valid distinction ?
[HT] - A distinction between what? Nobody said that you have to do away with P&IDs and other documents. It so happens that in the Part 2 data model we model documents as instances of ClassOfInformationObject, of which the contents are defined with instances of ClassOfInformationRepresentation. If the document deals with plant design, the objects on that document represent instances of Class. That remains the case until the end of the plant when all records are destroyed.

Finally:
Additionally an increasing number of owner operators are wanting to operate a consolidated Data Management system that acts as an asset register and which issues tags and stores approved changes. Its not clear to me how using a Class for a tagged item instead of an individual fits into this requirement.
[HT] - ISO 15926 does not replace application software, so the issue of tags etc stays where it is now. But these data are mapped from such applications to the ISO 15926 Part 8 format and stored in federated or consolidated triple stores. Storing lifecycle information means a kind of sedimentation. At a later date you can do data mining and see what exactly happened in the plant. And by the way, if you look at the far righthand bottom corner of http://15926.org/publications/general-d ... /index.htm you can see that the assets are instances of MaterializedPhysicalObject.

Regards,
Hans

Locked