Thread Previous • Date Previous • Date Next • Thread Next |
Hi MLHIM owners, OK, let me try to get my point across the best I can. I feel a little bit concerned about posting my questions, because I don't want the MLHIM community to get frustrated or to feel that it is a waste of time to discuss my questions if they are not phrased in a technically correct way. But I'll do my best. Em 18/05/2011 14:37, Timothy Cook escreveu: > Hi, > > On Wed, May 18, 2011 at 8:55 AM, Luciana Tricai Cavalini <lutricav@xxxxxxxxx >> wrote: > >> Hi Tim and the mlhim-owners community, >> >> At this point, I think it is possible to model some CDDs, as long as >> they are under the CARE_ENTRY class and they don't have Slots. >> > > > In MLHIM that would be the CareEntry class. > > > >> IMO, The Entity Package needs further discussion, > > > > Of course I welcome this discussion. We certainly have people in the MLHIM > community with experience and knowledge in this area. I hope that they will > choose to contribute. I can't speak on the behalf of anybody else than me. But I will be giving the MLHIM Winter Course on July and I know that the students will ask for us to model "demographic" CCDs, something that is done by the use of the Entity classes in MLHIM. Of course I could tell the students that the Entity package is still under development, but I'd rather feel more secure about this part of the knowledge modelling instead. So, I have studied demographic models a little bit, and I have been discussing it with experts, but that's *my* understanding of all that study and interaction. So, I am the only responsible for what I am discussing here. I understood that, in most of the demographic models that are used nowadays, the classes we are calling Person, Non Human, Group, Organization and Device inherit from a class called something like "Actor". That's done because Actors are Parties, but Parties have Roles. So, usually, in the demographic models, you have Actor and Role inheriting from Party, and Person, Group, Organization etc inherit from Actor. At this point, in the MLHIM Entity package, Person, Non Human, Group, Organization and Device inherit directly from Party and Role is shown as a floating topic on the CDD 2.2.0. That doesn't make clear to me if that means that Role inherits from Party or not. If it does, why not showing it graphically as it is being done with the Person, Non Human, Group, Organization and Device; and in this case, the "Actor" class might be a good idea, because it organizes the model: Actors are one thing and Role is another thing, but they would be in the same hierarchy of the model. I built a XMind file (that is not a CCD, please!) in order to try to explain what I meant above. That is the most important question about the Entity package so far, IMO; the others can wait until we discuss this one, I guess. > > > >> and I need to >> understand better how to model CCDs starting with COMPOSITION, for >> instance, and how Slots operate. >> > > I hope this will get the discussion of Slots started. I am not sure what > your concerns are but this is the general application to date. > > A Slot is simply a place to include another fully developed concept. > [caution, I am not a pathologist so this may be missing some details] > > Let us say that we have a CCD for a CBC (complete blood count). In that > concept there would be a white blood count (WBC) among many other tests. > Now WBC is obviously a concept onto itself. Therefore the may well be a WBC > CCD. In the structure of the CBC, you would not want to model the WBC all > over again. Reuse is a desired approach. So where can we put the WBC in > the CBC structure? > > That is actually up to the person doing the modelling. Notice that Slot > inherits from Item. So that means that it can be anywhere there is an Item > class defined. The expanded part of this is that Item inherits from > Locatable, therefore a Slot can be inserted anywhere the is a locatable > entry. OK. So let me try to explain what I am having trouble understanding. If I am starting my CCD from OBSERVATION, it makes sense to me. Let's make the simplest example, by modelling "heart rate" as an Observation, and let's skip the MetaData sheet, in order to go straight to the point: 1) Go to the Content sheet and copy the Observation purple rectangle 2) Go back to the CCD sheet and paste the Observation purple rectangle in the "value" element of the Definition green reactangle 3) Click on the "+" sign inside the blue circle on the right side of the Observation purple rectangle 4) Click on the "+" sign on the right side of the "data" element of the Observation purple rectangle 5) Click on the "F" inside the yellow square on the right side of the "type" element of the "data" element of the Observation purple rectangle. That tells me which class inherits from Observation. 6) When I click on the "F" mentioned on (5), the hyperlink sends me to the History class on the Structures sheet. So, I understand that History inherits from Observation. 7) Copy the History orange rectangle from the Structures sheet. 8) Go back to the CCD sheet and paste the History orange rectangle in the "value" element of the "data" element of the Observation purple rectangle 9) Click on the "+" sign inside the blue circle on the right side of the History orange rectangle 10) Click on the "+" sign on the right side of the "events" element of the History orange rectangle 11) Click on the "F" inside the yellow square on the right side of the "type" element of the "events" element of the History orange rectangle. That tells me which class inherits from History. 12) When I click on the "F" mentioned on (11), the hyperlink sends me to the Event class on the Structures sheet. So, I understand that Event inherits from History. 13) The Event class has a red "A" on it, saying that it is an abstract class and it can't be chosen to be pasted. Then I need to choose between the classes that inherit from Event: PointEvent or IntervalEvent. That's something that the modeller needs to know: whether the concept under modelling is an event that is measured cross-sectionally (PointEvent) or longitudinally (IntervalEvent). 14) The vast majority of events are measured cross-sectionally, so let's choose PointEvent, because it is more common and simpler as an example. 15) Copy the PointEvent orange rectangle from the Structures sheet. 16) Go back to the CCD sheet and paste the PointEvent orange rectangle in the "value" element of the "events" element of the History orange rectangle 17) Click on the "+" sign inside the blue circle on the right side of the PointEvent orange rectangle 18) Click on the "+" sign on the right side of the "data" element of the PointEvent orange rectangle 19) Click on the "F" inside the yellow square on the right side of the "type" element of the "data" element of the PointEvent orange rectangle. That tells me which class inherits from Point Event. 20) When I click on the "F" mentioned on (19), the hyperlink sends me to the DvAny class on the Non-Quantitative DT sheet. 21) I know that the division of Non-Quantitative and Quantitative DT is just for visualization purposes; actually, all Non-Quantitative and Quantitative data types are part of the DataTypes package. 22) I want heart rate registered as a Quantitative data type, because the instance of data will be something like 80bpm, 97bpm, 72bpm, etc; so, in order to go to the Quantitative DT sheet, I click on the "F" inside the yellow square on the right side of the Quantitative Datatypes white rectangle. 23) The hyperlink sent me to DvOrdered, an abstract class; I need to choose on of the concrete classes on that sheet; I chose DvQuantity, because I want something that allows a number with any decimal places AND an unit of measurement (bpm - beats per minute - is the unit of measurement of heart rate). 24) Copy the DvQuantity blue rectangle from the Quantitatite DT sheet. 25) Go back to the CCD sheet and paste the DvQuantity blue rectangle in the "value" element of the "data" element of the PointEvent orange rectangle 26) Click on the "+" sign inside the blue circle on the right side of the DvQuantity blue rectangle 27) Click on the "+" sign on the right side of the "magnitude" element of the DvQuantity blue rectangle 28) Then you can constraint a lot of things. To make it as simple as possible, let's just constraint the minimum value allowed and the maximum value allowed. 29) The minimum value of heart rate a person can have is 0, when the heart is not beating; it is not possible to have negative values for heart rate. That sounds absurd, but the fact is that some systems we have nowadays allow the registration of -44bpm. Trust me, I'm not kidding. 30) And "0" is a possible value, so the value = 0 is the minimum and it should be included; so, I will click on the "minInclusive" element and press the TAB key; "Subtopic 1" is created as a child topic of the "minInclusive" element; I double click on "Subtopic 1", type "0" and press the ENTER key. 31) The maximum value is a matter of conjecture, but it is a good practice to define a maximum when huge numbers are absurd and should not be allowed; for instance, if somebody sleeps on the key number 2 of the keyboard, a value such as "222222222222222" should be registered, and that is not a good idea; you are laughing, but I've seen this happening before, trust me. Let's choose the number 1000 as the maximum value of heart rate allowed. But then you can say: oh, but someone can sleep on the key number 8 and "888" can be registered; well, OK, then you can choose 500; oh, but someone can sleep on the key number 4... that's an endless discussion. That's what's good about MLHIM: you are not satisfied with a maximum of 1000, fine, build your CCD and define a maximum of 500. You will still exchange data with the "Maximum 1000 Application" and both extracts of data will still be valid on both systems. So, I defined 1000 as the maximum value of heart rate for my CCD, and I defined that the maximum value includes the number 1000. 32) So, "1000" is a possible value, so the value = 1000 is the maximum and it should be included; so, I will click on the "maxInclusive" element and press the TAB key; "Subtopic 1" is created as a child topic of the "maxInclusive" element; I double click on "Subtopic 1", type "1000" and press the ENTER key. 32) Now, it is time to define that "bpm" is the unit of measurement. Just to simplify the process, let's say that "bpm" is an universal unit of measurement and that it doesn't need to be translated. 33) Click on the "+" sign on the right side of the "units" element of the DvQuantity blue rectangle 34) Click on the "value" element of the "units" element and press the TAB key; "Subtopic 1" is created as a child topic of the "value" element of the "units" element; I double click on "Subtopic 1", type "bpm" and press the ENTER key. This is my heart_rate CCD, without the metadata. I attached it on this message as well to show the results of this 34-step process. Now, I want to build a CCD called bp_and_bt. This CCD will be my complete application: a combination of two other CCDs: blood pressure and body temperature. I know that this CCD needs to have a structure of a COMPOSITION, because Composition is the minimal unit of data extract that I can send from my application to another application. Let's forget about the MetaData again and let's try to do the same step by step: 1) Go to the Content sheet and copy the Composition purple rectangle 2) Go back to the CCD sheet and paste the Composition purple rectangle in the "value" element of the Definition green reactangle 3) Click on the "+" sign inside the blue circle on the right side of the Composition purple rectangle 4) Click on the "+" sign on the right side of the "content" element of the Composition purple rectangle *************Now I reached to my question************************** 5) Following the same strategy that worked well for building the heart_reate CCD starting with an Observation, I should proceeed like (5) for the heart_rate CCD. So, I sould Click on the "F" inside the yellow square on the right side of the "type" element of the "content" element of the Composition purple rectangle. That should tell me which class inherits from Composition. 6) But the hyperlink sends me to Locatable on the Common sheet. If I follow the same logic I used to build the heart_rate CCD starting with Observation, that hyperlink is telling me that Locatable inherits from Composition. Because for the Observation class, the hyperlink sent me to History, and I understood that History inherits from Observation. 7) But by reading the MLHIM RM I understood it was the other way around; I understood that Composition inherits from Locatable; but the hyperlink on the "type" element of the "content" element of the Composition purple rectangle is telling me that Locatable inherits from Composition, if it has the same meaning of the hyperlink of the "type" element of the "data" element of the Observation purple rectangle. 8) I read the documentation and I think I understood that, for the "content" element, the class that inherits from Composition is ContentItem. So, that's my question: let's say that the way I proceeded to build my heart_rate CDD with the Observation class is right. Following the same logic, why is CDD 2.2.0 telling me that, for the "content" element, Locatable inherits from Composition? What's correct about the MLHIM RM for the "content" element of the Composition class: 1) Locatable inherits from Composition? 2) ContentItem inherits from Composition? I need to solve this problem before I start discussing anything about Slots. I attached my incomplete bp_and_bt CCD in order to show what's my doubt. I am sincerely sorry if this e-mail is somehow frustrating or a waste of time for the MLHIM community. My only intent was to contribute the best I can with the only thing I can do: knowledge modelling. Thank you very much, Luciana. > > > >> >> I will be working on phrasing my questions in an understandable way over >> the next weeks. But it is not easy for me, since I don't have the >> required IT background, and I don't understand the Reference Model well >> enough to guarantee I will get my point across. That's why it will take >> time. >> > > > I am sure you will do fine. > > > >> >> If my constraints were understood; then I can ask Tim: what is the >> software you suggest for us to perform the videotaping? >> >> > On Linux and certainly on Ubuntu. RecordMyDesktop is easy to use. I think > it is installed by default. Other OSs, I am not certain but there are a > number of alternatives. > > Regards, > Tim > -- Esta mensagem foi verificada pelo sistema de antiv�s e acredita-se estar livre de perigo.
Attachment:
Party.xmind
Description: application/vnd.xmind.workbook
Attachment:
bp_and_bt.xmind
Description: application/vnd.xmind.workbook
Attachment:
heart_rate.xmind
Description: application/vnd.xmind.workbook
Thread Previous • Date Previous • Date Next • Thread Next |