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

Update RDF-semantics with the liberal baseline RDF and RDFS semantics #74

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

Conversation

franconi
Copy link
Contributor

@franconi franconi commented Jan 27, 2025

Update RDF-semantics with the liberal baseline RDF and RDFS semantics

Summary of changes:

  • fixed definition of instance in Section 4
  • definition of "appears in" in Section 4
  • added rdf:reifies in RDF vocabulary (Section 8)
  • modified entailment pattern rdfD2 (Section 8.1.1)
  • added rdfs:Proposition in RDFS vocabulary (Section 9)
  • added RDFS semantic condition for rdfs:Proposition (Section 9)
  • added axiomatic triple about range of rdf:reifies (Section 9)
  • modified entailment pattern rdfs4 (Section 9.2.1)
  • addded entailment pattern rdfs14 (Section 9.2.1)
  • added example of incomplete rdfs:Proposition entailment (Appendix A)
  • added complete entailment pattern Grdfs14 for generalised RDF (Appendix A)

Open issue:

  • suggest a better way to write entailment pattern rdfs14 (Section 9.2.1)

TODO

  • check Section 6: Skolemisation
  • check Appendix C: Reification
  • check whole text for consistency

Preview | Diff

@franconi franconi self-assigned this Jan 27, 2025
@franconi franconi added the spec:substantive Change in the spec affecting its normative content (class 3) –see also spec:bug, spec:new-feature label Jan 27, 2025
Copy link
Member

@TallTed TallTed left a comment

Choose a reason for hiding this comment

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

Editorial. Small language fixes.

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

There are several markup problems that generate Echidna errors:

  • Error: ROR] Couldn't find ":" in this document or other cited documents: [horst04], [horst05], [owl2-profiles], and [rdf12-concepts].
  • Error: ROR] Couldn't find "****" in this document or other cited documents: [horst04], [horst05], [owl2-profiles], and [rdf12-concepts].
  • Error: ROR] Couldn't find "****" in this document or other cited documents: [rdf12-concepts].
  • Error: ROR] Couldn't find "Finite interpretations To keep the exposition simple, the RDF semantics has been phrased in a way which requires interpretations to be larger than absolutely necessary. For example, all interpretations are required to interpret the whole IRI vocabulary, and the universes of all D-interpretations where D contains xsd:string must contain all possible strings and therefore be infinite. This appendix sketches, without proof, how to re-state the semantics using smaller semantic structures without changing any entailments." in this document or other cited documents: [rdf12-concepts].
  • Error: ROR] Couldn't find "Basically, it is only necessary for an interpretation structure to interpret the" in this document or other cited documents: [rdf12-concepts].
  • Error: ROR] Error in handler for topic "toc": Cannot read properties of null (reading 'textContent')

Likely, there's some missing closing tag that causes the parser to blow up. It's worth validating the HTML before pushing.

@franconi
Copy link
Contributor Author

It's worth validating the HTML before pushing.

Thanks. I did it, and I have committed now an error-free html.

spec/index.html Outdated Show resolved Hide resolved
spec/index.html Outdated Show resolved Hide resolved
Copy link
Contributor

@pfps pfps left a comment

Choose a reason for hiding this comment

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

Looks good enough aside from the changes I mentioned.

spec/index.html Show resolved Hide resolved
Copy link
Contributor

@pchampin pchampin left a comment

Choose a reason for hiding this comment

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

generally LGTM

spec/index.html Outdated Show resolved Hide resolved
<tbody>
<tr>
<th></th>
<th><strong>if the triple or triple term <a>appears in</a> S</strong></th>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
<th><strong>if the triple or triple term <a>appears in</a> S</strong></th>
<th><strong>if the triple <a>appears in</a> S</strong></th>

"or triple term" is redundant. The definition of "appears in" for triples covers it.

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not opposed to keeping it, but I slightly prefer to remove it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I believe it would be wrong to assume that the check should be done only for triples.

<tbody>
<tr>
<th ></th>
<th >If the triple or triple term <a>appears in</a> S:</th>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
<th >If the triple or triple term <a>appears in</a> S:</th>
<th >If the triple <a>appears in</a> S:</th>

same as above

Copy link
Contributor Author

Choose a reason for hiding this comment

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

As above :-), I believe it would be wrong to assume that the check should be done only for triples.

<tr >
<td class="othertable"><dfn>rdfs14</dfn></td>
<td class="othertable">xxx yyy &lt;&lt;(aaa bbb ccc)>> <code></code></td>
<td class="othertable">the graph S with the appearance replaced with <br/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
<td class="othertable">the graph S with the appearance replaced with <br/>
<td class="othertable">

No need for that. RDF is monotonic, so any inferred triple can coexist with the original triples.
In fact, this sentence may give the wrong impression that the original triples must be removed.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, but we need to ADD the triples with the bnode substitution.
On the other hand, we should find a better way to say it.

Copy link
Contributor

Choose a reason for hiding this comment

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

Oh, sorry, now I get it!
The triples on the right are only entailed as is IF the triples on the right are asserted.
But since the rule says they must "appear", then we need to replace their "appearance"...

It is not clear, however, than only the 1st of the 2 triples needs to be "injected". The other one is inferre asserted.

Also, a number of the triples in the rules are missing the trailing period (.).

spec/index.html Show resolved Hide resolved
Comment on lines +1608 to +1617

<tr>
<th> </th>
<th>RDFS entails</th>
</tr>

<tr>
<td class="othertable"><code>ex:a ex:b ex:c .</code></td>
<td class="othertable"><code>&lt;&lt;(ex:a ex:b ex:c)>> rdf:type rdfs:Proposition .</code> </td>
</tr>
Copy link
Contributor

Choose a reason for hiding this comment

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

This addition is present in the papers referenced at the top of this section [HORST04,HORST05]. I think the introductory sentence of that section should be explicit about the fact that the cited work was extended in RDF 1.2 with triple terms.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Wishful thinking. We have NOT extended the cited work in RDF 1.2 with triple terms. It should not be very hard to deal with this case, but I leave it to @pfps .

@rat10
Copy link

rat10 commented Jan 29, 2025

RDFS axiomatic triples. says rdf:reifies rdf:range rdfs:Proposition . That must be rdfs:range.

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

@pfps: I think I resolved all your reviews, but you still appear in the final summary as having a requested change. I don't understand why.

@pfps
Copy link
Contributor

pfps commented Jan 29, 2025

It's a github thing. I have to sign off somehow.

Done.

Copy link
Contributor

@pfps pfps left a comment

Choose a reason for hiding this comment

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

Looks good now

@franconi
Copy link
Contributor Author

@doerthe: can you please check whether you like how rdfs14 is written? Maybe propose a better way? Or maybe could be fine if we add an example later?

Comment on lines +1236 to +1237
exist x,y,z such that RE(x,z,y)=r, or exists x such that &lt; x,r &gt; is in IEXT([I+A](<code>rdf:reifies</code>)), <br/> then &lt; r,[I+A](<code>rdfs:Proposition</code>)&gt; is in IEXT([I+A](<code>rdf:type</code>))</p></td>
</tr>
Copy link
Contributor

Choose a reason for hiding this comment

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

I think that [I+A] should be replaced with I here. [I+A] is never mentioned in the semantic conditions of RDF-Entailment or RDFS-Entailment.

Comment on lines +264 to +265
An RDF term <dfn>appears in</dfn> a graph G if it is in the set TM(G), defined inductively as follows: (1) for each triple in the graph G, its subject, predicate, and object are in TM(G); (2) for each triple term in TH(G), its subject, predicate, and object are in TM(G).<br/>
A triple <b><i>appears in</i></b> a graph G if it is in G or if the triple term composed by its subject, predicate, and object appears in G.
Copy link
Member

Choose a reason for hiding this comment

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

I've not changed any text here, only white space in the source, where shorter lines are far easier to review. Also, if it's worth <br/>, it's usually worth <br/><br/>. Also also, I'm wondering why the (1)(2) don't warrant <br/> or <ol>.

Suggested change
An RDF term <dfn>appears in</dfn> a graph G if it is in the set TM(G), defined inductively as follows: (1) for each triple in the graph G, its subject, predicate, and object are in TM(G); (2) for each triple term in TH(G), its subject, predicate, and object are in TM(G).<br/>
A triple <b><i>appears in</i></b> a graph G if it is in G or if the triple term composed by its subject, predicate, and object appears in G.
An RDF term <dfn>appears in</dfn> a graph G if it is in the set TM(G),
defined inductively as follows:
(1) for each triple in the graph G,
its subject, predicate, and object are in TM(G);
(2) for each triple term in TH(G),
its subject, predicate, and object are in TM(G).
<br/><br/>
A triple <b><i>appears in</i></b> a graph G
if it is in G or
if the triple term composed by its subject, predicate, and object appears in G.

@@ -1206,6 +1231,10 @@ <h2>RDFS Interpretations</h2>
x is in ICEXT(I(<code>rdfs:Datatype</code>)) then <span >&lt; x,
I(<code>rdfs:Literal</code>) &gt; is in IEXT(I(<code>rdfs:subClassOf</code>))</span></p></td>
</tr>
<tr>
<td class="semantictable" id="rdfssemcond11"><p>If
exist x,y,z such that RE(x,z,y)=r, or exists x such that &lt; x,r &gt; is in IEXT([I+A](<code>rdf:reifies</code>)), <br/> then &lt; r,[I+A](<code>rdfs:Proposition</code>)&gt; is in IEXT([I+A](<code>rdf:type</code>))</p></td>
Copy link
Member

Choose a reason for hiding this comment

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

Line lengths, again. I'm not changing it, but I think exist in the first line below should be exists. And, this is the rare case where <br/> is preferred over <br/><br/>.

Suggested change
exist x,y,z such that RE(x,z,y)=r, or exists x such that &lt; x,r &gt; is in IEXT([I+A](<code>rdf:reifies</code>)), <br/> then &lt; r,[I+A](<code>rdfs:Proposition</code>)&gt; is in IEXT([I+A](<code>rdf:type</code>))</p></td>
exist x,y,z such that RE(x,z,y)=r, or
exists x such that &lt; x,r &gt;
is in IEXT([I+A](<code>rdf:reifies</code>)),
<br/>
then &lt; r,[I+A](<code>rdfs:Proposition</code>)&gt;
is in IEXT([I+A](<code>rdf:type</code>))</p></td>

@@ -1639,6 +1698,28 @@ <h2>Entailment rules (Informative)</h2>

<p>As noted earlier, detecting datatype entailment for larger sets of datatype IRIs
requires attention to idiosyncratic properties of the particular datatypes.</p>

<p>
The complete entailment pattern for generalized RDF with [=symmetric RDF triple=]s, considering that, according to the semantics, the denotation of triple terms should be of type <code>rdfs:Proposition</code>, is the following:
Copy link
Member

Choose a reason for hiding this comment

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

Line length again. =]s should not exist. Any terms which are currently treated this way should get the plural added to the synonyms of the singular, and the s=] should become s=]. (Similar treatment also applies to other plural forms.)

Suggested change
The complete entailment pattern for generalized RDF with [=symmetric RDF triple=]s, considering that, according to the semantics, the denotation of triple terms should be of type <code>rdfs:Proposition</code>, is the following:
The complete entailment pattern for generalized RDF with [=symmetric RDF triples=],
considering that, according to the semantics, the denotation of triple terms should
be of type <code>rdfs:Proposition</code>, is the following:

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 this pull request may close these issues.

7 participants