Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A formal background to unify triples and triple terms #87

Open
franconi opened this issue Feb 7, 2025 · 54 comments · May be fixed by #91
Open

A formal background to unify triples and triple terms #87

franconi opened this issue Feb 7, 2025 · 54 comments · May be fixed by #91
Labels
spec:substantive Change in the spec affecting its normative content (class 3) –see also spec:bug, spec:new-feature

Comments

@franconi
Copy link
Contributor

franconi commented Feb 7, 2025

We can make use of the following definitions to introduce the unified view between triple terms and triples, corresponding to their semantic counterparts propositions and facts respectively.

For each interpretation I we define the set IPR of propositions (i.e., denotation of triple terms) of the interpretation as
IPR={ <s, p, o> | s ∈ IR, p ∈ IP, o ∈ IR },
and the set F of all facts of the interpretation as
F = { <s, p, o> | <s, o> ∈ IEXT(p) },
so that the following hold:
I(<<(s p o)>>) ∈ IPR.
F ⊆ IPR,

Given a ground graph G and an interpretation I, the set of facts asserted by G is
GEXT(G) = { (I(s),I(p),I(o)) | (s p o.) ∈ G and <I(s), I(o)> ∈ IEXT(I(p)) }.

An interpretation I is a model of a graph G if and only if the following holds:
I ⊨ G iff GEXT(G) ⊆ F ⊆ IPR

We can discuss here whether this is correct, meaningful, and/or useful.

@niklasl
Copy link
Contributor

niklasl commented Feb 7, 2025

I definitely find this correct, meaningful, and useful!

A detail: is it clearer to keep <<(s p o)>> above, where s, p, o are terms, but replace those in the comprehensions with x, y, z? (Given that in the sets they are resources/properties; such that x = [I+A](s). y = I(p). z = [I+A](o)..)

@franconi
Copy link
Contributor Author

franconi commented Feb 8, 2025

OK. Moreover, I changed GEXT to FEXT -- the set of facts asserted by G. I also dealt with non-ground graphs.

For each interpretation I we define the set IPR of propositions (i.e., denotation of triple terms) of the interpretation as
IPR={ <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR },
and the set F of all facts of the interpretation as
F = { <x, y, z> | <x, z> ∈ IEXT(y) };
the following hold for each interpretation I and each triple term <<(s p o)>>:
I(<<(s p o)>>) ∈ IPR,
F ⊆ IPR.

Given a ground graph G and an interpretation I, the set of facts asserted by G is
FEXT(G) = { (I(s),I(p),I(o)) | (s p o.) ∈ G and <I(s), I(o)> ∈ IEXT(I(p)) }.

An interpretation I is a model of a ground graph G if and only if the following holds:
I ⊨ G iff FEXT(G) ⊆ F ⊆ IPR.

We can easily extend the above to non-ground graphs:
FEXT(G,A) = { ([I+A](s),I(p),[I+A](o)) | (s p o.) ∈ G and <[I+A](s), [I+A](o)> ∈ IEXT(I(p)) },
I ⊨ G iff ∃ A.FEXT(G,A) ⊆ F ⊆ IPR.

@franconi
Copy link
Contributor Author

franconi commented Feb 9, 2025

We could add these definitions in RDF-semantics, and then use them in RDF-concepts.

@TallTed
Copy link
Member

TallTed commented Feb 9, 2025

I mostly like the way this is going. I am OK with the term "propositions" replacing what had been referred to as "quoted triples", but I would like to avoid "facts", "truths", and similar absolutisms. "Assertions", "claims", "statements", "postulates" — something like these would be better.

@gkellogg
Copy link
Member

gkellogg commented Feb 9, 2025

We could add these definitions in RDF-semantics, and then use them in RDF-concepts.

Generally, layering of specs would favor definitions that are used in concepts to be defined in concepts, and referenced elsewhere. Semantics layers on top of Concepts.

@franconi
Copy link
Contributor Author

We could add these definitions in RDF-semantics, and then use them in RDF-concepts.

Generally, layering of specs would favor definitions that are used in concepts to be defined in concepts, and referenced elsewhere. Semantics layers on top of Concepts.

Still, these are formal definitions which belong to semantics. As usual, these notion will be introduced in Concepts, but their formal definition should be in Semantics, I believe.

@franconi
Copy link
Contributor Author

franconi commented Feb 10, 2025

I would like to avoid "facts", "truths", and similar absolutisms. "Assertions", "claims", "statements", "postulates" — something like these would be better.

You suggest not to use the word facts.
We cannot use statements, since it clashes with the legacy rdf:Statement.
We cannot use assertions since we cannot say asserted assertions.
Similarly, asserted claims or asserted postulates do not work.

Remember what are we talking about here:

  • F is the set of everything which is true in an interpretation, namely in a world, and I call it the set of facts true in that interpretation -- clearly F ⊆ IPR, since IPR is the set of all possible truths;
  • FEXT(G) is the set of whatever is true in an interpretation because it has been stated in the graph, and I call it the set of facts asserted to be true in that interpretation -- clearly FEXT(G) ⊆ F if the interpretation is a model of G.

I am calling facts the set F, and asserted facts by G the set FEXT(G).

Open to any reasonable alternative name.

@afs
Copy link
Contributor

afs commented Feb 10, 2025

We could add these definitions in RDF-semantics, and then use them in RDF-concepts.

Generally, layering of specs would favor definitions that are used in concepts to be defined in concepts, and referenced elsewhere. Semantics layers on top of Concepts.

Still, these are formal definitions which belong to semantics. As usual, these notion will be introduced in Concepts, but their formal definition should be in Semantics, I believe.

Concretely, which items of terminology are being proposed for RDF Concepts?

To semantics, the text in RDF Concept would be description. To someone reading RDF Concepts, they should be able to get a working understanding of the concept (:smile:) without needing to go elsewhere.

A <dfn> gives the wording of terminology. e.g. <dfn>triple term</dfn> and a natural language definition. RDF Concepts could explain "facts asserted by G"; but writing GEXT(G) = is something for semantics.

See section https://www.w3.org/TR/rdf12-semantics/#notation where there are cross-links.

See also w3c/rdf-concepts#118

@franconi
Copy link
Contributor Author

franconi commented Feb 10, 2025

Concretely, which items of terminology are being proposed for RDF Concepts?

Add the following text at the end of 5.3 Properties of simple entailment in Semantics, introducing three new items of terminology (BTW, I got rid of the word fact):

The following semantic properties relate triple terms and asserted triples in a graph.

We define the <dfn>set of all possible propositions</dfn> as follows:
<p class="fact"> The set of all possible propositions in an interpretation I is IPR(I) = { <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR }; it is easy to see that the set of all possible propositions is isomorphic to the set including the denotation of all triple terms (namely the codomain of the mapping RE). </p>

We define the <dfn>set of all true propositions</dfn> as follows:
<p class="fact"> The set P of all the true propositions in an interpretation I is P(I) = { <x, y, z> | <x, z> ∈ IEXT(y) }; it is easy to see that P(I) is a subset of the set of all possible propositions IPR(I). </p>

Given a mapping A, we define the <dfn>set of all propositions asserted by a graph G</dfn> as follows:
<p class="fact"> The set of all propositions asserted by a graph G with a blank node mapping A in an interpretation I is PEXT(G,I,A) = { ([I+A](s),I(p),[I+A](o)) | (s p o.) ∈ G and <[I+A](s), [I+A](o)> ∈ IEXT(I(p)) }; it is easy to see that I(G) = true, namely I simply satisfies G, if the set of all propositions asserted by G is a subset of set of all true propositions for some blank node mapping, otherwise I(G)= false.</p>



The RDF-Concepts spec can use the above three items of terminology while explaining what are triples, asserted triples, and triple terms.

I can start a PR with the above additions, if I find enough consensus on this issue.

@franconi
Copy link
Contributor Author

franconi commented Feb 10, 2025

And we can add the following as well:

We can now have an alternative definition of simple entailment.
<p class="fact"> A graph G simply entails a graph E if the set of interpretations such that the set of all propositions asserted by G is a subset of set of all true propositions for some blank node mapping is a subset of the set of interpretations such that the set of all propositions asserted by E is a subset of set of all true propositions for some blank node mapping. </p>

@franconi
Copy link
Contributor Author

In RDF-Concepts we can say something along the following lines.

A triple term denotes a resource of type rdfs:Proposition; the extension of the rdfs:Proposition class corresponds to the set of all possible propositions, as defined in Semantics.
The triples asserted in a graph correspond to the set of asserted propositions, as defined in Semantics; the set of asserted propositions is a subset of all possible propositions.
Etc etc

@afs
Copy link
Contributor

afs commented Feb 10, 2025

The RDF-Concepts spec can use the above three items of terminology while explaining what are triples, asserted triples, and triple terms.

<dfn>ABC-DEF<dfn> will cause there to be a anchor id="#dfn-abc-def" for use in an <a> in another document. ReSpec gives some help in writing links; it ends up as <a href="https://www.w3.org/TR/rdf12-semantics/#dfn-abc-def"`> in the final HTML.

The list of terminology defined in RDF Semantics is given here: https://www.w3.org/TR/rdf12-semantics/#index

For example, semantics does not give a definition "entailment". It defines "entailment regime" <dfn>entailment regime</dfn>.
It has #dfn-entail in section 5.2 (in simple entailment) where the text is "simply entails" and it links to concepts which explains entailment.

For the reader of RDF Concepts, there needs to be text that explains what the intuition is for, "proposition", "asserted" etc . I think that goes in RDF Concepts and the "average reader" does need to jump over to RDF Semantics. (c.f. the introduction to RDF Semantics.)

A <dfn>proposition</dfn> is ...

or

A <dfn data-cite="RDF12-SEMANTICS#dfn-proposition"> is ...

@TallTed
Copy link
Member

TallTed commented Feb 10, 2025

[@franconi] Open to any reasonable alternative name.

I want to avoid calling triples facts, truths, and the like because graphs can be constructed that describe nonsense universes — universes outside our universe of experience, confined to our imagination, where, for instance, π == 3. That is not a fact, because, in our universe, π == 3.141459....

Delving into terms used in philosophy, a couple of quotes --

from https://www.quora.com/What-is-the-difference-between-theory-law-postulate-and-hypothesis-in-physics

Postulate: An accepted foundational assumption.

from https://philosophy.stackexchange.com/a/53365

A postulate is some assumption which you consider true simply for the sake of argument. It may not be true.

With the above as foundation, I think it reasonable and not inaccurate to call triples in the graph (what you've called "facts") postulates, and triple_terms (i.e., triples outside the graph) propositions (what you've called the same). The words "asserted" and "unasserted" play no part.

@franconi
Copy link
Contributor Author

Ted, the notion of truth is everywhere in RDF specs. A triple may (or may not) be true in an interpretation. A triple in a graph singles out all the interpretations in which it is true. A triple in a graph means that some relationship, indicated by the predicate, holds true between the resources denoted by the subject and object. A graph entails another graph if all the true facts of the latter are true facts also of the former. I can write in a graph :pi owl:sameAs "3". and this becomes a true fact in the knowledge I am modelling. Good modelling is of course important for RDF, but the semantics of a graph has nothing to do with it.

@doerthe
Copy link
Contributor

doerthe commented Feb 11, 2025

I have different comments:

  1. I really like the set of facts and would not call them true propositions because here, the name really meets the essence: whatever is true according to our interpretation is a fact for that interpretation. So, we do not make false claims here but use the semantics.

  2. I am really happy that with this definition we can finally get rid of the injectivity of RE, RE can now map <(s,p,o)> to (I(s), I(p), I(o)) (or alternatively start at (s,p,o) as it is currently the case, then it is the identity function). The mapping is still injective, but not only because we say so.

  3. I liked from above

Given a ground graph G and an interpretation I, the set of facts asserted by G is
GEXT(G) = { (I(s),I(p),I(o)) | (s p o.) ∈ G and <I(s), I(o)> ∈ IEXT(I(p)) }.

An interpretation I is a model of a graph G if and only if the following holds:
I ⊨ G iff GEXT(G) ⊆ F ⊆ IPR

But note, that GEXT(G) ⊆ F ⊆ IPR is always the case because of its definition (most likely the reason for your change), so I would make

GEXT(G) = {(I(s),I(p),I(o)) | (s p o.) ∈ G}.

(maybe with another name) to still be able to have (copied from above)

An interpretation I is a model of a graph G if and only if the following holds:
I ⊨ G iff GEXT(G) ⊆ F ⊆ IPR

I would still keep RDF semantics as it is but add that as an extra point to make the "truth" more tangible.

@doerthe
Copy link
Contributor

doerthe commented Feb 11, 2025

@TallTed

I want to avoid calling triples facts, truths, and the like because graphs can be constructed that describe nonsense universes — universes outside our universe of experience, confined to our imagination, where, for instance, π == 3. That is not a fact, because, in our universe, π == 3.141459....

I think you miss one detail. The definition of "facts" as it was made depends on the interpretation function. If
<I(s), I(o)>∈ IEXT(I(p))
then I((s,p,o))=true (according to RDF 1.1). The set Enrico defined is now literally the set of true propositions and therefore the naming is adequate.

@franconi
Copy link
Contributor Author

@doerthe, thanks for the comments, here is my revised text.


The following semantic properties relate triple terms and triples asserted in a graph, and they introduce an alternative definition to satisfiability.

We define the <dfn>set of propositions</dfn> as follows:

<p class="fact"> The set of propositions in an interpretation I is IPR(I) = { <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR }; it is easy to see that the set of propositions is in one-to-one correspondence to the set including the denotation of all triple terms -- namely the codomain of the mapping RE. </p>

We define the <dfn>set of facts</dfn> as follows:

<p class="fact"> The set F of facts in an interpretation I is F(I) = { <x, y, z> | <x, z> ∈ IEXT(y) }; it is easy to see that the set of facts is a subset of the set of propositions. </p>

Given a mapping A, we define the <dfn>set of facts asserted by a graph G</dfn> as follows:

<p class="fact"> The set of all facts asserted by a graph G with a blank node mapping A in an interpretation I is FEXT(G,I,A) = { ([I+A](s),I(p),[I+A](o)) | (s p o.) ∈ G }; it is easy to see that I simply satisfies G if and only if the set of facts asserted by G is a subset of the set of facts for some blank node mapping.</p>


  1. I am really happy that with this definition we can finally get rid of the injectivity of RE, RE can now map <(s,p,o)> to (I(s), I(p), I(o)) (or alternatively start at (s,p,o) as it is currently the case, then it is the identity function). The mapping is still injective, but not only because we say so.

The interpretation RE of triple terms has to map to resources, otherwise IEXT cannot work anymore; moreover, the mapping has to be injective, otherwise the 1-to-1 correspondence with IPR does not hold anymore.
Eventually, we MUST keep that I(<<{s p o)>>) ∈ IR, namely jump from 3-tuples to resources, and this jump has to be injective. How do you want to do?
Probably you want to say that injectivity is necessary otherwise this correspondence does not hold anymore.
What are you really suggesting here?

I would still keep RDF semantics as it is but add that as an extra point to make the "truth" more tangible.

Can you clarify?

@doerthe
Copy link
Contributor

doerthe commented Feb 11, 2025

The following semantic properties relate triple terms and triples asserted in a graph, and they introduce an alternative definition to satisfiability.

We define the <dfn>set of propositions</dfn> as follows:

<p class="fact"> The set of propositions in an interpretation I is IPR(I) = { <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR }; it is easy to see that the set of propositions is in one-to-one correspondence to the set including the denotation of all triple terms -- namely the codomain of the mapping RE. </p>

We define the <dfn>set of facts</dfn> as follows:

<p class="fact"> The set F of facts in an interpretation I is F(I) = { <x, y, z> | <x, z> ∈ IEXT(y) }; it is easy to see that the set of facts is a subset of the set of propositions. </p>

Given a mapping A, we define the <dfn>set of facts asserted by a graph G</dfn> as follows:

I would mention A in the definition (only because I missed that when I first read), maybe <dfn>set of facts asserted by a graph G using A</dfn> (most likely there is better wording).

<p class="fact"> The set of all facts asserted by a graph G with a blank node mapping A in an interpretation I is FEXT(G,I,A) = { (I+A,I(p),I+A) | (s p o.) ∈ G }; it is easy to see that
I simply satisfies G if and only if the set of facts asserted by G is a subset of the set of facts for some blank node mapping.</p>

I needed to read several times to see where the existential quantification has gone (... for some blank node mapping). Maybe:

I simply satisfies G if and only if there exists an A such that FEXT(G,I,A) is a subset of F(I).

  1. I am really happy that with this definition we can finally get rid of the injectivity of RE, RE can now map <(s,p,o)> to (I(s), I(p), I(o)) (or alternatively start at (s,p,o) as it is currently the case, then it is the identity function). The mapping is still injective, but not only because we say so.

The interpretation RE of triple terms has to map to resources, otherwise IEXT cannot work anymore; moreover, the mapping has to be injective, otherwise the 1-to-1 correspondence with IPR does not hold anymore. Eventually, we MUST keep that I(<<{s p o)>>) ∈ IR, namely jump from 3-tuples to resources, and this jump has to be injective. How do you want to do? Probably you want to say that injectivity is necessary otherwise this correspondence does not hold anymore. What are you really suggesting here?

I thought that the suggestion was that IPR becomes a part of IR. That would mean, that we get for the interpretation

if E is a ground triple term, then I(E) = (I(E.s), I(E.p), I(E.o)),
where E.s, E.p, and E.o are the first, second, and third components of E, respectively

In other words, RE would simply become the identity and that is injective anyway.

But I see that this is not what you had in mind?

I would still keep RDF semantics as it is but add that as an extra point to make the "truth" more tangible.

Can you clarify?

I think that was just me wondering whether the definitions we have here would give us an alternative definition of RDF semantics. We could say that we define the set of facts and if we have a blank node mapping which makes FEXT(G,I,A) a subset of F(I), then I is an interpretation of G. But that was never the goal and I think we should not make it the goal.

@franconi
Copy link
Contributor Author

I would mention A in the definition (only because I missed that when I first read), maybe <dfn>set of facts asserted by a graph G using A</dfn> (most likely there is better wording).

OK.

<p class="fact"> The set of all facts asserted by a graph G with a blank node mapping A in an interpretation I is FEXT(G,I,A) = { (I+A,I(p),I+A) | (s p o.) ∈ G }; it is easy to see that
I simply satisfies G if and only if the set of facts asserted by G is a subset of the set of facts for some blank node mapping.</p>

I needed to read several times to see where the existential quantification has gone (... for some blank node mapping). Maybe:

I simply satisfies G if and only if there exists an A such that FEXT(G,I,A) is a subset of F(I).

I'd keep it my way, since this is exactly the original style of the RDF Semantics document; check, e.g., the semantic condition for blank nodes in 5.1 or the definition of simple entailment in appendix C. The document tries to say stuff in natural language, once it is not ambiguous.
My first attempt was also formal like your proposal.

I thought that the suggestion was that IPR becomes a part of IR. That would mean, that we get for the interpretation

if E is a ground triple term, then I(E) = (I(E.s), I(E.p), I(E.o)), where E.s, E.p, and E.o are the first, second, and third components of E, respectively

In other words, RE would simply become the identity and that is injective anyway.

But I see that this is not what you had in mind?

Saying that the set IR includes also the set IRxIPxIR sounds extreme, and probably not even well founded, I guess...
The idea is intriguing, though.

I would still keep RDF semantics as it is but add that as an extra point to make the "truth" more tangible.

Can you clarify?

I think that was just me wondering whether the definitions we have here would give us an alternative definition of RDF semantics. We could say that we define the set of facts and if we have a blank node mapping which makes FEXT(G,I,A) a subset of F(I), then I is an interpretation of G. But that was never the goal and I think we should not make it the goal.

It would be cool, but I'd keep it this way, namely as a property stated in 5.3.

@franconi
Copy link
Contributor Author

@doerthe

I would mention A in the definition (only because I missed that when I first read), maybe <dfn>set of facts asserted by a graph G using A</dfn> (most likely there is better wording).

OK.

I actually disagree with myself: I would keep the name without "using A", since this name is used as a reference; the definition OTOH is correct. As a matter of fact, the name also disregards the role of I.

@TallTed
Copy link
Member

TallTed commented Feb 11, 2025

the notion of truth is everywhere in RDF specs

ex:the_Moon ex:made_of ex:cheese .

That is not a fact, nor a truth, nor anything like these things.

Calling it anything like a fact confuses users, without end, just as problematically as the original RDF treating anything encoded as RDF as true now and for all time, past and future.

The failure to consider any notion of temporality or any other variance in perspective that meant there were two (or more) conflicting "truths" describing the same thing(s) has often been treated as a bug in reality, rather than a bug in the RDF specifications, as I believe it to be. I would prefer to fix such, rather than perpetuating it.

@franconi
Copy link
Contributor Author

franconi commented Feb 11, 2025

the notion of truth is everywhere in RDF specs

ex:the_Moon ex:made_of ex:cheese .

That is not a fact, nor a truth, nor anything like these things.

I suggest that you reread the Semantic conditions for ground graphs from Semantics.
The triple ex:the_Moon ex:made_of ex:cheese . is interpreted as being true in a world (the "universe of discourse") -- called interpretation -- if in that world the denotation of the property ex:made_of relates the denotations of ex:the_Moon and ex:cheese.
A triple, like the above one, singles out all the worlds (the interpretations) in which is true -- the worlds in which the triple is true are said to satisfy the triple. These worlds express the meaning of the triple itself: they are exactly the ones where that statement expressed by the triple is true.

Calling it anything like a fact confuses users, without end, just as problematically as the original RDF treating anything encoded as RDF as true now and for all time, past and future.
The failure to consider any notion of temporality or any other variance in perspective that meant there were two (or more) conflicting "truths" describing the same thing(s) has often been treated as a bug in reality, rather than a bug in the RDF specifications, as I believe it to be. I would prefer to fix such, rather than perpetuating it.

I suggest that you reread RDF and Change over Time from Concepts; already the first sentence is "The RDF data model is atemporal: RDF graphs are static snapshots of information."
That section also says other interesting stuff.

@TallTed
Copy link
Member

TallTed commented Feb 11, 2025

I suggest that you reread the Semantic conditions for ground graphs from Semantics
...
I suggest that you reread RDF and Change over Time from Concepts

I assure you, I understand these things. My comments above are more concerned with the reader who has not participated in any related work, including having sat through no (or only basic) logic classes or other educational opportunities which could have taught them the fancy notation being used here and elsewhere.

@franconi
Copy link
Contributor Author

Saying that the set IR includes also the set IRxIPxIR sounds extreme, and probably not even well founded, I guess...
The idea is intriguing, though.

I see your point but that was my concern with the injectivity as well. That is: if we have a problem here, we most likely had it before. But I am not sure yet either...

Ahah. Indeed there is a problem once you forced me to change RE from injective partial mapping to injective (total) mapping IRxIPxIR->IR. As an injective total mapping it seems to me that there is a problem indeed, due to the fact that IR is countable infinite. If we say that the injective mapping is partial and finite, the semantics is consistent again.
What do you think?

@william-vw
Copy link

@TallTed Are you coming from a logics viewpoint (fundamentally disagreeing with the model theoretic semantics of RDF) or a usability viewpoint (wanting the semantics document to be more accessible to non-logicians)?

If it is the latter then I understand your argument; efforts could be made to have non-normative sections to explain the semantics to lay people, albeit in the semantics document or primer.

Note that usability of specifications is not just a W3C issue - I just had a deep dive into some OMG specs and they are as dense as they come, without a single logics term in them. They are necessarily dense because they are needed for consistent implementations. One does not read a standard OMG spec to understand the standard; you'd rather read primers or tutorials.

@doerthe
Copy link
Contributor

doerthe commented Feb 12, 2025

Ahah. Indeed there is a problem once you forced me to change RE from injective partial mapping to injective (total) mapping IRxIPxIR->IR. As an injective total mapping it seems to me that there is a problem indeed, due to the fact that IR is countable infinite. If we say that the injective mapping is partial and finite, the semantics is consistent again.
What do you think?

Note that IR is already countable infinite because of the literals (the numbers alone cause that). At least if D-entailment is included.

I am also not happy with the partial mapping.

Another option is for example to make that
RE: IRxIPxIR -> {Set of propositions} and then say that this set of propositions as a whole does not need to be a subset of IR.

But I am somehow uncomfortable with all these options.

Maybe something to discuss in person at some point. I dislike the injectivity but so far I could not find a specific problem. We stay countable if the rest of the universe (the non propositions) is countable, same for higher cardinalities. With the blank node we are not able to quantify over subsets of the universe only over elements. So, no problem so far...

@franconi
Copy link
Contributor Author

What makes you unhappy with the partial mapping? It makes perfect sense both formally and from the KR perspective.

@franconi
Copy link
Contributor Author

A finite partial mapping will necessarily include all the triple terms mentioned in the graph, and it is well founded. It seems to me that it is still the case that there is a total injective mapping from the codomain of RE to IPR, and that the domain of RE is a subset of IPR including the actual triple terms asserted in the graph

@franconi
Copy link
Contributor Author

franconi commented Feb 12, 2025

to sum up my viewpoint, given I and a (ground) graph G:

  • RE is a finite partial injective mapping from IRxIPxIR to IR [denotation of the considered (finitely many) transparent triple terms]
  • IPR = { <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR } [propositions - countably infinite]
  • IF = { <x, y, z> | <x, z> ∈ IEXT(y) } [facts]
  • IF ⊆ IPR [facts are propositions]
  • domain(RE) ⊆ IPR [propositions include the considered transparent triple terms]
  • FEXT = { (Is),I(p),I(o)) | (s p o.) ∈ G } [asserted facts]
  • FEXT ⊆ IF iff I ⊨ G [the asserted facts are among the facts if and only if the interpretation is a model of the graph]

@doerthe
Copy link
Contributor

doerthe commented Feb 12, 2025

A finite partial mapping will necessarily include all the triple terms mentioned in the graph, and it is well founded. It seems to me that it is still the case that there is a total injective mapping from the codomain of RE to IPR, and that the domain of RE is a subset of IPR including the actual triple terms asserted in the graph

You also get this finite mapping by making the interpretation dependent of the vocabulary (and terms) used, but we have been there in RDF 1.0 and I guess it is not that easy to go back.

Which concrete problem do you see with the total mapping? I do not ask you to change your mind (at least not yet ;) ). I want to understand the problem better. The domain of discourse is infinite, but that is not really a problem, is it?

@franconi
Copy link
Contributor Author

franconi commented Feb 12, 2025

You also get this finite mapping by making the interpretation dependent of the vocabulary used, but we have been there in RDF 1.0 and I guess it is not that easy to go back.

I don't want to go there. By just saying that RE is finite, whenever you have a model, then it has to interpret at least all the finitely many triple terms in the graph - so, nothing changes.

Which concrete problem do you see with the total mapping? I do not ask you to change your mind (at least not yet ;) ). I want to understand the problem better. The domain of discourse is infinite, but that is not really a problem, is it?

It seems to me that if RE is a total injective mapping from IRxIPxIR to IR, then all the resources will be the denotation of a triple term -- which semantically would be bizarre. Also (but I am ignorant in terms of inclusions among countable infinite sets) the domain of RE (IRxIPxIR) seems to be a countable infinite set of higher rank (whatever this means) than the codomain of RE (just IR); being the mapping injective, I don't know whether this is even possible. So, just to avoid to face these issues, I put RE to be finite partial injective. The whole picture does not change at all, so I would be happy.

@doerthe
Copy link
Contributor

doerthe commented Feb 12, 2025

You also get this finite mapping by making the interpretation dependent of the vocabulary used, but we have been there in RDF 1.0 and I guess it is not that easy to go back.

I don't want to go there. By just saying that RE is finite, whenever you have a model, then it has to interpret at least all the finitely many triple terms in the graph - so, nothing changes.

Which concrete problem do you see with the total mapping? I do not ask you to change your mind (at least not yet ;) ). I want to understand the problem better. The domain of discourse is infinite, but that is not really a problem, is it?

It seems to me that if RE is a total injective mapping from IRxIPxIR to IR, then all the resources will be the denotation of a triple term -- which semantically would be bizarre.

That is not the case. Let's assume that our domain of discourse is countable infinite and that we can count our iris and literals. Then, I can also count my triple terms which I can construct using these iris and literals. I call these "simple triple terms". I can then also count the triple terms which contain simple triple terms, I can construct a combined counting, go further.... All remains countable and therefore I will be able to find an interpretation which maps injecively into my domain of discourse.

As it is not fixed what exactly a term denotes (with the exception of literals), I can always do the "Hotel Hilbert" trick.

Also (but I am ignorant in terms of inclusions among countable infinite sets) the domain of RE (IRxIPxIR) seems to be a countable infinite set of higher rank

This does not exist. There is always a bijection between two infinite countable sets. To get higher in terms of cardinality, we need to construct the powerset (or use similar tricks). And in my opinion we do not have that here.

(whatever this means) than the codomain of RE (just IR); being the mapping injective, I don't know whether this is even possible. So, just to avoid to face these issues, I put RE to be finite partial injective. The whole picture does not change at all, so I would be happy.

I like to have finite models and I like that at least simple entailment without D-entailment gives us finite models if we want them. Is that our goal here?

@pfps
Copy link
Contributor

pfps commented Feb 12, 2025

A finite partial mapping will necessarily include all the triple terms mentioned in the graph, and it is well founded. It seems to me that it is still the case that there is a total injective mapping from the codomain of RE to IPR, and that the domain of RE is a subset of IPR including the actual triple terms asserted in the graph

A potential problem here is that the mapping might not cover the triple terms in a consequent of an entailment. This would require considerable reworking of the formal basis of entailment, I think.

@TallTed
Copy link
Member

TallTed commented Feb 12, 2025

[@doerthe]

@TallTed Do I get your comments right? As some users do not know about logic, we are not allowed to use standard notations for logic? Why do we then have a semantic document in the first place?

Of course we are allowed to use standard notations for logic. However, we MUST NOT assume that our readers are familiar with or fluent in such notations, and we SHOULD avoid lexical terms (e.g., facts) that have common definitions (e.g., universal and perpetual truth) that are contrary to our intended meaning (e.g., contextual and temporal truth).

[@william-vw]

@TallTed Are you coming from a logics viewpoint (fundamentally disagreeing with the model theoretic semantics of RDF) or a usability viewpoint (wanting the semantics document to be more accessible to non-logicians)?

If it is the latter then I understand your argument; efforts could be made to have non-normative sections to explain the semantics to lay people, albeit in the semantics document or primer.

Absolutely the latter, usability by lay people.

@franconi
Copy link
Contributor Author

A finite partial mapping will necessarily include all the triple terms mentioned in the graph, and it is well founded. It seems to me that it is still the case that there is a total injective mapping from the codomain of RE to IPR, and that the domain of RE is a subset of IPR including the actual triple terms asserted in the graph

A potential problem here is that the mapping might not cover the triple terms in a consequent of an entailment. This would require considerable reworking of the formal basis of entailment, I think.

Not at all. Each entailment decision problem is independent on any other entailment decision problem: in each case, you check inclusion of models for that case. Everything remains the same, the only difference being that there may be less uninteresting models by limiting RE to be finite partial.

@franconi
Copy link
Contributor Author

It seems to me that if RE is a total injective mapping from IRxIPxIR to IR, then all the resources will be the denotation of a triple term -- which semantically would be bizarre.

That is not the case.

OK.

Also (but I am ignorant in terms of inclusions among countable infinite sets) the domain of RE (IRxIPxIR) seems to be a countable infinite set of higher rank

This does not exist.

OK.

So, just to avoid to face these issues, I put RE to be finite partial injective. The whole picture does not change at all, so I would be happy.

I like to have finite models and I like that at least simple entailment without D-entailment gives us finite models if we want them. Is that our goal here?

No no, also because models are anyway always infinite.
But since you and Peter do not see any problem in keeping RE as a total injective mapping from IRxIPxIR to IR, let keep it.

New recap:

Given I and a (ground) graph G:

  • RE is an injective mapping from IRxIPxIR to IR [denotation of the transparent triple terms]
  • IPR = { <x, y, z> | x ∈ IR, y ∈ IP, z ∈ IR } [propositions]
  • IF = { <x, y, z> | <x, z> ∈ IEXT(y) } [facts]
  • IF ⊆ IPR [facts are propositions]
  • domain(RE) ⊆ IPR [transparent triple terms are propositions]
  • FEXT = { (Is),I(p),I(o)) | (s p o.) ∈ G } [asserted facts]
  • FEXT ⊆ IF iff I ⊨ G [the asserted facts are among the facts of an interpretation if and only if the interpretation is a model of the graph]

@franconi
Copy link
Contributor Author

BTW: what about changing the name of the RE mapping into TTT - standing for transparent triple terms?

@franconi
Copy link
Contributor Author

However, we MUST NOT assume that our readers are familiar with or fluent in such notations, and we SHOULD avoid lexical terms (e.g., facts) that have common definitions (e.g., universal and perpetual truth) that are contrary to our intended meaning (e.g., contextual and temporal truth).

OK about the general argument. But I fear the actual message you want to convey: what should be clear is that we are designing an information systems which stores what the system assumes to be true, so that it can act soundly by answering queries and computing entailments from these assumptions of truth. That's the strong message to convey. This is done, IMHO, by still using the words true/truth, but contextualised to the information system and not to the actual real world.

efforts could be made to have non-normative sections to explain the semantics to lay people, albeit in the semantics document or primer.

Absolutely the latter, usability by lay people.

Yes, and this is done with the metaphor of an agent having its own truths and acting soundly as a consequence.

@pchampin
Copy link
Contributor

I'm not bothered too much by "fact", but I sympathize with @TallTed's concern.
"statement" is tricky because of the slightly inconsistent use we make of it with rdf:Statement.

What about "assertion" or "judgement"?

@franconi
Copy link
Contributor Author

franconi commented Feb 13, 2025

"statement" is tricky because of the slightly inconsistent use we make of it with rdf:Statement.

What about "assertion" or "judgement"?

I don't understand what are you proposing: which word should be substituted by assertion or judgement?
We already use the word assertion, which is, by the way, used quite extensively in Concepts, quite correctly in my opinion - see below.
Regarding the use of the word facts, as already brilliantly explained by @doerthe, I find it completely appropriate for explanation purposes. We fix an interpretation, which for the layman is just a complete description of a possible world. The facts in this world include everything with is true in that possible world. I don't see any problem for the layman; as I explained to @TallTed, critical is the part "in that possible world" and, of course, the explanation of what such world is (an interpretation). The word assertion is on the other hand reserved for the triples (syntax) or facts (semantics) which are asserted in an actual graph (see Concepts).

If we fail to explain this clearly to the layman, then RDF will be used as a mere data structure (like LPGs), which, I believe, is not the goal of the semantic web idea.

Anyway, I believe that at this point this discussion belongs to Concepts, and not to Semantics, where these words are necessarily ubiquitous and meant for the layman, but not in the text we are proposing to add in this issue.

@franconi
Copy link
Contributor Author

I propose to close this issue and move it to a PR in Semantics, where I add the agreed upon definitions at the end of 5.3 Properties of simple entailment, and to rename the Section 5.3 "Properties of simple entailment and satisfaction".

@afs
Copy link
Contributor

afs commented Feb 13, 2025

Better to leave the issue open until the PR is merged.

PS You can put "This closes #" in the PR description and it happens automatically.

@pfps
Copy link
Contributor

pfps commented Feb 13, 2025

A finite partial mapping will necessarily include all the triple terms mentioned in the graph, and it is well founded. It seems to me that it is still the case that there is a total injective mapping from the codomain of RE to IPR, and that the domain of RE is a subset of IPR including the actual triple terms asserted in the graph

A potential problem here is that the mapping might not cover the triple terms in a consequent of an entailment. This would require considerable reworking of the formal basis of entailment, I think.

Not at all. Each entailment decision problem is independent on any other entailment decision problem: in each case, you check inclusion of models for that case. Everything remains the same, the only difference being that there may be less uninteresting models by limiting RE to be finite partial.

Remember that the way that entailment works in RDF requires total mapping of IRIs. Otherwise a consequent with an IRI that is not in the graph cannot be entailed. The situation with triple terms is the same, I think.

@pchampin
Copy link
Contributor

I don't understand what are you proposing: which word should be substituted by assertion or judgement?

Those were proposals to replace "fact", even though, as I wrote, I personally think that "fact" works well.

@pchampin
Copy link
Contributor

pchampin commented Feb 14, 2025

Remember that the way that entailment works in RDF requires total mapping of IRIs. Otherwise a consequent with an IRI that is not in the graph cannot be entailed. The situation with triple terms is the same, I think.

edited my counter-example below was wrong, thanks to @doerthe for pointing that out.

I tend to agree. Consider the following graph G1:
:deepThought :claims << :answer rdf:value "42"^^xsd:integer >> .
_:unrelated rdf:reifies <<( :answer rdf:value "042"^^xsd:integer )>>.

it D-entails (if D contains xsd:integer) the following graph G2:

:deepThought :claims << :answer rdf:value "042"^^xsd:integer >> .

because the two literals co-denote, so the two triple terms co-denote as well.

But with a partial mapping for triple terms, if you remove the 2nd line in G1, the entailment does not hold anymore. (Because some models of the modified G1 do not map the 2nd triple term to anything.)

This feels wrong.

@afs
Copy link
Contributor

afs commented Feb 14, 2025

"fact" seems the best of the bunch.
"facts" can be disputed (which really means disagreeing with the use of the fact ... i.e. occurrence).

@doerthe
Copy link
Contributor

doerthe commented Feb 18, 2025

Remember that the way that entailment works in RDF requires total mapping of IRIs. Otherwise a consequent with an IRI that is not in the graph cannot be entailed. The situation with triple terms is the same, I think.

I tend to agree. Consider the following graph G1:

:deepThought :claims << :answer rdf:value "42"^^xsd:integer >> .
_:unrelated rdf:reifies <<( :answer rdf:value "042"^^xsd:integer )>>.
it D-entails (if D contains xsd:integer) the following graph G2:

:deepThought :claims << :answer rdf:value "042"^^xsd:integer >> .
because the two literals co-denote, so the two triple terms co-denote as well.

But with a partial mapping for triple terms, if you remove the 2nd line in G1, the entailment does not hold anymore. (Because some models of the modified G1 do not map the 2nd triple term two anything.)

This feels wrong.

@pchampin
I do not get the point here. The literal mapping is total and we agree on that, right?
If that is the case, the I("42"^^xsd:integer)=I("042"^^xsd:integer). The total (or partial) mapping RE has (a subset of) IRxIPxIR as domain, so it maps <<( :answer rdf:value "42"^^xsd:integer )>> and << ( :answer rdf:value "042"^^xsd:integer )>> to the same resource and the entailment will always work. Or was that about having two partial mappings?

I would prefer to have a total mapping, but in my opinion both options could work.

If we give up that the function is total, we will have to give up Grdfs14 (https://www.w3.org/TR/rdf12-semantics/#rdfs_patterns). I think it makes sense to have it, but I also think that its practical impact is rather low.

@franconi
Copy link
Contributor Author

I would prefer to have a total mapping, but in my opinion both options could work.

I would prefer to have a partial mapping, but in my opinion too both options could work.
We have a total mapping committed, and this is ok for me.

If we give up that the function is total, we will have to give up Grdfs14 (https://www.w3.org/TR/rdf12-semantics/#rdfs_patterns). I think it makes sense to have it, but I also think that its practical impact is rather low.

Correct, but we have a total function, so everybody is happy and we shouldn't change anything.

@pchampin
Copy link
Contributor

@doerthe thanks for pointing out my mistake.

The literal mapping is total and we agree on that, right?

Nitpicking: the literal mapping is partial; but its restriction on well-formed literals of the recognized datatypes is, by definition total, and that's what relevant here. So yes, essentially, we agree :)

Correct, but we have a total function, so everybody is happy and we shouldn't change anything.

@franconi agreed, I'll stop now :)

@doerthe
Copy link
Contributor

doerthe commented Feb 20, 2025

Nitpicking: the literal mapping is partial; but its restriction on well-formed literals of the recognized datatypes is, by definition total, and that's what relevant here. So yes, essentially, we agree :)

Sorry, I remembered that we changed something but it was not IL but L2V which used to be partial and is total now, so your nitpicking helped me to remember :)

@pfps pfps added the spec:substantive Change in the spec affecting its normative content (class 3) –see also spec:bug, spec:new-feature label Mar 6, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:substantive Change in the spec affecting its normative content (class 3) –see also spec:bug, spec:new-feature
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants