Different burgers have different toppings like cheese, onions, beef, salad. Let's consider hamburgers and cheeseburgers as possible burger instances and the object property "has_Topping" to define their properties.
First, we want to model a burger factory where each burger which is produced is an instance. So, we have cheeseburger_1, hamburger_1, cheeseburger_2, hamburger_1. And each burger has its own instances of toppings, e.g.
<cheeseburger_1> <has_Topping> <cheese_1> ;
<has_Topping> <beef_1>.
<cheeseburger_2> <has_Topping> <cheese_2> ;
<has_Topping> <beef_2>.
In accorence with this, has_Topping is not functional, however inverse functional (because a topping determines on which burger it is a constitutent). Moreover, has_topping is aysmmectric and irreflexive. Right?
Second, we want to model a burger recipe database. Therefore, we have only one recipe for an original cheeseburger and hamburger. Our toppings exist only once.
<hamburger> <has_Topping> <beef>;
<has_Topping> <salad>.
<cheeseburger> <has_Topping> <beef>;
<has_Topping> <cheese>.
In accorence with this, has_Topping is not functional and not inverse functional (because a topping does not determine on which burger it is a constitutent). Moreover, has_topping is aysmmectric and irreflexive. Right?
Are the selected characteristics correct according to the particular use cases or is there a thinking error?