- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Thu, 22 Jan 2004 23:27:07 -0500
- To: pat hayes <phayes@ihmc.us>
- Cc: Bijan Parsia <bparsia@isr.umd.edu>, public-sws-ig@w3.org
> > > > >> >On Jan 21, 2004, at 3:15 AM, Michael Kifer wrote: > > > >[snip] > ><snip> > > > Its interesting that this disagreement/misunderstanding can be rooted > >> in the differences between two world-views of what class-based > >> reasoning is really *for*, one based on DL's evolution from logic, > >> the other based on schemas considered as data descriptions. This > >> difference of perspectives keeps coming up and seems to be very > >> important: for example, does one think of range assertions as > >> constraints (datatype) or simply as assertions (logic)? How about > >> datatyping? And so on. We keep running into cases where people have > >> divergent intuitions which can be traced back to the differences in > >> attitude arising from these two world-views. Clearly at some level > >> they are similar: Codd's Relational model and the DL logic-based > >> semantics all agree on the ultimate nature of relations and classes; > >> but the ways that the two communities think seem often to be sharply > >> different. Im not sure how to characterize the difference, exactly, > >> but it seems to be that the DB world-view sees a sharp distinction > >> between different kinds of information, and tends to treat general > >> facts as conditions imposed on concrete facts: meta-data as opposed > >> to data. Distinctions like this may be operationally important but > >> have no natural place in a logic-based perspective which historically > >> has been largely motivated by the desire to unify divergent sources > >> of information as far as possible into one uniform framework. <snip> > > > .... if you think that the more general assertion's > > > chief purpose is to control, select or check the internal coherence > >> of a body of ground data, then the purely logical account of > >> quantification is inadequate or at any rate incomplete, since a > >> combination like > >> (forall (x) (R x x)) > >> (not (R a a )) > >> is of course inconsistent, but inconsistent in a special way: the > >> second item is wrong, or should be rejected, as it fails to conform > >> to the schema. The schema has more assertional force than the mere > >> data in a DB world, since the schema is a kind of filter or guardian > >> of the data. Logic has nothing to say about intuitions like this. > > > >*Classical* logic has nothing to say about it. This doesn't mean that you > >can't define a logic in which meta-info is treated differently from > >"regular" data. > > Oh, sure. You can define a logic to do just about anything. But I > don't trust these proposals until I see some kind of semantic > justification for the distinctions they draw. (Neednt be > *classical* semantic, but somehow non-arbitrary.) I confess to not > (yet) being familiar enough with F-logic to know if it has such a > justification. The justification is that you need to be able to say that the data stored in the database and the info that can be derived by the rules conforms to some metadata (schema). > >F-logic does this. It defines what it means to conform to > >the meta-data (although not completely satisfactorily from the point of > >view of programming languages). > >There is also Typed Predicate Calculus (LICS-91), which espouses the same > >idea (which later went into F-logic). > > > >The basic idea is that there is a notion of well-typed > >interpretations and only > >those things are acceptable as models. So, you are not supposed to derive > >things that violate the meta-data. > > And of course 'classical' sorted and typed logics make a similar > distinction, but they encode it as a purely syntactic matter. I doubt > if this is adequate for our purposes here, however. Yes and no. Sorted logics give you some of the stuff that is required in the programming languages realm. But sorts are too weak to handle polymorphism (especially when you have ad hoc polymorphism and inclusion polymorphism together--we discuss these problems in the LICS-91 paper that I mentioned). There are order-sorted logics that solve the inclusion poly problem, but not the combined inclusion+ad hoc poly problem. (Inclusion polymorphism arises due to Isa. Ad hoc poly is sometimes called "overloading" -- the ability to call the same function with arguments of completely different types.) The semantics of types in F-logic and Typed Pred Calculus does *not* have all the benefits of sorted logics, and vice versa. I haven't seen a satisfactory solution that subsumes both. To explain the problem, suppose we state: gradStudent subclass student gradFaculty subclass faculty and define the following types: advisor: student -> faculty gradStudent -> gradFaculty Now, if we also have bob member gradStudent bill member faculty Then what is advisor(bob,bill)? Well-typed or not? It should not be (because bill is not a gradFaculty), but sorts alone can't solve this problem. In an order-sorted logic, bob belongs to faculty as well, and there is no violation of the sorts. So, the wrong type is not detected. The model theory of Typed Pred Calculus (and F-logic) can handle this, but it has another problem: it can't distinguish type violation from falsehood. For instance, the query ?- advisor(bob,123). is just false, while it should somehow be illegal. On the other hand, this type of violation is easy to catch in sorted logics. The two ideas can actually be combined, but only as long as you assume that the set of types is fixed. This is OK for many purposes in programming languages, but not in KBs and even less so on the Semantic Web. This is why I think KBs and the SW are different. You might want to define derived classes from other classes/resources. For instance, the resource may be a university database, and I might define gradFaculty as faculty who have a PhD degree and are allowed to supervise grad students. (There may be no explicit class or resource called gradFaculty.) And then I might want to restrict input to my service XYZ to be objects of that derived class. In the situation where types can be defined by rules, the sorted logic approach is inapplicable (and you don't even need polymorphism to see that). At least I don't know how to do it using a sorted logic. > Can you point me to any kind of general discussion of these issues > from a DB perspective? I don't remember seeing any one place where several different views are represented. There was a lot going on in the logic programming community (LP) around 1990 (+/- 5yrs) and in the database programming languages (DBPL) community. I haven't been working on this for some 8-9 years, and it is possible that there is new stuff out there. That LICS paper might be a reference. It discusses the issue from the point of view of LP, which has stricter requirements than what might be acceptable in databases. The "strictness" part is just my opinion---DBLP people may say that database requirements are as strict as anything else. But basically, I think that in databases, KBs, and the SW, it is more important to ensure that whatever you derive is well-typed than to prevent queries like advisor(bob,123) above from ever being asked during computation/derivation. I think the above example explains the main problems in a nutshell. --michael
Received on Thursday, 22 January 2004 23:29:28 UTC