Say that I'm creating a vehicle ontology. A vehicle and its manufacturer is connected by something like MyCar hasManufacturer Tesla
. Then the manufacturer has a country of origin which I specify as Tesla hasCountryOfOrigin USA
. What I want is the MyCar
to be connected to USA
when I run the reasoner such that,MyCar hasCountryOfOrigin USA
. I know that this is different from transitive property. How can I achieve this? (Using Protege specifically)
You can do this with a property chain in OWL. You want to define the chain hasManufacturer --> hasCountryOfOrigin
as a subproperty of hasCountryOfOrigin
. In Protégé, you can do it by selecting the property hasCountryOfOrigin
(in the ObjectProperty tab), find the place in the lower right section with "SuperPropertyOf (chain)" and click the + sign, then in the new edit box that opens, type hasManufacturer o hasCountryOfOrigin
. The property hasManufacturer
must have been added previously. It's also possible to get the same inferences as a property chain with a SWRL rule, which can be done in Protégé, but SWRL is not a standard, whereas OWL and the property chain feature are.