- From: Jos de Bruijn <debruijn@inf.unibz.it>
- Date: Tue, 03 Mar 2009 17:02:35 +0100
- To: RIF <public-rif-wg@w3.org>
While trying to prove that the RIF Core version of the RDFS embedding I came up with [1] is correct, I found out that it is not. In fact, I believe it is not possible to embed all RIF-RDFS combinations into RIF Core in a straightforward manner. The problem is with rdfs:Resource. According to the semantics, every object in the domain is in the class extension of rdfs:Resource. This is naturally expressed using the rule Forall ?x (?x[rdf:type -> rdfs:Resource]) However, this rule is not safe. I see three ways of dealing with this problem: 1) disallow using rdfs:Resource in the rules and in RDF triples that are not of the form xxx rdf:type rdfs:Resource in the embedding 2) extending the embedding to define rules for all predicate symbols appearing in the rule set, e.g., if ex:p is a binary predicate, we add the rules Forall ?x ?y (?x[rdf:type -> rdfs:Resource] :- ex:p(?x,?y)) Forall ?x ?y (?y[rdf:type -> rdfs:Resource] :- ex:p(?x,?y)) 3) we drop the requirement of the rules being safe I would prefer option 1, because option 2 would make the embedding very complicated and I guess it is desirable to have the embedding in RIF Core (ruling out option 3). Best, Jos -- +43 1 58801 18470 debruijn@inf.unibz.it Jos de Bruijn, http://www.debruijn.net/ ---------------------------------------------- Many would be cowards if they had courage enough. - Thomas Fuller
Received on Tuesday, 3 March 2009 16:03:18 UTC