-2

I'm working on an ontology and I'm having an issue regarding the best approach for defining some concepts. To make my question easier to express, I'll take an example.

Let's suppose that I'm interested, while defining the concept of Football, to say that it requires 2 teams. I have 2 approaches:

  1. Define a hasTeam object property and a Team class and make Football a subclass of:

    hasTeam exactly 2 Team

  2. Define a teamCount data property and make Football a subclass of:

    teamCount value 2

Which are the advantages of each and which might be the better approach when defining an ontology?

Cosmin SD
  • 1,467
  • 3
  • 14
  • 21

1 Answers1

2

The first solution allows you to specify which teams are involved in Football (football match, I assume), while the second does not allow for this - it is just a restriction over the integer datarange saying that the only value admissible for your property is 2.

I would go for the first solution, as the second one basically reduces the data property to a marker - since there is only one possible value, its presence is equivalent to the individual it's applied to belonging to a class, and allows for less information to be modeled. But it really depends on the rest of your requirements.

Ignazio
  • 10,504
  • 1
  • 14
  • 25
  • Hmm... Thanks for the info. If I'm talking about football as a concept and not a particular match, everything remains the same? Maybe a better example would have been `Human` and `hasFoot exactly 2 Foot` vs `footCount value 2`. – Cosmin SD Nov 24 '13 at 23:41
  • 1
    I think my argument would stay the same for the feet example, as in the first approach you can address right foot and left foot independently (there might be something to say about one that does not apply to the other, such as a medical condition), while in the second case you cannot. The final choice really depends on what else you plan to do with the ontology. – Ignazio Nov 27 '13 at 09:53