- From: <jos.deroo.jd@belgium.agfa.com>
- Date: Fri, 28 Sep 2001 02:06:34 +0100
- To: phayes@ai.uwf.edu
- Cc: w3c-rdfcore-wg@w3.org
[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