Search Mailing List Archives

Limit search to: Subject & Body Subject Author
Sort by: Reverse Sort
Limit to: All This Week Last Week This Month Last Month
Select Date Range     through    

[protege-user] How to Relate Different Classes

Igor Toujilov name1390453675 at
Mon Nov 11 16:19:10 PST 2019

Hi All,
I am not a biomedical expert; so, please correct if I am wrong. However from my point of view (software engineering), many modern drugs are developed as a specialisation of existing drugs, i.e. by bringing new features to existing drugs. So, some new drug can be considered as a subclass of an existing drug. This is similar to object-orientated design in software: to bring new features, establish a subclass and implement it.
For example, methylphenidate can be considered as a superclass of Ritalin. If an earlier version of your ontology represents methylphenidate as an individual, then it would be difficult to represent Ritalin in later versions without breaking backward compatibility with existing interoperable applications.
This example shows that the preferable approach in ontology development is: use classes instead of individuals, if there is any chance you would need subclasses in the future.

Sent: Sunday, November 10, 2019 at 5:15 PM
From: "Dave McComb" <mccomb at>
To: "User support for WebProtege and Protege Desktop" <protege-user at>
Subject: Re: [protege-user] How to Relate Different Classes

Totally agree.  It is very situation dependent, and like you were suggesting here, I think the best route is to first think through the instances you’re going to have, which will inform the classes you need.  Doing it the other way around typically creates lots of classes that add little value.
Sent from Mail[] for Windows 10

From: protege-user <protege-user-bounces at> on behalf of Michael DeBellis <mdebellissf at>
Sent: Sunday, November 10, 2019 9:31:30 AM
To: User support for WebProtege and Protege Desktop <protege-user at>
Subject: Re: [protege-user] How to Relate Different Classes

Samoc and Dave, here's my 2 cents: I think this is a common issue with modeling, what to make a class and what to make an instance. I think it becomes clearer when we start talking about real examples rather than Drug1 and Drug2. So if instead of Drug1 and Drug2 we say MentalHealthDrugs and ADDDrugs those are probably going to be classes where as Adderall, Ritalin, and Vyvanse are probably going to be instances of ADDDrugs. 
Note though that it depends on your particular application. So if you had a Pharmacy system then even Adderall, Ritalin, and Vyvanse could be classes and the instances could be things like JohnSmithRitalinFulfilment3 which would refer to a specific transaction where John Smith got a prescription for Ritalin filled on a certain date, with a certain doctor's okay, etc. 
There is no one right answer, it all depends on the application and use cases. 

On Sun, Nov 10, 2019 at 8:08 AM Samoc <sjsiperas at[mailto:sjsiperas at]> wrote:Hi Dave

Thanks for reply
I am not sure if you are saying same thing as Igor?

I am new to laying out an ontology and not sure if I need to look at my
situation differently?

To me Drugs would be a class of n number of drugs and of course if I wanted
to get really complicated
at the start within drugs there would be subclasses of drug types
And Diseases would be a class of n number of diseases and we could
sub-divide into body systems

My overall goal as a start on designing a simple ontology was to be able to
examine/visualize the
relationship of

drug1 is subclass of diabetes drugs which is a subclass of drugs

drug1 also has a connection to disease-diabetes which is a subclass of
pancrease which is subclass diseases

So since I am a newbie in ontology - I may of intertwined the incorrect
terminology class/subclass/relationships etc but hopefully you can see where
I am trying to get to :-)
I was trying to start simple since there is alot to consider here :-)

Thanks - any pointers would be great

Sent from:[]
protege-user mailing list
protege-user at[mailto:protege-user at] protege-user mailing list protege-user at[]

More information about the protege-user mailing list