3

I'm using Protege 4.3 to create my first ontology, so I encountered a few problems

Let's say we have the classes Shop, Mall, and Person and the properties works-inand is-part-of.

So the first problem is we want: if a Person works-in Shop and Shop is-part-of Mall then Person works-in Mall.

I tried to add the property chain works-in o is-part-of to the property is-part-of but then the reasoner died when I activated it.

Any idea how to solve that?

Thanks.

Upperstage
  • 3,747
  • 8
  • 44
  • 67
DS_UNI
  • 2,600
  • 2
  • 11
  • 22
  • `works-in` => `works-for` will solve your first problem -- `Person` `works-for` the `Shop`, which `is-part-of` the `Mall`. You work for the shop, which is in the mall. I'm ignoring your second because you should only ask one question per question. – Nic May 15 '15 at 23:04
  • I did not really understand what you are suggesting, but I would like to add that I tried defining a property chain for `works-for` but the reasoner died when I activated it. can you please explain a bit more? – DS_UNI May 15 '15 at 23:21
  • ...Okay, on rereading the question, I realize it's about a specific system. I was saying, in general, you could allow it to be implied that if someone works in a store that's in a mall, they work in that mall. It's clearer if you say they work _for_ a store that's in a mall that the relationship is indirect. – Nic May 15 '15 at 23:23
  • Can you show the error message you received from the reasoner? The stack trace should be available clicking on the red triangle on the top right corner of the Protege window. – Ignazio May 16 '15 at 12:07
  • well it was an error message `Fatal reasoner error : Reasoner died (see logs for more info)` – DS_UNI May 16 '15 at 12:23

1 Answers1

1

To answer your first question: you are looking for property chains. In Protege you can say that works-in o is-part-of is a subPropertyOf (Chain) works-in, this will give you expected inferences

EDIT: I did the following experiment:

a) create general ontology following your description (in Manchester syntax): Ontology: <http://www.semanticweb.org/o> ObjectProperty: <http://www.semanticweb.org/o#works-in> SubPropertyChain: <http://www.semanticweb.org/o#works-in> o <http://www.semanticweb.org/o#is-part-of> ObjectProperty: <http://www.semanticweb.org/o#is-part-of> Domain: <http://www.semanticweb.org/o#Department> or <http://www.semanticweb.org/o#Shop> Range: <http://www.semanticweb.org/o#Mall> or <http://www.semanticweb.org/o#Shop> Class: <http://www.semanticweb.org/o#Shop> Class: <http://www.semanticweb.org/o#Mall> Class: <http://www.semanticweb.org/o#Department> Class: <http://www.semanticweb.org/o#Person>

b) Add some individuals to that ontology to check the inference. After classifying with FaCT++ Protege shows that person1 is related to mall1 via works-in. The additional axioms are as follows: Individual: <http://www.semanticweb.org/o#shop1> Types: <http://www.semanticweb.org/o#Shop> Facts: <http://www.semanticweb.org/o#is-part-of> <http://www.semanticweb.org/o#mall1> Individual: <http://www.semanticweb.org/o#mall1> Types: <http://www.semanticweb.org/o#Mall> Individual: <http://www.semanticweb.org/o#person1> Types: <http://www.semanticweb.org/o#Person> Facts: <http://www.semanticweb.org/o#works-in> <http://www.semanticweb.org/o#shop1>

c) Add axioms saying that Person works in Shop, and Shop is part of Mall to the ontology from a). In this case again Person is a part of WorksInMall class, that shows that the property chain axiom is taken into account. Additional axioms are: Class: <http://www.semanticweb.org/o#WorksInMall> EquivalentTo: <http://www.semanticweb.org/o#works-in> some <http://www.semanticweb.org/o#Mall> Class: <http://www.semanticweb.org/o#Person> SubClassOf: <http://www.semanticweb.org/o#works-in> some <http://www.semanticweb.org/o#Shop> Class: <http://www.semanticweb.org/o#Shop> SubClassOf: <http://www.semanticweb.org/o#is-part-of> some <http://www.semanticweb.org/o#Mall>

Dmitry Tsarkov
  • 768
  • 4
  • 11
  • That's what I thought but when I tried that the reasoner died every time I activated it – DS_UNI May 16 '15 at 06:28
  • What reasoner are you using, and what's your ontology? Could you share this? – Dmitry Tsarkov May 16 '15 at 08:44
  • I'm using `FaCT++` as a reasoner, and i'm supposed to create with the ontology a Description Logic Knowledge Base (KB) on malls and their relation to employees and shoppers – DS_UNI May 16 '15 at 08:50
  • could the problem be that the property `is-part-of` has the domain `Department or Shop` and the range `Shop or Mall` ? is there a way to specify that for example the domain `Shop` takes values only in `Mall`? – DS_UNI May 16 '15 at 10:18
  • I edited the answer to show the experiment I performed. Both individual and class versions shows that the property chains work as expected. – Dmitry Tsarkov May 17 '15 at 10:47
  • And can you please share the ontology (you can send it privately to me if possible). As a FaCT++ developer I'm really interested in fixing problems in it. – Dmitry Tsarkov May 17 '15 at 10:49