Re: some errors in the MT

[sorry, we had some errors]

Pat,

> There are some serious bugs in the RDFS closure table in section 6 of
> the MT WP. See a recent message from Peter Patel-Schneider and my
> reply, on rdf-logic
> http://lists.w3.org/Archives/Public/www-rdf-logic/2001Sep/0033.html.
>   I will try to get the bugs out and produce a revision as soon as
> possible (couple of days).

yes, we also tried to do some testing
and for the moment we have the following triples
(which are true in any RDFS interpretation)

====
rdfs:Resource a rdfs:Class .
rdfs:domain a rdfs:ConstraintResource .
rdfs:range a rdfs:ConstraintResource .

rdf:type rdfs:domain rdfs:Resource .
rdf:type rdfs:range rdfs:Class .
rdfs:subClassOf rdfs:domain rdfs:Class .
rdfs:subClassOf rdfs:range rdfs:Class .
rdfs:subPropertyOf rdfs:domain rdf:Property .
rdfs:subPropertyOf rdfs:range rdf:Property .
rdfs:domain rdfs:domain rdf:Property .
rdfs:domain rdfs:range rdfs:Class .
rdfs:range rdfs:domain rdf:Property .
rdfs:range rdfs:range rdfs:Class .

rdfs:ConstraintProperty rdfs:subClassOf rdf:Property .
====

plus the MT rules except 3a, 3b, 7, 9a and 9b

i'm not sure about
  rdf:type rdfs:domain rdfs:Resource .
which would also have lead to rule 7a and 7b

we now have that the schema-closure of the graph
consisting of the single triplet
  :foo :bar :baz .
is

====
:foo :bar :baz .
:foo a rdfs:Resource .

:bar a rdf:Property .
:bar a rdfs:Resource .

:baz a rdfs:Resource .

rdfs:Resource a rdfs:Class .
rdfs:Resource a rdfs:Resource .

rdf:Property a rdfs:Class .
rdf:Property a rdfs:Resource .
rdf:Property rdfs:subClassOf rdfs:Resource .

rdfs:Class a rdfs:Class .
rdfs:Class a rdfs:Resource .
rdfs:Class rdfs:subClassOf rdfs:Resource .

rdfs:ConstraintResource a rdfs:Class .
rdfs:ConstraintResource a rdfs:Resource .
rdfs:ConstraintResource rdfs:subClassOf rdfs:Resource .

rdfs:ConstraintProperty a rdfs:Class .
rdfs:ConstraintProperty a rdfs:Resource .
rdfs:ConstraintProperty rdfs:subClassOf rdf:Property .
rdfs:ConstraintProperty rdfs:subClassOf rdfs:Resource .

rdf:type a rdf:Property .
rdf:type a rdfs:Resource .
rdf:type rdfs:domain rdfs:Resource .
rdf:type rdfs:range rdfs:Class .

rdfs:domain a rdfs:ConstraintResource .
rdfs:domain a rdf:Property .
rdfs:domain a rdfs:Resource .
rdfs:domain rdfs:domain rdf:Property .
rdfs:domain rdfs:range rdfs:Class .

rdfs:range a rdfs:ConstraintResource .
rdfs:range a rdf:Property .
rdfs:range a rdfs:Resource .
rdfs:range rdfs:domain rdf:Property .
rdfs:range rdfs:range rdfs:Class .

rdfs:subClassOf a rdf:Property .
rdfs:subClassOf a rdfs:Resource .
rdfs:subClassOf rdfs:domain rdfs:Class .
rdfs:subClassOf rdfs:range rdfs:Class .

rdfs:subPropertyOf a rdf:Property .
rdfs:subPropertyOf a rdfs:Resource .
rdfs:subPropertyOf rdfs:domain rdf:Property .
rdfs:subPropertyOf rdfs:range rdf:Property .
====

i.e.

////
C:\euler>jview Euler rdfsrules.n3 rdfsfacts.n3 rdfsquery.n3
# Generated with http://www.agfa.com/w3c/euler/#27.087 on Fri Sep 28 01:53:12 GM
T+02:00 2001
# for query file:/euler/rdfsquery.n3
# given [file:/euler/rdfsrules.n3, file:/euler/rdfsfacts.n3]

@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix once: <file:/euler/rdfsquery.n3#>.
@prefix : <file:/euler/rdfsrules#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.

:foo :bar :baz.
:foo a rdfs:Resource.
:bar a rdf:Property.
:bar a rdfs:Resource.
:baz a rdfs:Resource.
rdfs:Resource a rdfs:Class.
rdfs:Resource a rdfs:Resource.
 {:RULE5 a rdfs:Resource.
  rdfs:subClassOf rdfs:domain rdfs:Class.
   {:RULE8 a rdfs:Resource.
     {:RULE6 a rdfs:Resource.
      rdf:type rdfs:range rdfs:Class.
       {:RULE5 a rdfs:Resource.
        rdfs:domain rdfs:domain rdf:Property.
        rdf:type rdfs:domain rdfs:Resource} log:implies
      {rdf:type rdf:type rdf:Property}} log:implies
    {rdf:Property a rdfs:Class}} log:implies
  {rdf:Property rdfs:subClassOf rdfs:Resource}} log:implies
{rdf:Property a rdfs:Class}.
rdf:Property a rdfs:Resource.
 {:RULE8 a rdfs:Resource.
   {:RULE6 a rdfs:Resource.
    rdf:type rdfs:range rdfs:Class.
     {:RULE5 a rdfs:Resource.
      rdfs:domain rdfs:domain rdf:Property.
      rdf:type rdfs:domain rdfs:Resource} log:implies
    {rdf:type rdf:type rdf:Property}} log:implies
  {rdf:Property a rdfs:Class}} log:implies
{rdf:Property rdfs:subClassOf rdfs:Resource}.
 {:RULE5 a rdfs:Resource.
  rdfs:subClassOf rdfs:domain rdfs:Class.
   {:RULE8 a rdfs:Resource.
     {:RULE6 a rdfs:Resource.
      rdf:type rdfs:range rdfs:Class.
      rdfs:Resource rdf:type rdfs:Class} log:implies
    {rdfs:Class a rdfs:Class}} log:implies
  {rdfs:Class rdfs:subClassOf rdfs:Resource}} log:implies
{rdfs:Class a rdfs:Class}.
rdfs:Class a rdfs:Resource.
 {:RULE8 a rdfs:Resource.
   {:RULE6 a rdfs:Resource.
    rdf:type rdfs:range rdfs:Class.
    rdfs:Resource rdf:type rdfs:Class} log:implies
  {rdfs:Class a rdfs:Class}} log:implies
{rdfs:Class rdfs:subClassOf rdfs:Resource}.
 {:RULE5 a rdfs:Resource.
  rdfs:subClassOf rdfs:domain rdfs:Class.
   {:RULE8 a rdfs:Resource.
     {:RULE6 a rdfs:Resource.
      rdf:type rdfs:range rdfs:Class.
      rdfs:domain rdf:type rdfs:ConstraintResource} log:implies
    {rdfs:ConstraintResource a rdfs:Class}} log:implies
  {rdfs:ConstraintResource rdfs:subClassOf rdfs:Resource}} log:implies
{rdfs:ConstraintResource a rdfs:Class}.
rdfs:ConstraintResource a rdfs:Resource.
 {:RULE8 a rdfs:Resource.
   {:RULE6 a rdfs:Resource.
    rdf:type rdfs:range rdfs:Class.
    rdfs:domain rdf:type rdfs:ConstraintResource} log:implies
  {rdfs:ConstraintResource a rdfs:Class}} log:implies
{rdfs:ConstraintResource rdfs:subClassOf rdfs:Resource}.
 {:RULE5 a rdfs:Resource.
  rdfs:subClassOf rdfs:domain rdfs:Class.
  rdfs:ConstraintProperty rdfs:subClassOf rdf:Property} log:implies
{rdfs:ConstraintProperty a rdfs:Class}.
rdfs:ConstraintProperty a rdfs:Resource.
rdfs:ConstraintProperty rdfs:subClassOf rdf:Property.
 {:RULE8 a rdfs:Resource.
   {:RULE5 a rdfs:Resource.
    rdfs:subClassOf rdfs:domain rdfs:Class.
    rdfs:ConstraintProperty rdfs:subClassOf rdf:Property} log:implies
  {rdfs:ConstraintProperty a rdfs:Class}} log:implies
{rdfs:ConstraintProperty rdfs:subClassOf rdfs:Resource}.
rdf:type a rdf:Property.
rdf:type a rdfs:Resource.
rdf:type rdfs:domain rdfs:Resource.
rdf:type rdfs:range rdfs:Class.
rdfs:domain a rdfs:ConstraintResource.
rdfs:domain a rdf:Property.
rdfs:domain a rdfs:Resource.
rdfs:domain rdfs:domain rdf:Property.
rdfs:domain rdfs:range rdfs:Class.
rdfs:range a rdfs:ConstraintResource.
rdfs:range a rdf:Property.
rdfs:range a rdfs:Resource.
rdfs:range rdfs:domain rdf:Property.
rdfs:range rdfs:range rdfs:Class.
rdfs:subClassOf a rdf:Property.
rdfs:subClassOf a rdfs:Resource.
rdfs:subClassOf rdfs:domain rdfs:Class.
rdfs:subClassOf rdfs:range rdfs:Class.
rdfs:subPropertyOf a rdf:Property.
rdfs:subPropertyOf a rdfs:Resource.
rdfs:subPropertyOf rdfs:domain rdf:Property.
rdfs:subPropertyOf rdfs:range rdf:Property.

# Proof found for file:/euler/rdfsquery.n3 in 292 steps (16045 steps/sec)
\\\\
(the 1a, 1b and 1c rules are not shown unfortunately)

--
Jos De Roo, AGFA http://www.agfa.com/w3c/jdroo/

Received on Thursday, 27 September 2001 20:06:48 UTC