;;; Mode: Lisp; Package: ocml ;;; The Open University (in-package "OCML") (in-ontology aktive-portal-ontology) (def-class ACTIVITY (temporal-thing) ((has-sub-activity :type activity) (has-status :type activity-status) (uses-resource :type thing) (produces-output :type thing))) (def-class activity-status (string)) (def-relation INVOLVES-ORGANIZATION (?p ?o) "It is sufficient that somebody in unit ?u works in project ?p" :constraint (and (project ?p)(organization ?o)) :sufficient (and (project ?p)(involves-organization-unit ?p ?u)(unit-of-organization ?u ?o))) (def-relation INVOLVES-ORGANIZATION-UNIT (?p ?u) "It is sufficient that somebody in unit ?u works in project ?p" :constraint (and (project ?p)(organization-unit ?u)) :sufficient (and (project ?p) (has-project-member ?p ?x) (works-in-unit ?x ?u))) (def-class PROJECT-OUTPUT (temporal-thing) ?x :iff-def (or (event ?x) (technology ?x) (method ?x) (organization ?x) (information-bearing-object ?x))) (def-class PROJECT (activity) ?x ((has-leading-organization :type organization) (produces-output :type project-output) (contributes-to-output :type project-output) (involves-organization :type organization :min-cardinality 1) (involves-organization-unit :type organization-unit :min-cardinality 1) (has-goals :type string) (has-project-leader :type person) (has-project-member :type person :min-cardinality 1) (has-funding :type grant) (has-web-address :type URL) (has-publication :type publication) (has-key-publication :type publication) (addresses-generic-area-of-interest :type generic-area-of-interest) ) :constraint (and (forall ?y (=> (has-leading-organization ?x ?y) (involves-organization ?x ?y))) (forall ?y (=> (has-project-leader ?x ?y) (has-project-member ?x ?y))))) (def-relation CONTRIBUTES-TO-OUTPUT (?x ?c) :sufficient (produces-output ?x ?c)) (def-class GRANT (financial-award) ((has-funding-source :type organization) (has-grant-value :type amount-of-money) (has-grant-reference :type string)) :slot-renaming ((has-grant-value has-amount) ))