[protege-user] Modeling Beliefs in OWL?

Michael DeBellis <[email protected]>
Newsgroups gmane.comp.misc.ontology.protege.owl
Message-ID <CALGFikfCmHcxrQ46_-e1vQkDjsdmaXpbA5Yt3swRo-KU5AgQwA@mail.gmail.com>
I'm developing an ontology based on an informal model created by some
social scientists to model Climate Obstruction and Green Washing. I'm
starting with the Gist upper model (but to the extent I understand Gist, I
think the following question is  bit more theoretical than what they
typically model).

One thing I want to model is beliefs. The problem of course is that since
Gist is logical it can't handle axioms that contradict each other and
different people believe contradictory things  I've thought of two ways to
do it and I'm interested in any feedback people have.

Also, while the eventual knowledge graph will be large (millions of triples
at least) the size won't come from beliefs. E.g., I'm not going to need to
model thousands of different belief systems. I'll be using individual
people as examples and perhaps also groups of people (e.g., the goal of an
Exxon PR program is to convince the AmericanConsumer that decreased use of
fossil fuel will be bad for the economy). Both Person and Organization are
subclasses of Agent and Agent is the domain for believes.

Approach 1). Reified triples. Create a class called Fact. Create object
properties hasSubject, hasPredicate, hasObject, where each property's
domain is Fact and the range is undefined. Then a Class called Belief with
an object property hasFact. A belief consists of one or more facts. So to
model Michael thinks Cat1 is on Mat1 create a Fact (Cat1OnMat1) with
subject = Cat1, Predicate = isOn and object = Mat1. Make a belief object
that consists of this fact Cat1OnMat1Belief and an object property believes
and the triple Michael believes Cat1OnMat1Belief. You can assert a Fact is
true with a simple Python function or even just a sparql query that gets
the triple values and asserts them.

Issues: Have to pun all the values for hasPredicate since those need to be
properties. I've had bad experiences when using lots of puns. Honestly, I'm
not sure if the problems are from AllegroGraph, Protege or using them
together (which I do all the time without problems except when I have lots
of puns). I've never spent enough time to figure out what the specific
problem(s) are because I found whatever was going wrong I could make it go
away by using annotation properties and no puns...  actually another option
would be to make hasPredicate an annotation rather than object property.

Approach 2): Use named graphs and only do reasoning within each graph. This
seems simpler. So for each Agent's beliefs we would just have a named graph
called MichaelBeliefs, AlansBeliefs, etc.

Issues: How to model the connection between an Agent and their Beliefs.
Since I don't think OWL understands what a named graph is because its an
RDF concept not a logical concept. I think I could create an annotation
property that points from the Agent to each named graph.

I was leaning toward 1 which I've done before (on a very small scale) but
after talking to a colleague I'm leaning toward 2.

Interested in any critique, feedback, other ideas and/or pointers to
relevant papers.

Cheers,
Michael
https://www.michaeldebellis.com/blog

_______________________________________________
protege-user mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/protege-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.