Re: [protege-user] [EXT] Modeling Beliefs in OWL?
"Michael Denny" <[email protected]>
| Newsgroups | gmane.comp.misc.ontology.protege.owl |
|---|---|
| Message-ID | <006001db71e9$76a057e0$63e107a0$@com> |
Michael, You might find something useful in the work of Rinke Hoekstra (1) who years ago developed design patterns making clever use of OWL 2 DL features to model relations inspired by Searle’s social reality concepts. These I believe were included in the LKIF Core legal ontology and include one that is extended to represent a person’s attitude toward a proposition or belief in a brute fact, etc. in a given context. Here a ‘counts_as’–like relation linking the concepts is functionally reified in that context. Worth checking out. (1) Representing social reality in OWL 2. Rinke Hoekstra 2010 <https://ceur-ws.org/Vol-614/owled2010_submission_29.pdf> Mike From: protege-user [mailto:[email protected]] On Behalf Of Michael DeBellis Sent: Saturday, January 25, 2025 2:00 PM To: User support for WebProtege and Protege Desktop Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL? Now, I challenge you to use your approach to model the beliefs I just expressed! There is no doubt that there will be many propositions that I won't be able to model in OWL. The ontology I'm building can still be very useful without such a model. The open question is can I at least model basic beliefs like "Climate Change is a real phenomena that is to a significant extent caused by human use of fossil fuels" or "Decreased use of fossil fuels will destroy the economy". Maybe not but maybe. Regarding your subsequent exchange with Sampson, I do have to wonder whether OWL is the right language to express beliefs rigorously It certainly isn't the best language. But again, modeling beliefs isn't the most important thing I'm trying to do. The most important thing I'm trying to do is build a tool that integrates a knowledge graph and ChatGPT to answer questions about climate obstruction and green washing, provide links to appropriate papers, and other documents such as pages on web sites that are databases of litigations regarding deceptive climate advertising <https://climatecasechart.com/> If I can model simple beliefs that is so much the better but not essential. Any alternatives that I've seen don't have the kind of scalability and tool support that OWL does so I would rather have OWL and no beliefs rather than some language where I can model say a thousand documents but then hit performance limits. One of the other things I've been looking into is using OWL and SHACL as semantics for metadata in a data lakehouse which is one reason I like this example, there is a ton of data out there so this could be useful to people doing work in climate change as well as a demonstration of a new approach to OLAP using semantic technology and LLMs rather than databases like Google Big Query as people do now. Regarding Samson's question: I didn't give the correct answer for why I think a Belief concept is required rather than just a believes property. That is that Beliefs have additional properties besides their propositions. E.g., people change their minds. For example I used to believe that "George Washington chopped down a Cherry tree but then couldn't lie about it when asked if he was responsible" (when I was very young) I know that's just a story now. Also, an individual's beliefs have a structure that is not completely dependent on the proposition. The fact that you don't see stars in video of the men walking on the moon is taken by conspiracy theorists as evidence that the moon landings were faked. But people who know astronomy know that it has to do with how cameras work and how bright the surface of the moon is. There is so much light from the sun that the camera has to close its aperture to be very small and hence can't detect the faint light of the stars. Given that we’re not going to have an alternate language for expressing ontologies with modal logic (would that even be an ontology?) I don't care about questions like "would that even be an ontology?". I care about making something that works and is scalable and takes advantage of the RAG integration between ChatGPT and knowledge graphs. If it turned out that building the whole model in SHACL or Neo4j was the best approach, I would do that. I happen to think that OWL is best but I want to use other technologies as well. E.g., AllegroGraph has an implementation of Prolog and tools for reasoning about time and spatial information that might be useful and I think the geographic reasoning is in RDF and SPARQL not OWL. In fact time and units are two other things I'm thinking of. In the past I've modeled both of those explicitly in the ontology but I'm concerned that may not scale up and I've been looking at handling both via code rather than in the ontology. So there is no question a significant amount of reasoning or what people used to call "business logic" will be in the code, not all in the ontology. Thanks for the feedback, it helps to talk these things through before building something. Cheers, Michael https://www.michaeldebellis.com/blog On Fri, Jan 24, 2025 at 7:25 AM Wartik, Steven P "Steve" <[email protected]> wrote: Michael, I believe that “Proposition” more accurately expresses your intent than “Fact”. I also believe “State” would be misleading, because I believe most people interpret “State” to mean something that exists, has existed, or will exist, not something that might exist or never existed. Now, I challenge you to use your approach to model the beliefs I just expressed! Regarding your subsequent exchange with Sampson, I do have to wonder whether OWL is the right language to express beliefs rigorously. I have, from time to time, needed to model beliefs. I have used the Common Core Ontologies <https://github.com/CommonCoreOntology/CommonCoreOntologies> and have expressed beliefs as Information Content Entities, which is weak. Well, my approach is a little more complicated than that (details on request), but my point is that OWL doesn’t facilitate useful reasoning about beliefs – at least, I haven’t figured out a good approach to modeling beliefs in OWL. In every approach I’ve seen, calling something a “belief” requires an interpretation external to the ontology. Given that we’re not going to have an alternate language for expressing ontologies with modal logic (would that even be an ontology?) any time soon, I ask: How will you make users of your ontology aware of the additional interpretations they must apply? Steve Wartik From: protege-user <[email protected]> On Behalf Of Michael DeBellis Sent: Thursday, January 23, 2025 7:17 PM To: User support for WebProtege and Protege Desktop <[email protected]> Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL? Steve, good point. By fact I didn't mean to imply it is true, merely that it is a state of the world that is possible. But I agree calling it a Fact is misleading. I actually think in the previous work where I used this model I called it a State. The reason I didn't use State is I want this to be understandable to social scientists and I'm not sure they would know this meaning of State. I also used the term Proposition in previous work and I think that might be the best here but definitely not Fact. Another option is Statement but that implies someone said it. I just looked up Proposition on Wikipedia and I think that is the proper term rather than Fact: https://en.wikipedia.org/wiki/Proposition Let me know if you disagree, thanks for the feedback. Michael On Thu, Jan 23, 2025 at 1:35 PM Wartik, Steven P "Steve" <[email protected]> wrote: Michael, I am curious about your first approach. How do you adjudicate what individuals are members of class Fact? I hardly need point out the practical difficulties in this day and age. And for that matter, what does it mean for an individual to be a member of class Fact? Especially in the context of your Belief class. If f is a Fact, b is a Belief, and b hasFact f, then what’s the point of calling something a belief if f is accepted to be truth? On reflection, it seems to me that a member of class Fact is, in your interpretation, something that someone believes to be a fact, independent of whether or not it actually is a fact. Is that correct? If so, “Fact” is kind of a misleading name. The approach may get you into trouble if you try reasoning. I can see a knowledge graph simultaneously containing the following two beliefs: 1. Belief 1: Person 1 thinks the average global temperature has risen 1.5° since 1990. 2. Belief 2: Person 2 thinks the average global temperature has risen 0.5° since 1990. To express this according to your approach, you’re going to have pairs of triples independent of the beliefs: 1. Fact 1: The average global temperature has risen 1.5° since 1990. 2. Fact 2: The average global temperature has risen 0.5° since 1990. Because reasoners don’t know about your Belief class, they might choke on something like this. It’s hard to say without a full model. Just something to keep in mind as you proceed. Steve Wartik From: protege-user <[email protected]> On Behalf Of Michael DeBellis Sent: Thursday, January 23, 2025 3:04 PM To: User support for WebProtege and Protege Desktop <[email protected]> Subject: [EXT] [protege-user] Modeling Beliefs in OWL? *** This email originated outside of IDA. Please verify that you recognize the sender and know the content is safe before proceeding. *** 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 _______________________________________________ protege-user mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/protege-user _______________________________________________ protege-user mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/protege-user