I have read this article and got an additional question about this topic:
Is it possible to define a class property for every individual of the domain and the range class? Like a property value that points to a class or some special only condition.
Regarding the milkbottle example: I have this class hierarchy
Manufacturer
-> Milk_Manufacturer
Product
-> Milk_Bottle
Milk_Manufacturer has the individuals manufacturer_1 and manufacturer_2
Milk_Bottle has the individuals bottle_1 and bottle_2
Is it possible to define a property Milk_Bottle isProducedBy Milk_Manufacturer which says that every individual Milk_Bottle can be produced by every individual Milk_Manufacturer? A reasoner should be able to infer all the properties for the individuals afterwards.
If I add a manufacturer_3 and synchronize I want the reasoner to add the property to both bottles and if I add a bottle_3 it should have properties to all manufacturers
There are two ways of applying a concept product role:
a SWRL rule: Milk_Bottle(?x), Milk_Manufacturer(?y) -> isProducedBy(?x, ?y)
a Description Logic rule: Milk_Bottle SubClassOf R_1 Self, Milk_Manufacturer SubClassOf R_2 Self, isProducedBy SubPropertyChain R_1 o U o R_2
Credits to AKSW for the answer