W3C home > Mailing lists > Public > semantic-web@w3.org > June 2020

Re: Blank nodes semantics - existential variables?

From: Antoine Zimmermann <antoine.zimmermann@emse.fr>
Date: Tue, 30 Jun 2020 15:45:02 +0200
To: thomas lörtsch <tl@rat.io>
Cc: Patrick J Hayes <phayes@ihmc.us>, Eric Prud'hommeaux <eric@w3.org>, Semantic Web <semantic-web@w3.org>
Message-ID: <3e0c537d-f3f1-193f-a912-6dd9fea0f87e@emse.fr>
Thomas,


Just a side note: the standard semantics of RDF does not tell you what 
to do inside your system. For instance, while:

<Bob> <has> _:b1, _:b2 .

is logically equivalent to:

<Bob> <has> _:x .

It does not mean that your system should display the first graph 
identically to the second graph. You can decide to do things differently 
with a graph that has 2 triples from a graph that has 1 triple, even if 
they are equivalent.

Similarly, you can deal differently with a graph that contains all of 
its entailed triples and one that is concise.

You can also apply a special custom semantics to some properties or 
classes or terms, for the sake of your application (which is what some 
triplestores do).

The only thing that you should not do is to assume that an arbitrary 
graph found at an arbitrary place on the Web entails things differently 
from the standard.

When you only use RDF as a convenient graph data structure for a private 
database, you could almost do whatever you like. Just make sure that the 
users of the database know about the custom semantics you are applying 
to your data.


In passing, I'd like to add a use case for existential variables that 
has not been mentioned and is absolutely crucial: in the RDF-based 
interpretation of OWL, bnodes being existential is essential. The 
RDF-based semantics of OWL would be completely disconnected from its 
direct semantics if bnodes were not interpreted as existential variables.


--AZ

Le 30/06/2020 à 14:55, thomas lörtsch a écrit :
> 
> 
>> On 30. Jun 2020, at 08:59, Patrick J Hayes <phayes@ihmc.us> wrote:
>>
>>
>>
>>> On Jun 29, 2020, at 5:33 PM, thomas lörtsch <tl@rat.io> wrote, replying to Antoine Zimmermann:
>>> …
>>> .
>> ...
>>> ... By any account FOL is very useful and expressive, but it requires skills and careful crafting - not everybody finds that intuitive. It’s well known that people struggle with Modus Tollens
>>
>> Not always. Consider someone saying “If he had set off on time, he would be here by now” when in fact he is not there by then. That is a modus tollens that everyone understands without any effort at all.
>>
>>> just as they struggle with understanding exponential growth rates, no matter how useful, old etc those concepts are.
>>> However my main point is maybe a bit different. I think it has to do with the situation of the author, maybe the social dimension of writing down some triples.
>>
>> Social?? Read on.
>>
>>>
>>>> What may seem unintuitive is the peculiar representation that RDF uses. While in a formula like:
>>>>
>>>> ∃x∃y (has(Bob,x) ∧ has(Bob,y))
>>>>
>>>> it is clear and explicit that x and y are existentially quantified, and what the scope of the quantification is,
>>>
>>>> in RDF, on the contrary, quantification is implicit because bnodes can only be used existentially (not universally) and their scope is always that of the RDF graph under consideration.
>>>
>>>
>>>> If b1 and b2 are blank nodes, then the RDF graph:
>>>>
>>>> { (<Bob>, <has>, b1), (<Bob>, <has>, b2) } is exactly equivalent to a FOL formula:
>>>>
>>>> ∃x∃y (Triple(<Bob>,<has>,x) ∧ Triple(<Bob>,<has>,y))
>>>
>>> I had this line in mind and it gives two existentials, x and y. To me two existentials are intuitively not the same as one existential.
>>>
>>>> which is itself exactly FOL-equivalent to:
>>>>
>>>> ∃z (Triple(<Bob>,<has>,z))
>>>
>>> I didn’t see that coming (and it’s the core of my problem).
>>>
>>>> which is also FOL-equivalent to:
>>>>
>>>> ∃a∃b∃c (Triple(<Bob>,<has>,a) ∧ Triple(<Bob>,<has>,b) ∧ Triple(<Bob>,<has>,c))
>>>
>>> Or even that. I have only a vague understanding about the reasons for such simplifications and the consequences they have. I’m sure they are very useful in logic
>>
>> Its not a question of utility. The point is that these /mean the same thing/. They have exctly the same truth conditions.
> 
> I’m not a logician but I know the difference between a definition and a self-evident truth. This here is a definition as part of a logic formalism and so hopefully motivated by utility.
> 
>>> just like it can be useful in mathematics to get rid of variables. However...
>>>
>>> ...if I envision a situation where the initial statements "Bob has something (x)." and "Bob has something (y)." materialize out of the blue, without futher attributions, leaning x and y to z sure makes sense and is indeed intuitive. It’s like imagining somebody saying "Bob has something" over and over again, maybe absent-minded or even disturbed. All "Bob has something" utterings ammount to the same one statement.
>>
>> But the RDF setting is not like a 2-person conversation. RDF is supposed to be used for putting information all over the Web, from where it can be browsed and combined to allow engines to draw conclusions from data possibly, in fact normally, pulled from many independent sources. So suppose DBpedia says that Bill has something and YAGO also says that Bob has something, agreeing with DBpedia. Would you conclude that Bob must have two things? After all, those two sources are each saying /exactly the same thing/, so why would you think that taken together, they should imply something more?
> 
> I’m not talking about integrating data from different sources. The example is about two statements in one graph.
> 
>>> However a more realistic (or "social", if I may) scenario
>>
>> Yes, exactly. RDF is not intended for having social conversations. Gricean rules of conversational norms do not apply.
>>
>>> is that somebody authored those two statements and added them both to the graph to express that there are two things that Bob has and that are worth mentioning.
>>
>> But what if two people authored them independently? See above.
>>
>>> Maybe other statements are to be added later, like the small and big attributes in your example below. Maybe the statements are just a beginning, a stub for more to come. That’s the scenario I had in mind and in that scenario it is not intuitive at all that the two blank nodes get leaned. It might make me yell at my computer "What do you think I’m doing here? Do you think I typed those TWO statements just for fun? etc etc".
>>>
>>> The way that FOL uses existentials is not necessarily the only way they can be understood
>>
>> If you can come up with a different semantics, I would be interested to see it.
>>
>>> and this is where intuition can very well break. I don’t want to develop too many theories just yet but I suspect that one could argue that FOL presupposes some conditions that are not necessarily a given in normal human communications, or even run counter a normal authoring process like e.g an unfolding text with place holders and vague but distinct references.
>>
>> These social or narrative uses of natural language certainly involve all kinds of meaning conventions that go beyond FOL, in fact beyond any logic yet formalized by anyone. Check out Gricean implicature for a start:
>> https://plato.stanford.edu/entries/grice/
>> https://plato.stanford.edu/entries/implicature/
>>
>> But those are the complicated cases with elaborate presuppositions, not the comparative simplicity of FOL.
>>
>>> And then they become counter intuitive, no matter how logical and sound they are within the closed system of FOL. This is not to say that one way is more right than the other. Logic has certain powers just as composing, but they have different rules - and they may clash when RDF is authored.
>>>
>>>> An existential variable (or a blank node) does not identify anything. It only mentions the existence of a thing. If I say that there exist a person that lived more than 10 years, I'm not referring to anyone in particular. I'm just stating the existence of such a thing.
>>>
>>>> Now, as in FOL, it is necessary to have infinitely many variables, because I can qualify more precisely the things of which I'm stating the existence. I may say:
>>>>
>>>> "Bob has something big. Bob has something small."
>>>>
>>>> which is not the same as saying:
>>>>
>>>> "Bob has something that is big and small."
>>>>
>>>>
>>>> In RDF, compare:
>>>>
>>>> <Bob> <has> [ <is> <Small> ] .
>>>> <Bob> <has> [ <is> <Big> ] .
>>>>
>>>> and:
>>>>
>>>> <Bob> <has> [ <is> <Small>, <Big> ] .
>>>>
>>>> In the first case, I need two blank nodes, because, although the second graph entails the first, they are not equivalent. According to the first graph, it is still possible that it describes a world where a small thing is never big and vice versa.
>>>
>>> Now imagine a secnario where the small/big attributions are not made _yet_. FOL will lean away what the author might have meant to merely hint at or explain in more detail later.
>>> I only now realized that in my initial mail I had made the implicit assumption the example
>>>>>>>> Bob has _:b1
>>>>>>>> Bob has _:b2
>>> is just a starting point to which later statements like
>>> 	_:b1 is Small
>>> 	_:b2 is Big
>>> may be added.
>>
>> Then why in God’s name are you making all this fuss? If you have only half-finished writing something then of course it might not mean what you have in mind, yet.
> 
> Half-finished writing is not something so uncommon and the semantic web is all about incomplete data. You may be well aware how all this fits together, but I’m not. I rather think there’s a gap between the unruly ways in which statements come to life, which is a social activity no matter how many people are involved, and the rules that (FO) logic enforces. To me that gap is not easily recognizable but rather a can of worms, an uneasy feeling that unpleasant surprises lurk behind every next corner. That’s MY problem, but given the frustration that RDF semantics induce in many people maybe it is also A problem. Eric’s list of applications that treat blank nodes the way I intuitively think they should - and in contrast to what the RDF semantics suggest - does indeed hint at a more general situation than just me being a fussy and very mediocre logician (if at all).
> 
>> If you stop typing halfway through a URI, the RDF will not make much sense either.
>>
>>> At that point RDF wouldn’t lean those two bnodes into one anymore, right?
>>
>> Right.
> 
> Thanks. I recently learned that truth in RDF is encoded in the single statement, not in combinations of statements. Because of that I asked this question. Well, I start to see that leaning one existential away is something else than saying that the satement is false but I still have to fully digest that.
> 
>>>
>>>> Note that in these latter examples, I do not even need a bnode identifier, because I merely state the existence of a thing, I do not identify anything. But due to the limitation of digital representations, we have to serialise every graphs as a string of character, such that it becomes necessary, in some cases, to introduce back references in the form of bnode identifiers. bnode id are not names for things. They are just tools that allow a linear representation of arbitrary graphs.
>>>
>>> I (think I) did and do understand what you say about bnodes.
>>>
>>>> If you can draw your graphs on surfaces, you can reuse the same symbol all the time for every blank node, such as an empty ellipse of constant size.
>>>
>>> The different x/y coordinates on that surface disambiguate the circles. Circles in different positions stand for different somethings.
>>
>> No. They are (not ’stand for’, but actually ARE) different blank nodes, but those do not necessarily refer to different things.
> 
> If this is your definition of "intuitive" then we probably just have to agree to disagree on our intuitions about intuitiveness. Again, I’m not saying it makes no sense and I’m not offering a new semantics for FOL (I find the perspective that Ross Horne provides in another reply very interesting but I’m really not in the position to assess its ramifications). But it contradicts my expectations and apparently I’m not alone. So if it can’t be changed it might at least need a better explanation or/and a more explicit handling in applications.
> 
>> That is what we are arguing about here.
> 
> Actually I’m not arguing, I’m asking because I’m not understanding. I’m giving examples of how I understand things. Those examples are not meant to be better alternatives to FOL or anything else. I do however reject the notion that FOL is so pretty and perfect and in all other cases just right and therefor intuitive by default.
> 
> Thomas
> 
> 
>> Pat
>>
>>
> 

-- 
Antoine Zimmermann
Institut Henri Fayol
École des Mines de Saint-Étienne
158 cours Fauriel
CS 62362
42023 Saint-Étienne Cedex 2
France
Tél:+33(0)4 77 42 66 03
Fax:+33(0)4 77 42 66 66
http://www.emse.fr/~zimmermann/
Member of team Connected Intelligence, Laboratoire Hubert Curien
Received on Tuesday, 30 June 2020 13:45:17 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 08:46:04 UTC