WG: Refactoring OWL Lite - a proposal based on implementation inrule-based systems

I just thought a little bit more about enumeration.

copying from dan's reply...

The owl syntax looks like that
	:MyBrothers owl:oneOf (:Bob :John).
to
	:Bob rdf:type :MyBrothers

with a rule:

	C(X) :- oneOf(L,C), member(L,X).

we create the extension of C (all enumerated members)

we don't want to let any other individuals creep in, if
so this is inconsistent.

Let's capture the semantics of type wrt. to subClassOf
(this is different from the document)

type(X,C) :- type(X,D), subClassOf(D,C).

then we can use the check the consistency via instantiation
of the following rule:

inconsistent(X,Y) :- oneOf(L,X), type(Y,X).

this uses the fact that all instances for enumerated classes
are not *syntactically* represented via rdf:type of the enumerated
class.

It is getting late, so I might be wrong...

Correct ?

Raphael
-----Ursprüngliche Nachricht-----
Von: Raphael Volz [mailto:volz@aifb.uni-karlsruhe.de]
Gesendet: Freitag, 4. Oktober 2002 22:29
An: Dan Connolly
Betreff: AW: Refactoring OWL Lite - a proposal based on implementation
inrule-based systems


Hi Dan

actually I just copied section 4 from a previous paper on
views, where the binary representation comes in very handy.

Of course, your alternative would work out fine as well.

The problem with enumeration is that we have no means to
close the extension of the class. Hence, someone could
say

:RaphaelsSisters owl:subclassof :MyBrothers

and all of the sudden my sisters would also be your brothers.
One could do that outside of the logic, though.

Raphael
-----Ursprüngliche Nachricht-----
Von: Dan Connolly [mailto:connolly@w3.org]
Gesendet: Freitag, 4. Oktober 2002 22:17
An: Raphael Volz
Cc: Webont; ls3
Betreff: Re: Refactoring OWL Lite - a proposal based on implementation
inrule-based systems


On Fri, 2002-10-04 at 12:21, Raphael Volz wrote:
[...]
> The proposal is motivated by Datalog theory, and
> can be easily implemented on top of cheap, existing, off-the-shelve and
> widely availabe technology.
[...]

Why do you separate the statements in an ontology from other
sorts of statements?

In section 4 Representation of RDF in rule-based systems, I
see the straightforward prolog representation of RDF triples...

  OWL ontologies are syntactically represented in RDF. This would
  allow a very simple form of representation,which maps each
  RDF statement to one logical ternary predicate
  statement(subject, predicate, object).


(statement is called 'rdf' in our recent work with otter,
and it's called PropertyValue in the DAML+OIL KIF axioms)

But then why do you use the rule schema...

  D(X) : - C(X).

for subClassOf, rather than the straightforward representation
	statement(D, rdfs:subClassOf, C).
along with one generalized rule...
	statement(X, rdf:type, D) :- statement(D, rdfs:subClassOf, C),
		statement(X, rdf:type, C).
?

That would get around some of the problems with enumerations; e.g.
we can get from
	:MyBrothers owl:oneOf (:Bob :John).
to
	:Bob rdf:type :MyBrothers

with a rule:

	statement(X, rdf:type, C) :- statement(C, owl:oneOf, L),
		statement(X, owl:member, L).



--
Dan Connolly, W3C http://www.w3.org/People/Connolly/

Received on Friday, 4 October 2002 18:02:55 UTC