;; demonstrate that pellet reasoner can infer that an individual exists ;; even if it is not instantiated. Being able to do queries such as the following ;; is one of the differences between using pellet to process the query versus versus ;; using jena, even when backed by pellet. (with-ontology some-exists? () ((object-property !holds) (class !holder :partial (restriction !holds (min-cardinality 1))) (individual !alan (type !holder))) (princ (abstract-syntax some-exists?)) (let ((*default-kb* (kb some-exists?))) (describe-entity !alan) (sparql '(:select (?who)() (?who :a !holder)) :trace "show holders") (sparql '(:select (?who)() (?who !ex:holds :_)) :use-reasoner :jena :trace "non distinguished variable using jena") (sparql '(:select (?who)() (?who !ex:holds ?what)) :use-reasoner :pellet :trace "distinguished variable using pellet") (sparql '(:select (?who)() (?who !ex:holds :_)) :use-reasoner :pellet :trace "non distinguished variable using pellet")))