;;;-------------PSV---------------- ;;; -- Steve Polyak 1 December 1998 -- rewrite for CPF. (in-package "ONTOLINGUA-USER") (define-theory CPO-RATIONALE (frame-ontology slot-constraint-sugar cpo) "DESIGN SPACE ANALYSIS (DSA) PSV. The objective of the QOC notation is to lay open for argument the elements of the rationale." :issues ((:copyright "Copyright (c) 1998 Steve Polyak"))) (in-theory 'CPO-RATIONALE) (define-class CPO-RATIONALE (?x) "A rationale describes the design space that was constructed during the development of the process or plan." :def (and (cpo-entity ?x) (has-one ?x rationale.label))) (define-function RATIONALE.LABEL (?rationale) :-> ?label "The human-readable name of the rationale." :def (and (cpo-rationale ?process) (string ?label))) (define-relation RATIONALE.SPEC (?rationale ?spec) "The specification of the rationale using constraints." :def (and (cpo-rationale ?rationale) (cpo-specification ?spec))) (define-class CPO-INCLUDE-RATIONALE-CONSTRAINT (?x) :def (and (cpo-node-constraint ?x) (has-one ?x include-rationale-element))) (define-function INCLUDE-RATIONALE-ELEMENT (?x) :-> ?ent :def (and (cpo-include-rationale-constraint ?x) (cpo-rationale-entity ?ent))) (define-function PROCESS.RATIONALE (?proc) :-> ?rationale "Relates the process to its rationale." :def (and (cpo-rationale ?rationale) (cpo-process ?proc))) (define-class CPO-RATIONALE-ENTITY (?x) "Abstract grouping class for rationale items." :def (and (cpo-entity ?x) (has-one ?x expression))) (define-function RATIONALE-ENTITY.EXPRESSION (?entity) :-> ?exp "The expression of the entity (Q,O, or C)" :def (and (cpo-rationale-entity ?entity) (string ?exp))) (define-class CPO-QUESTION (?x) "They pose key issues for structuring the space of alternatives. The role of the Questions is to delineate local contexts within the design space to help ensure that like options are compared with each other." :def (and (cpo-rationale-entity ?x))) (define-class CPO-OPTION (?x) "Possible alternative answers to the Questions." :def (and (cpo-rationale-entity ?x))) (define-class CPO-CRITERIA (?x) "Criteria represent the desirable properties of the artifact and requirements that it must satisfy. They form the basis against which to evaluate the Options" :def (and (cpo-rationale-entity ?x))) ;;; End file