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

New triple term semantics in the rdf-semantics spec #55

Open
wants to merge 38 commits into
base: main
Choose a base branch
from

Conversation

franconi
Copy link

@franconi franconi commented Dec 2, 2024

Please check the minimal extension I made to the rdf-semantics doc, with the new definitions as in the RDF-star "working alternative baseline" spec we voted.
Note that I had to make a minor fix to the RDF alternative semantics spec, in order to exclude that rdf:type becomes a rdf:ReificationProperty.
The rdf-semantics doc has been monotonically extended with the necessary new definitions about triple terms.
This version implements a minimal change, since it could be possible also to enhance the quality of the current text.


💥 Error: 500 Internal Server Error 💥

PR Preview failed to build. (Last tried on Dec 3, 2024, 4:46 PM UTC).

More

PR Preview relies on a number of web services to run. There seems to be an issue with the following one:

🚨 Spec Generator - Spec Generator is the web service used to build specs that rely on ReSpec.

🔗 Related URL

Timed out after waiting 30000ms

If you don't have enough information above to solve the error by yourself (or to understand to which web service the error is related to, if any), please file an issue.

domel and others added 30 commits November 1, 2024 14:09
- remove unnecessary HTML elements
- not-table content now does not use tables
- add semantic elements
- modify to be valid HTML5
em elements
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Ted Thibodeau Jr <[email protected]>
Co-authored-by: Gregg Kellogg <[email protected]>
Co-authored-by: Gregg Kellogg <[email protected]>
add yet another em
Added the semantics of triple terms, according to the "alternative semantics"
@franconi franconi added needs discussion Proposed for discussion in an upcoming meeting spec:enhancement Change to enhance the spec without affecting conformance (class 2) –see also spec:editorial spec:substantive Change in the spec affecting its normative content (class 3) –see also spec:bug, spec:new-feature labels Dec 2, 2024
Copy link
Member

@gkellogg gkellogg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are a bunch of markup errors, which is what keeps this from building properly.

spec/index.html Outdated Show resolved Hide resolved
spec/index.html Outdated Show resolved Hide resolved
spec/index.html Outdated Show resolved Hide resolved
spec/index.html Show resolved Hide resolved
@franconi
Copy link
Author

franconi commented Dec 2, 2024

I've fixed Greg's comments

Copy link
Member

@gkellogg gkellogg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally, I think the PR Preview "diff" accessor (which seems broken right now) is the best way for people to see the changes for this PR rather than using permanent markup.

ReSpec also has some support for the <ins> and <del> elements, but that's typically used for flagging post-REC changes for consideration for subsequent normative changes. I am wary of using such markup, though.

spec/index.html Outdated
@@ -465,6 +465,7 @@ <h6 class="defcap">Definition of a Simple Interpretation</h6>
<li>A mapping <em>IEXT</em> from <em>IP</em> into the powerset of <em>IR</em> x <em>IR</em>, i.e., the set of sets of pairs <em>&lt;x, y&gt;</em> with <em>x</em> and <em>y</em> in <em>IR</em>.</li>
<li>A mapping <em>IS</em> from <em>IRIs</em> into (<em>IR</em> union <em>IP</em>).</li>
<li>A partial mapping <em>IL</em> from literals into <em>IR</em>.</li>
<li><span style="background-color: Cyan;color: Black">6. An injective mapping RE from IR x IP x IR into IR, called the denotation of triple terms</span> </li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the styling of this line intended to be permanent, or only to call attention to it for the purposes of review? If so, there's probably a better way to accomplish this that we won't have to clean up later.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Cyan" background coloring is only meant at this stage to emphasise clearly the few additions I've have made - all focussed on the semantics and not on the wording. Once everybody agrees, I will remove the styling.
Maybe the next time I will learn how to achieve the same goal in a cleaner way...

@@ -506,16 +507,19 @@ <h6 class="defcap">Definition of a Simple Interpretation</h6>
from its set-theoretic extension.
A similar technique is used in the ISO/IEC Common Logic standard [[?ISO24707]].
</p>
<p>The referent of a ground RDF graph in a simple interpretation <em>I</em> is then given by the following rules,
<p><span style="background-color: Cyan;color: Black"><s>The referent of a ground RDF graph in a simple interpretation <em>I</em> is then given by the following rules,
Copy link
Member

@gkellogg gkellogg Dec 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A better way to accomplish this type of highlighting might be with editor's notes (e.g., <p class="ednote">The referent of a ground RDF graph in a simple interpretation <em>I</em> is then given by the following rules, .... But, these also eventually need to be removed when the point of highlighting is past.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 I appreciate @franconi 's efforts to help others review the changes, but mixing this metadata (what has change) with the data (the content of the spec) seems like a suboptiomal way to do this...

This is exactly what pr-preview is supposed to do (although it seems to be broken right now...).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, I found the previous wording "where the interpretation is also treated as a function" less confusing than the new wording...

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Few points:

  1. could you teach me how to use/enable pr-preview?
  2. Due to the parallel radical changes of the formatting in the main branch, it is hard to compare the proposed changes wrt the current main state. That's why I have created a self-standing version (see point 3 below); once a final agreement is found, I will make sure to create a compatible version for merging.
  3. For everybody: in order to see the proposed changes, that is how I would do: Download all https://github.com/franconi/rdf-semantics-altsem/tree/triple-terms-semantics/spec and open index.html in a browser.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. could you teach me how to use/enable pr-preview?

PR Preview is a service that is enabled in W3C repositories with a .pr-preview.json configuration file. It automatically builds the preview, and diff and puts links to them at the end of the first comment on the PR. It updates with every new commit. Sometimes the tooling breaks, though. In this case githack.com can be useful.

Copy link

@afs afs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should there be changes in section 9 / RDFS Axiomatic Triples?

spec/index.html Outdated Show resolved Hide resolved
spec/index.html Outdated Show resolved Hide resolved
spec/index.html Outdated Show resolved Hide resolved
@TallTed
Copy link
Member

TallTed commented Dec 3, 2024

It seems this (#55) should wait until the impact of #52 is fully addressed, whether by reversion or otherwise. /cc @gkellogg @pfps @domel

franconi and others added 3 commits December 3, 2024 17:45
Co-authored-by: Andy Seaborne <[email protected]>
Co-authored-by: Andy Seaborne <[email protected]>
Co-authored-by: Andy Seaborne <[email protected]>
@franconi
Copy link
Author

franconi commented Dec 3, 2024

Should there be changes in section 9 / RDFS Axiomatic Triples?

Should there be changes in section 9 / RDFS Axiomatic Triples?

I am not sure whether the WG agrees on the RDFS extension with rdfs: states. You tell me :-)

gkellogg added a commit that referenced this pull request Dec 3, 2024
@afs
Copy link

afs commented Dec 3, 2024

Should there be changes in section 9 / RDFS Axiomatic Triples?

Should there be changes in section 9 / RDFS Axiomatic Triples?

I am not sure whether the WG agrees on the RDFS extension with rdfs: states. You tell me :-)

Aside from the "exciting" one, aren't there others?

rdf:ReificationProperty rdf:type    rdfs:Class .
rdf:TripleTerm          rdf:type    rdfs:Class .
rdf:reifies             rdfs:subClassOf    rdf:Property .
rdf:reifies             rdfs:domain    rdf:Resource .
rdf:reifies             rdfs:range    rdf:TripleTerm .

and more?

@@ -957,6 +961,9 @@ <h6 class="defcap"><dfn>RDF vocabulary</dfn></h6>
<li><code>rdf:subject</code></li>
<li><code>rdf:predicate</code></li>
<li><code>rdf:object</code></li>
<li><code><span style="background-color: Cyan;color: Black">rdf:TripleTerm</span></code></li>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would strongly advise against this name, and to use rdf:Triple instead. The triple term is the syntactic element, while the name of the class should be about the domain of discourse.

We already have a similar misnomer in the RDF(S) vocabulary: rdfs:Literal, for which we had to introduce a note explaining that "The class rdfs:Literal is not the class of literals, but rather that of literal values". Let's not make this mistake again.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The domain of discourse of such a class is exactly triple terms (as syntactic objects). E.g., in an unstar procedure, the generated "middle" bnode would be of type triple term, since it is exactly what it is meant to denote.

Copy link
Author

@franconi franconi Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is possible that in some future WG, while defining the semantics for named graphs, the type Triple will be used for actual triples in the graph, not just triple terms.

<p id="rdfsemcond6"><span style="background-color: Cyan;color: Black">
if <em>[I+A](E) = TRUE</em> and
<em>&lt;[I+A](E.o), [I+A](rdf:TripleTerm)&gt;</em> is in <em>IEXT(I(<code>rdf:type</code>))</em> and
<em>E.p ≠ <code>rdf:type</code></em>, then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this exception? What is is meant to prevent?
Contrarily to the next rule, this rule will not be triggered by another rule of RDF semantics, and if the user writes something like x rdf:type <<( s p o )>>, then flagging rdf:type as a reification property seems appropriate.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see below.

<p id="rdfsemcond7"><span style="background-color: Cyan;color: Black">
if <em>[I+A](E) = TRUE</em> and
<em>&lt;[I+A](E.s), [I+A](rdf:TripleTerm)&gt;</em> is in <em>IEXT(I(<code>rdf:type</code>))</em>
and <em>E.p ≠ <code>rdf:type</code></em>, then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand that, without this exception, rdf:type would automatically become an InverseReificationProperty (because of the rules above).

Yet, would that be so bad?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, it would be bad for several reasons, not least, as you say, because "ReificationProperty was proposed as a mere "flag" to allow people to detect errors", while here there is no error.

Copy link
Author

@franconi franconi Dec 6, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the user writes something like x rdf:type <<( s p o )>>, then flagging rdf:type as a reification property IS NOT appropriate, since rdf:type is meant to have a specific meaning (made explicit in RDFS), and the user is expected to respect that intended meaning, and it is not our job to emphasise that they are making a mistake.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see that my comment below is already made by PA. I also do not see the problem. So, we would want that reification properties have ONLY triple terms in object position or what is our goal here?

@doerthe
Copy link

doerthe commented Dec 6, 2024

I am fine with the request in general (modulo some details I will report separately), but wonder why rdf:type can't be a rdf:ReificationProperty. How do others see that? How do we want to use that class in general?

And of course, I dislike the injectivity and am afraid that this complicates things without bringing benefit ...
(to add my own "Ceterum censeo Carthaginem esse delendam" ;) )

@franconi franconi removed the needs discussion Proposed for discussion in an upcoming meeting label Dec 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec:enhancement Change to enhance the spec without affecting conformance (class 2) –see also spec:editorial 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 this pull request may close these issues.

7 participants