Search code examples
rdfowlsemantic-webontologyprotege

A question about Property Characteristics


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)


Solution

  • 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.