(in-package "ONTOLINGUA-USER")
(define-theory DME-CML (cml component-assemblies)
"Extensions to the base CML theory for DME.")
(in-theory 'DME-CML)
(define-class operating-mode-model (?x)
"The class of all model fragments that denote behavior of a component.
By convention, devices will have a subclass of this class whose immediate
subclasses are all of the behavior modes of a given device,
i.e. Battery-Operating-modes is a superclass of
the overcharged, undercharged etc. modes."
:def (model-fragment ?x))
(define-class structural-element-model (?x)
"All model fragments that contain any structural-element-model description."
:def (model-fragment ?x))
(define-class junction (?x)
"a junction that connects terminals"
:def (structural-element-model ?x))
(define-class terminal (?x)
"a terminal of any type for connecting components"
:def (structural-element-model ?x) )
(define-class system-model (?x)
"All model fragments that contain any system description.
A system is a type of structural-element-models that are composed of
one or more components, other than terminals."
:def (structural-element-model ?x))
(define-relation connected-terminals (?junction ?terminal)
"(connected-terminals ?j ?t) means that junction ?j connects
terminal ?t to other terminals ?t2 for which (connected-terminals ?j ?t2)
also holds."
:def (and (junction ?junction)
(terminal ?terminal)))
(define-relation all= (?time ?set)
"?SET is a set of fluents. They all have the same value at the given ?TIME."
:constraints (set ?set)
:iff-def (forall (?e1 ?e2)
(=> (and (member ?e1 ?set) (member ?e2 ?set))
(= (value-at ?e1 ?time)
(value-at ?e2 ?time)))))