Re: DQL Examples

From: Ian Horrocks (horrocks@cs.man.ac.uk)
Date: 07/03/02

  • Next message: Deborah McGuinness: "regrets for tues and feature synopsis status"
    On June 25, Richard Fikes writes:
    > Here are a couple of query examples for today's discussion.  These
    > examples are intended to be illustrative of aspects of the current
    > design of DQL rather than being illustrative of typical query-answering
    > cases.
    > 
    > The first example illustrates answers that contain bindings for only
    > some of the "may bind" variables in cases where an answer is inferable
    > (from a min-cardinalityQ restriction in the example) and where an answer
    > is an anonymous node.
    > 
    > KB0:
    > 
    > * Class "Red-Car".
    > 
    > * Class "Red-Car-Owner" with a min-cardinalityQ restriction of 1 and
    > hasClassQ "Red-Car" on property "has-car" (i.e., every Red-Car-Owner has
    > at least one car that is a Red-Car).
    > 
    > * (type RC1 Red-Car)
    > 
    > * (has-car Bill RC1)
    > 
    > * (type Joe Red-Car-Owner)
    > 
    > * (has-car Fred _:r)
    > 
    > * (type _:r Red-Car)
    > 
    > QUERY-01:
    > 
    > query pattern: (has-car ?p ?c) (type ?c Red-Car)
    > must bind: ?p ?c
    > answer KB: KB0
    > 
    > One answer: {[?p/Bill], [?c/RC1]}
    > 
    > QUERY-02:
    > 
    > query pattern: (has-car ?p ?c) (type ?c Red-Car)
    > may bind: ?p ?c
    > answer KB: KB0
    > 
    > Three answers: {[?p/Bill], [?c/RC1]}, {[?p/Joe]}, and {[?p/Fred]}
    > 
    > QUERY-03:
    > 
    > query pattern: (has-car ?p ?c) (type ?c Red-Car)
    > may bind: ?p
    > don't bind: ?c
    > answer KB: KB0
    > 
    > Three answers: {[?p/Bill]}, {[?p/Joe]}, and {[?p/Fred]}
    > 
    > ------------------------------------
    > 
    > This is an example of an answer being inferable from the existence of an
    > instance of a class and a cardinality restriction.
    > 
    > KB1:
    > 
    > * Class "Country".
    > 
    > * Class "Person" with a cardinality restriction of 1 and a valueType
    > restriction of "Country" on property "country-of-birth" (i.e., every
    > person has exactly one country-of-birth and a person's country-of-birth
    > is a Country).
    > 
    > * (type Bill Person)
    > 
    > QUERY-11: 
    > 
    > query pattern: (type ?x Country)
    > must bind: ?x
    > answer KB: KB1
    > 
    > No answers.
    > 
    > QUERY-12: 
    > 
    > query pattern: (type ?x Country)
    > may bind: ?x
    > answer KB: KB1
    > 
    > Query has one answer.  The answer has an empty set of bindings.  The
    > answer corresponds to a proof that since there is a person and that
    > person has a "country-of-birth" that is a Country, then there exists a
    > Country (i.e., an ?x such that ?x is type Country).
    > 
    > QUERY-13: 
    > 
    > query pattern: (type ?x Country)
    > don't bind: ?x
    > answer KB: KB1
    > 
    > Query has one answer.  The answer has an empty set of bindings.  As with
    > QUERY-2, the answer corresponds to a proof that since there is a person
    > and that person has a "country-of-birth" that is a Country, then there
    > exists a Country (i.e., an ?x such that ?x is type Country).
    
    All seems pretty clear to me. Presumably I can say that the answer set
    for QUERY-12 is {{}}, i.e., one answer, it being the empty set of
    bindings.
    
    From a theoretical point of view there seems to be a slight difference
    w.r.t. QUERY-13 which, as there are no distinguished variables, is a
    boolean query, and would be expected to return True or False. For
    practical purposes, however, we can treat {{}} as True. We obviously
    have to be careful to distinguish this from {}, the empty set of
    answers (False for a boolean query).
    
    Ian
    


    This archive was generated by hypermail 2.1.4 : 07/04/02 EDT