Re: rule proto-proposal

From: Stefan Decker (stefan@db.stanford.edu)
Date: 05/29/01


Hi,

some additions to Pats suggestion:

1) In many applications it is important to distinguish between different 
kind of RDF data, eg.
     the easiest example or different sources of RDF data, one is 
trustworthy, the other one
    not. This needs to be reflected in the rule language - it is not 
sufficient to just query if a certain
    fact is present. To distinguish between different sources would be 
enabled by model identifiers

  subject[predicate->object]@model

It is also possible to allow operations on models, e.g. intersection, union 
and setdifference.
1)    subject[predicate->object]@(mod1 intersect mod2)
2)   subject[predicate->object]@(mod1 union mod2)
3)   subject[predicate->object]@(mod1 \ mod2)

1+2+3 are allowed in a rule body, only 1 is allowed in a conclusion
(this still allow to have a horn clause interpretation).

Finally, for most applications it is also useful to allow skolem functions
as model identifiers, e.g.

subject[predicate->object]@model(X)

This allows parameterized models

Furthermore: Full first order language bodies can be achieved by the 
Lloyd-Topor Transformation, provided
e.g. semantics for negation. Well-founded semantics is usually regarded as 
the most suitable one -
especially in the case of RDF (just one predicate symbol).

An example rule set which computes the RDF Schema semantics of a given model
(which is a parameter):

/* Namespace abbreviation definitions */
rdf := 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'.
rdfs := 'http://www.w3.org/TR/1999/PR-rdf-schema-19990303#'.
type := rdf:type.
subPropertyOf := rdfs:subPropertyOf.
subClassOf := rdfs:subClassOf.

  /* model expression - the following atoms are all annotated with the 
model expression */
FORALL Mdl @rdfschema(Mdl) {

   // Everything that is true in the model Mdl is also true in rdfschema(Mdl)
   FORALL O,P,V   O[P->V] <- O[P->V]@Mdl.

   // subproperty - semantics
   FORALL O,P,V   O[P->V] <- EXIST S   S[subPropertyOf->P] AND O[S->V].

  // transitivity of subclasses
  FORALL O,P,V   O[subClassOf->V] <-
       EXISTS W   (O[subClassOf->W] AND W[subClassOf->V]).

  // transitivity of subproperty
  FORALL O,P,V   O[subPropertyOf->V] <-
       EXISTS W   (O[subPropertyOf->W] AND W[subPropertyOf->V]).

   FORALL O,T   O[type->T] <-
       EXISTS S   (S[subClassOf->T] AND O[type->S]).

}

Given an RDF Schema with the identifier mod the model with the identifier 
rdfschema(mod)
contains the everything from mod and the computed semantics the follows 
from the RDF Schema
rules.

Please note that the language still has a horn language interpretation.


All the best,

         Stefan

All the best,

         Stefan



At 12:50 PM 5/29/2001 -0500, you wrote:
>PFPS:
>>As promised (threatened), I have put together the beginnings of a proprosal
>>for rules in DAML+OIL.  This is the very initial stages of a proposal, and
>>has certainly not be analyzed to the extent that it should.
>
>Peter shames me into putting my proposal into writing also. It is 
>considerably larger in scope than his, so maybe we will eventually converge.
>
>I would propose allowing rules of the form
>
>A1 A2.... An -> C
>
>where n>=0, ie Horn clauses, where the Ai and C are atoms. (Some atoms may 
>only occur in antecent position, however.)
>
>C may be empty, ie rules of the form
>A->
>are allowed. An empty consequent is interpreted to be 'false', so this is 
>in effect a negation, in the usual way.
>
>An atom is an expression of one the following forms:
>
><subclassOf S T>
><subPropertyOf S T>
><sameClassAs S T>
><samePropertyAs S T>
><sameIndividualAs S T>
><disjointWith S T>
><differentIndividualFrom S T>
><complementOf S T>
><unionOf S L>
><disjointUnionOf S L>
><intersectionOf S L>
><oneOf S L>
><R S T>
><S T>
><rdf:value S T>
>where R is a property name, S and T are terms, and L is either a variable 
>or a list of terms. A term is either a class name, a datatype or a variable.
>Expressions of the form
><rdf:value S T>
><unionOf S L>
><disjointUnionOf S L>
><intersectionOf S L>
><oneOf S L>
>and <R S T> where R is a Datatype property, and any expression mentioning 
>a datatype, are allowed only in antecedents.
>
>I would also suggest that we allow simple equality statements, at least in 
>the consequents, even though these are not currently in DAML.
>
>Pat
>
>---------------------------------------------------------------------
>IHMC                                    (850)434 8903   home
>40 South Alcaniz St.                    (850)202 4416   office
>Pensacola,  FL 32501                    (850)202 4440   fax
>phayes@ai.uwf.edu http://www.coginst.uwf.edu/~phayes


This archive was generated by hypermail 2.1.4 : 04/02/02 EST