;;; -*- Mode:Lisp; Package:ONTOLINGUA-USER; Syntax:COMMON-LISP; Base:10 -*-
(in-package "ONTOLINGUA-USER")
(define-theory vt-example (vt-domain)
"An theory for demonstrating how to specify a design task.
It uses the VT-domain domain theory.")
(in-theory 'vt-example)
;;; This is an example specification of the input to a VT design agent.
(define-class EXAMPLE-ELEVATOR-TO-DESIGN (?e)
"A class of elevators satisfying the given requirements,
which are stated as a constraint that assigns values to
some attributes."
:iff-def
(and (elevator ?e)
(valid-component ?e)
(has-constraint
?e
(the-constraint '(and
(= (cabheight ?e) 96)
(= (maxcarcapacity ?e) 3000)
(= (cabintercomspec ?e) "no")
(= (cablanternspec ?e) "no")
(= (carphonespec ?e) "yes")
(= (carpositionindicatorspec ?e) "yes")
(= (dooropeningtype ?e) "side")
(= (doorspeedspec ?e) "double")
(= (floorheightspec ?e) 165)
(= (hoistwaydepth ?e) 110)
(= (hoistwaytofrontmbeam ?e) 3)
(= (hoistwaywidth ?e) 90)
(= (mbeamsupportdistspec ?e) 118)
(= (mbeamsupporttypespec ?e) "pocket")
(= (machineroommbeamspec ?e) 16)
(= (openingheight ?e) 84)
(= (openingstrikesidespec ?e) "right")
(= (openinghoistwayleftspec ?e) 32)
(= (dooropenwidth ?e) 42)
(= (noofopenings ?e) 6)
(= (overheadspec ?e) 192)
(= (pitdepth ?e) 72)
(= (platformheightspec ?e) 84)
(= (platformwidthspec ?e) 70)
(= (elevatorspeed ?e) 250)
(= (travelspec ?e) 729))))))
#|
The above descriptions prescribes the requirements that a particular
elevator design must meet. Using this description a satisfactory
elevator design may be requested with a query. In the following,
we use KQML query syntax:
;;; find one ?e that satifies the definition of
;;; example-elevator-to-design
(ask-one :content (example-elevator-to-design ?e)
:aspect ?e
:language KIF
:ontology VT-DOMAIN
:reply-with REQUEST-10)
The following reply might sent by the design agent:
(reply :content DESIGN-B7
:in-reply-to REQUEST-10
:language KIF
:ontology VT-DOMAIN)
The attributes of DESIGN-B7 can then be found through additional
queries such as:
(evaluate :content (cabwt DESIGN-B7)
:reply-with CAB-WEIGHT
:language KIF
:ontology VT-DOMAIN)
;;; cabwt is a slot of DESIGN-B7 that was computed by the design agent
|#
This Lisp-to-HTML translation was brought to you by
François Gerbaux and Tom Gruber