Re: [protege-user] Visualizing Object Properties

Rob Bastholm <[email protected]>
Newsgroups gmane.comp.misc.ontology.protege.owl
Message-ID <CAMA06JFtfcxtiysgTHpxT_SrDrVO+yMsKWdgE5MiLgaskujDkw@mail.gmail.com>
Jim: OAK may work once I've corrected certain mistakes in my ontology.
Thank you!

Michael: Thank you for discussing this with me further via e-mail. I've
tried a few sample instances of annotation properties to connect classes.
Now I just need to see if a visualizer will show that metadata.

Alex: An example would be a non-hierarchical connection between two
classes. For example, I need to say that any air traffic controller has
cognitive workload, i.e., AirTrafficController has CognitiveWorkload. The
cytoscape.js referenced in your link may be promising for visualization.
Thank you!

On Fri, Jan 24, 2025 at 3:07 PM <[email protected]>
wrote:

> Send protege-user mailing list submissions to
>         [email protected]
>
> To subscribe or unsubscribe via the World Wide Web, visit
>         https://mailman.stanford.edu/mailman/listinfo/protege-user
> or, via email, send a message with subject or body 'help' to
>         [email protected]
>
> You can reach the person managing the list at
>         [email protected]
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of protege-user digest..."
> Today's Topics:
>
>    1. Re: [EXT]  Modeling Beliefs in OWL? (Wartik, Steven P "Steve")
>    2. Re: [EXT] Modeling Beliefs in OWL? (Michael DeBellis)
>    3. Re: hello (Michael DeBellis)
>    4. Re: hello (Michael DeBellis)
>    5. Re: hello (stathoula terzidou)
>    6. Re: hello (Michael DeBellis)
>    7. Re: hello (stathoula terzidou)
>    8. Re: [EXT] Modeling Beliefs in OWL? (Samson Tu)
>    9. Re: [EXT] Modeling Beliefs in OWL? (Michael DeBellis)
>   10. Re: hello (Michael DeBellis)
>   11. Re: [EXT] Modeling Beliefs in OWL? (Robert Goldman)
>   12. Re: [EXT] Modeling Beliefs in OWL? (Wartik, Steven P "Steve")
>   13. Visualizing Object Properties (Rob Bastholm)
>   14. Re: Visualizing Object Properties (Balhoff, Jim)
>   15. Re: Visualizing Object Properties (Michael DeBellis)
>
>
>
> ---------- Forwarded message ----------
> From: "Wartik, Steven P \"Steve\"" <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 21:35:48 +0000
> Subject: Re: [protege-user] [EXT]  Modeling Beliefs in OWL?
>
> 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
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 16:16:57 -0800
> 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
>>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 17:53:59 -0800
> Subject: Re: [protege-user] hello
> Stathoula, I tried adding a schema.org prefix to a small test ontology
> and I noticed some weird behavior. I called the prefix sc: but even though
> Protege accepted it, that prefix seemed to be bound to some other
> namespace. So in spite of having defined the prefix in the Ontology
> Prefixes tab, when I entered sc:Course as a new class the IRI ended up
> being: http://purl.org/science/owl/sciencecommons/Course. This may not
> have been the problem you have. I have a few prefixes in most of my files
> that don't come by default with Protege and it is possible that was where
> the problem came from. However, when I added scem: as the prefix with the
> IRI: http://www.schema.org/ Then when I entered scem:Course as a new
> class, it had the expected IRI: http://www.schema.org/Course  See the
> attached file. This is a small file I'm using for a workshop to show
> examples of using ChatGPT to generate an ontology (the entire ontology
> except the classes and the contains and containedIn properties were
> auto-generated using ChatGPT). But it seems to work for me. Just to be
> clear, when you add an IRI to the ontology prefixes you don't want those
> angle brackets around it. Again, check the attached file for an example.
> Hope that helps. If you are still having problems I suggest you attach the
> ontology file(assuming it isn't very large) and I'll try and take a look
> tonight or tomorrow.
>
> Cheers,
> Michael
> https://www.michaeldebellis.com/blog
>
> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <[email protected]>
> wrote:
>
>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking the +
>> button. At first seems to create it but when switching tabs it disappears
>> i have a class Course and want to use the schema.org/Course so i was
>> thinking to create a prefix sch: <http://www.schema.org/> and make the
>> class Course a owl:Class, sch:Course .
>> is this correct?
>> also in the turtle rendering tab why it shows me the full IRIs from all
>> entities and not with the prefix?
>> _______________________________________________
>> protege-user mailing list
>> [email protected]
>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 18:05:42 -0800
> Subject: Re: [protege-user] hello
> Just realized I didn't answer your second question:
>
> also in the turtle rendering tab why it shows me the full IRIs from all
>> entities and not with the prefix?
>
>
> Not sure what you mean by the "turtle rendering tab". I don't see that tab
> in the tabs under Window>Tabs   Do you mean just the ttl file that gets
> generated when you save the ontology in Turtle format? I just checked and
> it does indeed use the full IRIs. Not sure why. My guess is it may be a bit
> more efficient and since most people seldom edit those ttl files directly
> having the full IRIs doesn't really matter. The only time (unless you are
> one of those developers who still thinks "real programmers use vi") you
> should directly edit those files is when you have some unexplained behavior
> because some weird character or something krept into your file.
>
> If you have a Turtle Rendering Tab in Protege my guess is you are using
> some plugin that I'm not aware of that creates such a tab. If that's the
> case please let us know.
>
> Michael
>
> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <[email protected]>
> wrote:
>
>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking the +
>> button. At first seems to create it but when switching tabs it disappears
>> i have a class Course and want to use the schema.org/Course so i was
>> thinking to create a prefix sch: <http://www.schema.org/> and make the
>> class Course a owl:Class, sch:Course .
>> is this correct?
>> also in the turtle rendering tab why it shows me the full IRIs from all
>> entities and not with the prefix?
>> _______________________________________________
>> protege-user mailing list
>> [email protected]
>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>>
>
>
>
> ---------- Forwarded message ----------
> From: stathoula terzidou <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 05:47:09 +0200
> Subject: Re: [protege-user] hello
> just checked its from the shacl4protege plugin window>views>ontology
> views>turtle rendering
> when i open it it removes all the prefixes i created and also the empty
> one ' : '
>
> Στις Παρ 24 Ιαν 2025 στις 4:05 π.μ., ο/η Michael DeBellis <
> [email protected]> έγραψε:
>
>> Just realized I didn't answer your second question:
>>
>> also in the turtle rendering tab why it shows me the full IRIs from all
>>> entities and not with the prefix?
>>
>>
>> Not sure what you mean by the "turtle rendering tab". I don't see that
>> tab in the tabs under Window>Tabs   Do you mean just the ttl file that gets
>> generated when you save the ontology in Turtle format? I just checked and
>> it does indeed use the full IRIs. Not sure why. My guess is it may be a bit
>> more efficient and since most people seldom edit those ttl files directly
>> having the full IRIs doesn't really matter. The only time (unless you are
>> one of those developers who still thinks "real programmers use vi") you
>> should directly edit those files is when you have some unexplained behavior
>> because some weird character or something krept into your file.
>>
>> If you have a Turtle Rendering Tab in Protege my guess is you are using
>> some plugin that I'm not aware of that creates such a tab. If that's the
>> case please let us know.
>>
>> Michael
>>
>> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <[email protected]>
>> wrote:
>>
>>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking
>>> the + button. At first seems to create it but when switching tabs it
>>> disappears
>>> i have a class Course and want to use the schema.org/Course so i was
>>> thinking to create a prefix sch: <http://www.schema.org/> and make the
>>> class Course a owl:Class, sch:Course .
>>> is this correct?
>>> also in the turtle rendering tab why it shows me the full IRIs from all
>>> entities and not with the prefix?
>>> _______________________________________________
>>> 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
>>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc: "André Wolski" <[email protected]>
> Bcc:
> Date: Thu, 23 Jan 2025 19:53:36 -0800
> Subject: Re: [protege-user] hello
> Thanks, that makes sense.  I think your best bet (unless someone else on
> the list has ideas) is to create an issue on their GitHub repo:
> https://github.com/fekaputra/shacl-plugin  I'm also copying Andre who I
> think is one of the main developers. Andre, please see thread below:
>
> On Thu, Jan 23, 2025 at 7:47 PM stathoula terzidou <[email protected]>
> wrote:
>
>> just checked its from the shacl4protege plugin window>views>ontology
>> views>turtle rendering
>> when i open it it removes all the prefixes i created and also the empty
>> one ' : '
>>
>> Στις Παρ 24 Ιαν 2025 στις 4:05 π.μ., ο/η Michael DeBellis <
>> [email protected]> έγραψε:
>>
>>> Just realized I didn't answer your second question:
>>>
>>> also in the turtle rendering tab why it shows me the full IRIs from all
>>>> entities and not with the prefix?
>>>
>>>
>>> Not sure what you mean by the "turtle rendering tab". I don't see that
>>> tab in the tabs under Window>Tabs   Do you mean just the ttl file that gets
>>> generated when you save the ontology in Turtle format? I just checked and
>>> it does indeed use the full IRIs. Not sure why. My guess is it may be a bit
>>> more efficient and since most people seldom edit those ttl files directly
>>> having the full IRIs doesn't really matter. The only time (unless you are
>>> one of those developers who still thinks "real programmers use vi") you
>>> should directly edit those files is when you have some unexplained behavior
>>> because some weird character or something krept into your file.
>>>
>>> If you have a Turtle Rendering Tab in Protege my guess is you are using
>>> some plugin that I'm not aware of that creates such a tab. If that's the
>>> case please let us know.
>>>
>>> Michael
>>>
>>> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <[email protected]>
>>> wrote:
>>>
>>>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking
>>>> the + button. At first seems to create it but when switching tabs it
>>>> disappears
>>>> i have a class Course and want to use the schema.org/Course so i was
>>>> thinking to create a prefix sch: <http://www.schema.org/> and make the
>>>> class Course a owl:Class, sch:Course .
>>>> is this correct?
>>>> also in the turtle rendering tab why it shows me the full IRIs from all
>>>> entities and not with the prefix?
>>>> _______________________________________________
>>>> 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
>>
>
>
>
> ---------- Forwarded message ----------
> From: stathoula terzidou <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 06:07:22 +0200
> Subject: Re: [protege-user] hello
> about the schema/Course how we should declare it i am bit confused in your
> file you made it like
> @prefix : <
> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#> .
> @prefix scem: <http://www.schema.org/> .
> scem:Course rdf:type owl:Class .
>
> shouldnt we just say
> :Course rdf:type owl:Class, scem:Course
>
> Στις Παρ 24 Ιαν 2025 στις 5:53 π.μ., ο/η Michael DeBellis <
> [email protected]> έγραψε:
>
>> Thanks, that makes sense.  I think your best bet (unless someone else on
>> the list has ideas) is to create an issue on their GitHub repo:
>> https://github.com/fekaputra/shacl-plugin  I'm also copying Andre who I
>> think is one of the main developers. Andre, please see thread below:
>>
>> On Thu, Jan 23, 2025 at 7:47 PM stathoula terzidou <[email protected]>
>> wrote:
>>
>>> just checked its from the shacl4protege plugin window>views>ontology
>>> views>turtle rendering
>>> when i open it it removes all the prefixes i created and also the empty
>>> one ' : '
>>>
>>> Στις Παρ 24 Ιαν 2025 στις 4:05 π.μ., ο/η Michael DeBellis <
>>> [email protected]> έγραψε:
>>>
>>>> Just realized I didn't answer your second question:
>>>>
>>>> also in the turtle rendering tab why it shows me the full IRIs from all
>>>>> entities and not with the prefix?
>>>>
>>>>
>>>> Not sure what you mean by the "turtle rendering tab". I don't see that
>>>> tab in the tabs under Window>Tabs   Do you mean just the ttl file that gets
>>>> generated when you save the ontology in Turtle format? I just checked and
>>>> it does indeed use the full IRIs. Not sure why. My guess is it may be a bit
>>>> more efficient and since most people seldom edit those ttl files directly
>>>> having the full IRIs doesn't really matter. The only time (unless you are
>>>> one of those developers who still thinks "real programmers use vi") you
>>>> should directly edit those files is when you have some unexplained behavior
>>>> because some weird character or something krept into your file.
>>>>
>>>> If you have a Turtle Rendering Tab in Protege my guess is you are using
>>>> some plugin that I'm not aware of that creates such a tab. If that's the
>>>> case please let us know.
>>>>
>>>> Michael
>>>>
>>>> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <
>>>> [email protected]> wrote:
>>>>
>>>>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking
>>>>> the + button. At first seems to create it but when switching tabs it
>>>>> disappears
>>>>> i have a class Course and want to use the schema.org/Course so i was
>>>>> thinking to create a prefix sch: <http://www.schema.org/> and make
>>>>> the class Course a owl:Class, sch:Course .
>>>>> is this correct?
>>>>> also in the turtle rendering tab why it shows me the full IRIs from
>>>>> all entities and not with the prefix?
>>>>> _______________________________________________
>>>>> 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
>>>
>> _______________________________________________
>> protege-user mailing list
>> [email protected]
>> https://mailman.stanford.edu/mailman/listinfo/protege-user
>>
>
>
>
> ---------- Forwarded message ----------
> From: Samson Tu <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 04:07:48 +0000
> Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL?
> Michael,
>
> Modeling agents' beliefs take you into the realm of epistemic logic
> <https://plato.stanford.edu/entries/logic-epistemic/>, which goes beyond
> first-order logic. I think punning is indeed the mechanism to simulate such
> logic in OWL 2.  However, I don’t understand your modeling of “Belief.” Why
> do you need such a class? Can’t you just have property assertions the
> Michael individual believes P, where P is a Proposition modeled using your
> hasSubject, hasPredicate, and hasObject properties? Maybe you can have an
> additional Boolean property, “isTrue,” to indicate whether proposition P is
> true or false. If P is (Cat1 isOn Mat1) maybe use a SWRTL rule to assert
> that P isTrue true if (Cat1 isOn Mat1) is in the ontology.  That way we can
> reason about whether Michael’s belief is true or false.
>
> Samson
>
> On Jan 23, 2025, at 4:16 PM, Michael DeBellis <[email protected]>
> wrote:
>
> 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
>
>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 23:16:03 -0800
> Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL?
>
>>  However, I don’t understand your modeling of “Belief.” Why do you need
>> such a class?
>
>
> Good question. First, I should clarify, I realize that as you pointed out
> I'm stretching what OWL can do and it may not be practical to even do this.
> This isn't a major focus of what i'm trying to do. The main focus is to
> create a Retrieval Augmented Generation architecture
> <https://www.michaeldebellis.com/post/integrating-llms-and-ontologies>
> like the one I developed last year with Nivedita Dutta as a clinical
> support tool but instead of having medical journal articles as that system
> did we will have documents related to climate change, climate obstruction,
> and greenwashing and there are a lot of documents out there. There are
> several online web sites we'll be pulling from and the search capabilities
> on those sites are very limited. My hope is this will be a tool where
> social scientists and other researchers can create much more sophisticated
> queries using the NLP and reasoning capabilities of ChatGPT and do more
> than queries, ask questions and get answers that are supported by curated
> documents, unlike the answers a traditional LLM gives.
>
> But I've had this desire to try and model beliefs in OWL for a while and I
> want to also try to do that here as well. To answer your question what I
> had in mind (which may be wrong, that's why I wanted feedback) is that a
> belief is something like "Christianity" that consists of a number of
> related propositions: "Jesus died for our sins", "Jesus was crucified and
> rose from the dead", "Jesus will return to Earth and judge the sinners vs.
> believers" etc. I could just make that a group of propositions but it
> seemed more intuitive to call that a Belief because we often talk about
> people "sharing beliefs".  In reality some social science research (e.g.,
> Scott Atran's paper The Trouble with Memes) shows that when people think
> they share beliefs they seldom believe the exact same propositions so that
> is an issue and maybe shared beliefs don't make sense. But that was the
> justification for a Belief concept that consists of one or more
> Propositions.
>
> Michael
> https://www.michaeldebellis.com/blog
>
> On Thu, Jan 23, 2025 at 8:08 PM Samson Tu <[email protected]> wrote:
>
>> Michael,
>>
>> Modeling agents' beliefs take you into the realm of epistemic logic
>> <https://plato.stanford.edu/entries/logic-epistemic/>, which goes beyond
>> first-order logic. I think punning is indeed the mechanism to simulate such
>> logic in OWL 2.  However, I don’t understand your modeling of “Belief.” Why
>> do you need such a class? Can’t you just have property assertions the
>> Michael individual believes P, where P is a Proposition modeled using your
>> hasSubject, hasPredicate, and hasObject properties? Maybe you can have an
>> additional Boolean property, “isTrue,” to indicate whether proposition P is
>> true or false. If P is (Cat1 isOn Mat1) maybe use a SWRTL rule to assert
>> that P isTrue true if (Cat1 isOn Mat1) is in the ontology.  That way we can
>> reason about whether Michael’s belief is true or false.
>>
>> Samson
>>
>> On Jan 23, 2025, at 4:16 PM, Michael DeBellis <[email protected]>
>> wrote:
>>
>> 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
>>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Thu, 23 Jan 2025 23:45:58 -0800
> Subject: Re: [protege-user] hello
>
>> about the schema/Course how we should declare it i am bit confused in
>> your file you made it like
>> @prefix : <
>> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#> .
>> @prefix scem: <http://www.schema.org/> .
>> scem:Course rdf:type owl:Class .
>
>
> shouldnt we just say
>> :Course rdf:type owl:Class, scem:Course
>
>
> I'm not sure why you think it should be:
>
> :Course rdf:type owl:Class, scem:Course
>
>
> "scem:Course rdf:type owl:Class" is a valid triple but ":Course rdf:type
> owl:Class, scem:Course" is not unless you are trying to say that Course has
> type Course. You can have multiple values for the object of a triple
> separated by a comma. E.g., from that US geography simple ontology you
> could say: :USA :contains :California, :Arizona. But I don't think it makes
> sense to make an instance be an instance of itself. Also, I don't
> understand why you use :Course the first time and scem:Course the second
> time. FYI, when people use just the colon there is still a prefix, it is
> just the empty string. That's what Protege does for the namespace of your
> ontology creates a mapping to the empty string prefix so you can just do
> :Course (although Protege is smart enough that you don't even need the
> ":"). But since I was inserting the IRI for the Course concept from
> schema.org into an existing ontology (which is what I thought you were
> trying to do) I couldn't use the empty string prefix because that would map
> to my ontology iri and be:
> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#Course
> rather than http://www.schema.org/Course which is what I thought you
> wanted. Hope this is making sense, it's late and has been a long day.
> Anyway, let me know what you think and we'll figure it out.
>
> Michael
>
>
>
>
> On Thu, Jan 23, 2025 at 8:07 PM stathoula terzidou <[email protected]>
> wrote:
>
>> about the schema/Course how we should declare it i am bit confused in
>> your file you made it like
>> @prefix : <
>> http://www.semanticweb.org/mdebe/ontologies/2025/0/us_geography#> .
>> @prefix scem: <http://www.schema.org/> .
>> scem:Course rdf:type owl:Class .
>>
>> shouldnt we just say
>> :Course rdf:type owl:Class, scem:Course
>>
>> Στις Παρ 24 Ιαν 2025 στις 5:53 π.μ., ο/η Michael DeBellis <
>> [email protected]> έγραψε:
>>
>>> Thanks, that makes sense.  I think your best bet (unless someone else on
>>> the list has ideas) is to create an issue on their GitHub repo:
>>> https://github.com/fekaputra/shacl-plugin  I'm also copying Andre who I
>>> think is one of the main developers. Andre, please see thread below:
>>>
>>> On Thu, Jan 23, 2025 at 7:47 PM stathoula terzidou <[email protected]>
>>> wrote:
>>>
>>>> just checked its from the shacl4protege plugin window>views>ontology
>>>> views>turtle rendering
>>>> when i open it it removes all the prefixes i created and also the empty
>>>> one ' : '
>>>>
>>>> Στις Παρ 24 Ιαν 2025 στις 4:05 π.μ., ο/η Michael DeBellis <
>>>> [email protected]> έγραψε:
>>>>
>>>>> Just realized I didn't answer your second question:
>>>>>
>>>>> also in the turtle rendering tab why it shows me the full IRIs from
>>>>>> all entities and not with the prefix?
>>>>>
>>>>>
>>>>> Not sure what you mean by the "turtle rendering tab". I don't see that
>>>>> tab in the tabs under Window>Tabs   Do you mean just the ttl file that gets
>>>>> generated when you save the ontology in Turtle format? I just checked and
>>>>> it does indeed use the full IRIs. Not sure why. My guess is it may be a bit
>>>>> more efficient and since most people seldom edit those ttl files directly
>>>>> having the full IRIs doesn't really matter. The only time (unless you are
>>>>> one of those developers who still thinks "real programmers use vi") you
>>>>> should directly edit those files is when you have some unexplained behavior
>>>>> because some weird character or something krept into your file.
>>>>>
>>>>> If you have a Turtle Rendering Tab in Protege my guess is you are
>>>>> using some plugin that I'm not aware of that creates such a tab. If that's
>>>>> the case please let us know.
>>>>>
>>>>> Michael
>>>>>
>>>>> On Thu, Jan 23, 2025 at 6:14 AM stathoula terzidou <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> i try to add a prefix from the 'Ontology Prefixes' tab and clicking
>>>>>> the + button. At first seems to create it but when switching tabs it
>>>>>> disappears
>>>>>> i have a class Course and want to use the schema.org/Course so i was
>>>>>> thinking to create a prefix sch: <http://www.schema.org/> and make
>>>>>> the class Course a owl:Class, sch:Course .
>>>>>> is this correct?
>>>>>> also in the turtle rendering tab why it shows me the full IRIs from
>>>>>> all entities and not with the prefix?
>>>>>> _______________________________________________
>>>>>> 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
>>>>
>>> _______________________________________________
>>> 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
>>
>
>
>
> ---------- Forwarded message ----------
> From: Robert Goldman <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 09:23:41 -0600
> Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL?
>
> To follow up, there's a pretty extensive literature on the uses of
> epistemic logic in GOFAI: I remember taking a class in it during graduate
> school longer ago than I care to mention here.
>
> The core challenge that arises is that quantifying over predicates in
> general, leads to second order logic, which is either unsound or
> incomplete. It lets you encode paradoxical statements about beliefs, see Russell's
> Paradox <https://en.wikipedia.org/wiki/Russell's_paradox>.
>
> To avoid these paradoxes, logicians developed first order logic, which is
> not subject to them, but that also removes obvious approaches to epistemic
> reasoning.
>
> AFAIK, there are broadly speaking two approaches to overcoming the
> limitations of first order logic with respect to epistemics:
>
>    1.
>
>    Modal logics of knowledge and belief. These give only limited second
>    order reasoning using modal operators, often characterized as belief and
>    knowledge. Briefly, one characterizes belief in terms of possible worlds.
>    We say that an agent believes that we exist in one of a number of possible
>    worlds, but absent perfect knowledge, does not know which one. A
>    proposition (better term to use than "fact" in this context) is believed if
>    it is true in at least one of the possible worlds, and known if it is true
>    in all possible worlds. Note that "plausible" might be a better term than
>    "believed" for this...
>
>    You might think of this approach as being akin to your named graphs
>    approach. The named graphs represent possible worlds, and you can think of
>    belief relations (modalities) as relations between an agent and one or more
>    named graphs.
>
>    Note, btw, that modal logics often have more complex accessibility
>    relations than just possible worlds. A "possible world" is possible because
>    it's "belief accessible." One might have more refined relations such as
>    preferred worlds, etc.
>    2.
>
>    String encodings. Encode beliefs as strings in the logic. Paradoxes
>    aren't possible because the strings are not themselves formulas of the
>    logic: instead they are objects to be manipulated by the logic. I suppose
>    punning is a rough equivalent of this approach. It can be challenging
>    because if strings are just arbitrary data, you must develop a complex set
>    of formulas to capture what one can conclude about agents' beliefs in
>    strings. P.S. Note: don't read too much into the term "string" here! This
>    is not a commitment to ordered lists of byte codes as data representations!
>    Just that the representations are effectively string-like. Most actual
>    schemes will use some representation -- s-expressions, or equivalent
>    tree-like structures -- that has more syntax than just programming language
>    strings.
>
> As I said, there's a pretty expansive literature about this, so you can
> probably avoid some unforced errors by doing a little literature review.
> Ernie Davis's Representations of Commonsense Knowledge
> <https://cs.nyu.edu/~davise/rck/rck.html>, available on line, is probably
> a good place to start.
>
> Cheers,
> R
>
> On 23 Jan 2025, at 22:07, Samson Tu wrote:
>
> Michael,
>
> Modeling agents' beliefs take you into the realm of epistemic logic
> <https://plato.stanford.edu/entries/logic-epistemic/>, which goes beyond
> first-order logic. I think punning is indeed the mechanism to simulate such
> logic in OWL 2.  However, I don’t understand your modeling of “Belief.” Why
> do you need such a class? Can’t you just have property assertions the
> Michael individual believes P, where P is a Proposition modeled using your
> hasSubject, hasPredicate, and hasObject properties? Maybe you can have an
> additional Boolean property, “isTrue,” to indicate whether proposition P is
> true or false. If P is (Cat1 isOn Mat1) maybe use a SWRTL rule to assert
> that P isTrue true if (Cat1 isOn Mat1) is in the ontology.  That way we can
> reason about whether Michael’s belief is true or false.
>
> Samson
>
> On Jan 23, 2025, at 4:16 PM, Michael DeBellis <[email protected]>
> wrote:
>
> 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
>
>
>
>
> ---------- Forwarded message ----------
> From: "Wartik, Steven P \"Steve\"" <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 15:25:15 +0000
> Subject: Re: [protege-user] [EXT] Modeling Beliefs in OWL?
>
> 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
>
>
>
>
> ---------- Forwarded message ----------
> From: Rob Bastholm <[email protected]>
> To: [email protected]
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 11:32:28 -0500
> Subject: [protege-user] Visualizing Object Properties
> I'm developing a large human factors ontology with many object properties
> that connect classes, e.g., AirTrafficController has *some* WorkingMemory.
> However, there is a problem with object properties:
>
> I cannot seem to find a visualizer that shows the connections between
> classes other than what is shown in the hierarchy in Protege's left panel.
> In the working memory example above, Human is a class at owl:Thing >
> Component > Human > AirTrafficController, and Working Memory is a class at
> owl:Thing > Taxonomy > HumanFactor > Memory > WorkingMemory. When I show it
> in OntoGraf or OWLViz, they only show the hierarchical connections in these
> two paths, but they don't show AirTrafficController connecting to
> WorkingMemory.
>
> Is there a visualizer that will do so? OntoViz looks promising, but it
> hasn't been updated since 2007, and I'm unable to install it due to a
> dependency on an older version of Java.
>
> Thank you for any help you can provide.
>
>
>
> ---------- Forwarded message ----------
> From: "Balhoff, Jim" <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 17:01:24 +0000
> Subject: Re: [protege-user] Visualizing Object Properties
> The OAK (Ontology Access Kit) python library can generate diagrams based
> on existential relations. This page has some examples of the output:
> https://incatools.github.io/ontology-access-kit/guide/relationships-and-graphs.html
>
> Some more information:
> https://incatools.github.io/ontology-access-kit/cli.html#runoak-viz
>
>
> On Jan 24, 2025, at 11:32 AM, Rob Bastholm <[email protected]> wrote:
>
> You don't often get email from [email protected]. Learn why this is
> important <https://aka.ms/LearnAboutSenderIdentification>
> I'm developing a large human factors ontology with many object properties
> that connect classes, e.g., AirTrafficController has *some* WorkingMemory.
> However, there is a problem with object properties:
>
> I cannot seem to find a visualizer that shows the connections between
> classes other than what is shown in the hierarchy in Protege's left panel.
> In the working memory example above, Human is a class at owl:Thing >
> Component > Human > AirTrafficController, and Working Memory is a class at
> owl:Thing > Taxonomy > HumanFactor > Memory > WorkingMemory. When I show it
> in OntoGraf or OWLViz, they only show the hierarchical connections in these
> two paths, but they don't show AirTrafficController connecting to
> WorkingMemory.
>
> Is there a visualizer that will do so? OntoViz looks promising, but it
> hasn't been updated since 2007, and I'm unable to install it due to a
> dependency on an older version of Java.
>
> Thank you for any help you can provide.
> _______________________________________________
> protege-user mailing list
> [email protected]
> https://mailman.stanford.edu/mailman/listinfo/protege-user
>
>
>
>
>
> ---------- Forwarded message ----------
> From: Michael DeBellis <[email protected]>
> To: User support for WebProtege and Protege Desktop <
> [email protected]>
> Cc:
> Bcc:
> Date: Fri, 24 Jan 2025 09:48:36 -0800
> Subject: Re: [protege-user] Visualizing Object Properties
> I'm not sure if this is what you are looking for but here's an example of
> a SPARQL query that returns the domain and range for all object classes and
> then a Graphic view of the results. There aren't very many object
> properties with a domain and range because I'm currently building something
> on the Gist upper model from Semantic Arts and and because its an upper
> model, many of the object properties don't have a domain or range so I
> didn't match much. I just used this because it was the model I have loaded
> now in AllegroGraph.  These are using the Gruff visualizer in AllegroGraph.
> This is the free version so you can use it as long as your ontology has
> less than 5M triples. The easiest way to use it is probably their hosted
> version, you can just create an account and start working with it. I think
> the hosted version has Gruff but not certain because I run it on Ubuntu on
> my PC using WSL.
>
> The "no type" for the owl:ObjectProperty node is because I haven't run the
> reasoner on this ontology. This isn't a very pretty graph because I didn't
> spend much time on it but Gruff is pretty flexible and if you want to show
> the domain and range for object properties this is one way to do it. If you
> have questions about how to load AllegroGraph probably better to email me
> directly: [email protected] BTW, the other major triplestore vendors
> such as Stardog and Ontotext also have capabilities like this. Actually, I
> think OntoText does but haven't looked at it in terms of graphic
> visualization but I know Stardog does. To compare the two: IMO the Stardog
> tool is a bit more aesthetically appealing because its newer. I especially
> like the way you can show instances contained in classes in it. But while
> Gruff doesn't look quite as nice as Stardog, it has many more capabilities
> in terms of different ways you can graph things, do layout, etc.
>
> [image: GruffDAndR.png]
>
> [image: DRGraph.png]
>
> On Fri, Jan 24, 2025 at 8:33 AM Rob Bastholm <[email protected]>
> wrote:
>
>> I'm developing a large human factors ontology with many object properties
>> that connect classes, e.g., AirTrafficController has *some* WorkingMemory.
>> However, there is a problem with object properties:
>>
>> I cannot seem to find a visualizer that shows the connections between
>> classes other than what is shown in the hierarchy in Protege's left panel.
>> In the working memory example above, Human is a class at owl:Thing >
>> Component > Human > AirTrafficController, and Working Memory is a class at
>> owl:Thing > Taxonomy > HumanFactor > Memory > WorkingMemory. When I show it
>> in OntoGraf or OWLViz, they only show the hierarchical connections in these
>> two paths, but they don't show AirTrafficController connecting to
>> WorkingMemory.
>>
>> Is there a visualizer that will do so? OntoViz looks promising, but it
>> hasn't been updated since 2007, and I'm unable to install it due to a
>> dependency on an older version of Java.
>>
>> Thank you for any help you can provide.
>> _______________________________________________
>> 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
DRGraph.png (image/png, 134.9 KB) - not displayed
GruffDAndR.png (image/png, 151.5 KB) - not displayed
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.