wsmlVariant _"http://www.wsmo.org/wsml/wsml-syntax/wsml-flight" namespace { _"http://ip-super.org/ontologies/organisation/bmo/v1.1.4#", wsml _"http://www.wsmo.org/wsml/wsml-syntax#", wsmostudio _"http://www.wsmostudio.org#", cobra _"http://ip-super.org/ontologies/process/cobra/v1.1.1#", dc _"http://purl.org/dc/elements/1.1#" } ontology bmo nonFunctionalProperties dc#title hasValue "BMO - Business Motivation Ontology" wsmostudio#version hasValue "0.7.3.2" dc#creator hasValue {"Ivan Markovic", "Florian Hasibether"} endNonFunctionalProperties importsOntology _"http://www.ip-super.org/ontologies/process/cobra/v1.1.1#cobra" /* Acting entities */ concept OrganizationalUnit subConceptOf cobra#Agent nonFunctionalProperties dc#description hasValue "An Organizational Unit is in charge of defining ends, determining strategies and is responsible for business Activities." endNonFunctionalProperties hasName ofType (0 1) _string hasDescription ofType (0 1) _string relation definesEnd( ofType OrganizationUnit, ofType End ) relation EndDefinedBy( ofType End, ofType OrganizationUnit ) axiom OrganizationUnitEndAxiom definedBy definesEnd(?x,?y) :- EndDefinedBy(?y,?x) and ?x memberOf OrganizationUnit and ?y memberOf End. EndDefinedBy(?y,?x) :- definesEnd(?x,?y) and ?x memberOf End and ?y memberOf OrganizationUnit. relation establishes( ofType OrganizationUnit, ofType Means ) relation establishedBy( ofType Means, ofType OrganizationUnit ) axiom OrganizationUnitMeansAxiom definedBy establishes(?x,?y) :- EndDefinedBy(?y,?x) and ?x memberOf OrganizationUnit and ?y memberOf Means. EndDefinedBy(?y,?x) :- establishes(?x,?y) and ?x memberOf Means and ?y memberOf OrganizationUnit. relation determines( ofType OrganizationUnit, ofType Strategy ) relation determinedBy( ofType Strategy, ofType OrganizationUnit ) axiom OrganizationUnitStrategyAxiom definedBy determines(?x,?y) :- determinedBy(?y,?x) and ?x memberOf OrganizationUnit and ?y memberOf Strategy. determinedBy(?y,?x) :- determines(?x,?y) and ?x memberOf Strategy and ?y memberOf OrganizationUnit. relation responsibleFor( ofType OrganizationUnit, ofType Activity ) relation responsibilityOf( ofType Activity, ofType OrganizationUnit ) axiom OrganizationUnitActivityAxiom definedBy responsibleFor(?x,?y) :- responsibilityOf(?y,?x) and ?x memberOf OrganizationUnit and ?y memberOf Activity. responsibilityOf(?y,?x) :- responsibleFor(?x,?y) and ?x memberOf Activity and ?y memberOf OrganizationUnit. relation makes( ofType OrganizationUnit, ofType Assessment ) relation madeBy( ofType Assessment, ofType OrganizationUnit ) axiom OrganizationUnitAssessmentAxiom definedBy makes(?x,?y) :- madeBy(?y,?x) and ?x memberOf OrganizationUnit and ?y memberOf Assessment. madeBy(?y,?x) :- makes(?x,?y) and ?x memberOf Assessment and ?y memberOf OrganizationUnit. /* Ends */ concept End subConceptOf cobra#NonAgentiveNonPhysicalEntity nonFunctionalProperties dc#description hasValue "Ends are about what an enterprise wants to be. The definitionb of an end does not say how it will be achieved." endNonFunctionalProperties hasName ofType (0 1) _string hasDescription ofType (0 1) _string relation judgedIn( ofType End, ofType Assessment ) relation onAchievementOf ( ofType Assessment, ofType End ) axiom EndAssessmentAxiom definedBy judgedIn(?x,?y) :- onAchievementOf(?y,?x) and ?x memberOf End and ?y memberOf Assessment. onAchievementOf(?y,?x) :- judgedIn(?x,?y) and ?x memberOf Assessment and ?y memberOf End. concept DesiredResult subConceptOf End nonFunctionalProperties dc#description hasValue "A desired result is either a less specific goal or a more specific objective." endNonFunctionalProperties hasStatus ofType (0 1) DesiredResultAssessmentStatus concept Vision subConceptOf End nonFunctionalProperties dc#description hasValue "A vision is an overall image of what the organization wants to be or become." endNonFunctionalProperties relation madeOperativeBy( ofType Vision, ofType Mission ) relation makesOperative( ofType Mission, ofType Vision ) axiom VisionMissionAxiom definedBy madeOperativeBy(?x,?y) :- makesOperative(?y,?x) and ?x memberOf Vision and ?y memberOf Mission. makesOperative(?y,?x) :- madeOperativeBy(?x,?y) and ?x memberOf Vision and ?y memberOf Mission. concept Goal subConceptOf DesiredResult nonFunctionalProperties dc#description hasValue "A goal is something a business wants to achieve." endNonFunctionalProperties isSatisfied ofType (0 1) _boolean hasPriority ofType _integer hasEvidence ofType _integer hasDeadline ofType _date satisfaction ofType (0 1) Label denial ofType (0 1) Label relation hasMetric ( ofType Goal, ofType Metric ) relation measures ( ofType Metric, ofType Goal ) axiom GoalMetricAxiom definedBy hasMetric(?x,?y) :- measuredBy(?y,?x) and ?x memberOf Goal and ?y memberOf Metric. measuredBy(?y,?x) :- hasMetric(?x,?y) and ?x memberOf Metric and ?y memberOf Goal. relation amplifies ( ofType Goal, ofType Vision ) relation amplifiedBy ( ofType Vision, ofType Goal ) axiom GoalVisionAxiom definedBy amplifies(?x,?y) :- amplifiedBy(?y,?x) and ?x memberOf Goal and ?y memberOf Vision. amplifiedBy(?y,?x) :- amplifies(?x,?y) and ?x memberOf Vision and ?y memberOf Goal. concept DesiredOutcomeAssessmentResult subConceptOf cobra#QualitativeAnalysisResult instance Achievement memberOf DesiredOutcomeAssessmentResult instance Failure memberOf DesiredOutcomeAssessmentResult concept DesiredOutcomeAssessment subConceptOf cobra#QualitativeAnalysis relation DesiredOutcomeAssessmentHasResult ( ofType DesiredOutcomeAssessment, ofType DesiredOutcomeAssessmentResult, ofType DesiredOutcome ) concept Objective subConceptOf Goal nonFunctionalProperties dc#description hasValue "An objective is a measurable goal. It is a step along the way towards a goal." endNonFunctionalProperties relation quantifies( ofType Objective, ofType Goal ) relation isQuantifiedBy( ofType Goal, ofType Objective ) axiom ObjectiveGoalAxiom definedBy quantifies(?x,?y) :- isQuantifiedBy(?y,?x) and ?x memberOf Objective and ?y memberOf Goal. isQuantifiedBy(?y,?x) :- quantifies(?x,?y) and ?x memberOf Goal and ?y memberOf Objective. /* Means */ concept Means subConceptOf cobra#NonAgentiveNonPhysicalEntity nonFunctionalProperties dc#description hasValue "Means are about what an enterprise has decided to do in order to become what it wants to be. A means is something that may be called upon, activated, or enforced to achieve Ends. It does include neither tasks nor responsibility for tasks." endNonFunctionalProperties hasName ofType _string hasDescription ofType _string relation affectedBy ( ofType Means, ofType Assessment ) relation affectsEmploymentOf ( ofType Assessment, ofType Means ) axiom MeansAssessmentAxiom definedBy affectedBy(?x,?y) :- affectsEmploymentOf(?y,?x) and ?x memberOf Means and ?y memberOf Assessment. affectsEmploymentOf(?y,?x) :- affectedBy(?x,?y) and ?x memberOf Assessment and ?y memberOf Means. concept Mission subConceptOf Means nonFunctionalProperties dc#description hasValue "A mission indicates ongoing operational activity of the enterprise. Its definition should be broad enough to cover all strategies and the complete area of operations." endNonFunctionalProperties concept CourseOfAction subConceptOf Means nonFunctionalProperties dc#description hasValue "A Course of Action defines what has to be done, not how well it has to be done. Metrics of performance are defined in objectives that are supported by the course of action. Courses of action do not necessarily have to support desired results directly, they can enable other courses of action." endNonFunctionalProperties relation channelsEffortsTowards ( ofType CourseOfAction, ofType DesiredOutcome ) relation supportedBy ( ofType DesiredOutcome, ofType CourseOfAction ) axiom CourseOfActionDesiredOutcomeAxiom definedBy channelsEffortsTowards(?x,?y) :- supportedBy(?y,?x) and ?x memberOf CourseOfAction and ?y memberOf DesiredOutcome. supportedBy(?y,?x) :- channelsEffortsTowards(?x,?y) and ?x memberOf DesiredOutcome and ?y memberOf CourseOfAction. concept Strategy subConceptOf CourseOfAction nonFunctionalProperties dc#description hasValue "Strategies are Courses of Action that are long term and broad in scope." endNonFunctionalProperties relation isComponentOfPlanFor ( ofType Strategy, ofType Mission ) relation plannedByMeansOf ( ofType Mission, ofType Strategy ) axiom StrategyMissionAxiom definedBy isComponentOfPlanFor(?x,?y) :- plannedByMeansOf(?y,?x) and ?x memberOf Strategy and ?y memberOf Mission. plannedByMeansOf(?y,?x) :- isComponentOfPlanFor(?x,?y) and ?x memberOf Mission and ?y memberOf Strategy. concept Tactic subConceptOf CourseOfAction nonFunctionalProperties dc#description hasValue "Each strategy is implemented by tactics, which tend to be shorter term and narrower in scope. A tactic may contribute to the implementation of more than one strategy." endNonFunctionalProperties relation implements ( ofType Tactic, ofType Strategy ) relation implementedBy ( ofType Strategy, ofType Tactic ) axiom TacticStrategyAxiom definedBy implements(?x,?y) :- implementedBy(?y,?x) and ?x memberOf Tactic and ?y memberOf Strategy. implementedBy(?y,?x) :- implements(?x,?y) and ?x memberOf Strategy and ?y memberOf Tactic. concept Directive subConceptOf Means nonFunctionalProperties dc#description hasValue "Directives are set up to govern the course of action." endNonFunctionalProperties hasEnforcementLevel ofType EnforcementLevel relation supportsAchievementOf ( ofType Directive, ofType DesiredOutcome ) relation hasAchievementSupportedBy ( ofType DesiredOutcome, ofType Directive ) axiom DirectiveDesiredOutcomeAxiom definedBy supportsAchievementOf(?x,?y) :- hasAchievementSupportedBy(?y,?x) and ?x memberOf Directive and ?y memberOf DesiredOutcome. hasAchievementSupportedBy(?y,?x) :- supportsAchievementOf(?x,?y) and ?x memberOf DesiredOutcome and ?y memberOf Directive. axiom supportsAchievementOfTransitivityAxiom definedBy supportsAchievementOf(?x,?z) :- ?x memberOf Directive and ?y memberOf DesiredOutcome and ?z memberOf DesiredOutcome and supportsAchievementOf(?x,?y) and isSubGoalOf(?y,?z). relation governs ( ofType Directive, ofType CourseOfAction ) relation governedBy ( ofType CourseOfAction, ofType Directive ) axiom DirectiveCourseOfActionAxiom definedBy governs(?x,?y) :- governedBy(?y,?x) and ?x memberOf Directive and ?y memberOf CourseOfAction. governedBy(?y,?x) :- governs(?x,?y) and ?x memberOf CourseOfAction and ?y memberOf Directive. relation sourceOf ( ofType Directive, ofType CourseOfAction ) relation formulatedBasedOn ( ofType CourseOfAction, ofType Directive ) axiom DirectiveCourseOfActionAxiom definedBy sourceOf(?x,?y) :- formulatedBasedOn(?y,?x) and ?x memberOf Directive and ?y memberOf CourseOfAction. formulatedBasedOn(?y,?x) :- sourceOf(?x,?y) and ?x memberOf CourseOfAction and ?y memberOf Directive. relation guides ( ofType Directive, ofType Activity ) relation guidedBy ( ofType Activity, ofType Directive ) axiom DirectiveActivityAxiom definedBy guides(?x,?y) :- guidedBy(?y,?x) and ?x memberOf Directive and ?y memberOf Activity. guidedBy(?y,?x) :- guides(?x,?y) and ?x memberOf Activity and ?y memberOf Directive. relation hasEnforcementLevelEffectedBy ( ofType Directive, ofType Tactic ) relation effectsEnforcementLevelOf ( ofType Tactic, ofType Directive ) axiom DirectiveTacticAxiom definedBy hasEnforcementLevelEffectedBy(?x,?y) :- effectsEnforcementLevelOf(?y,?x) and ?x memberOf Directive and ?y memberOf Tactic. effectsEnforcementLevelOf(?y,?x) :- hasEnforcementLevelEffectedBy(?x,?y) and ?x memberOf Tactic and ?y memberOf Directive. concept EnforcementLevel nonFunctionalProperties dc#description hasValue "An Enforcement Level represent alternatives, which indicates the severity of action imposed to put or keep a directive in force." endNonFunctionalProperties hasName ofType _string hasDescription ofType _string instance StrictlyEnforced memberOf EnforcementLevel hasName hasValue "Strictly enforced" hasDescription hasValue "If rule is violated a penalty is applied." instance DeferredEnforcement memberOf EnforcementLevel hasName hasValue "Deferred enforcement" hasDescription hasValue "Strictly enforced, but enforcement may be delayed with required skills" instance PreAuthorizedOverride memberOf EnforcementLevel hasName hasValue "Pre-authorized override" hasDescription hasValue "Enforced, but exceptions allowed, with prior approval for actors with before-the-fact override authorization." instance PostJustifiedOverride memberOf EnforcementLevel hasName hasValue "Post-justified override" hasDescription hasValue "If not approved after the fact, you may be subject to sanction or other consequences." instance OverrideWithExplanation memberOf EnforcementLevel hasName hasValue "Override with explanation" hasDescription hasValue "Comment must be provided when the violation occurs." instance Guideline memberOf EnforcementLevel hasName hasValue "Guideline" hasDescription hasValue "Suggested, but not enforced." /* Activity */ concept Activity subConceptOf cobra#Activity nonFunctionalProperties dc#description hasValue "An activity is the ultimate means of realizing a course of action. This concept allows for specification of any business activity (process or task) at a high-level." endNonFunctionalProperties hasDescription ofType (1) _string relation responsibilityOf ( ofType Activity, ofType OrganizationUnit ) relation responsibleFor ( ofType OrganizationUnit, ofType Activity ) axiom ActivityOrganizationUnitAxiom definedBy responsibilityOf(?x,?y) :- responsibleFor(?y,?x) and ?x memberOf Activity and ?y memberOf OrganizationUnit. responsibleFor(?y,?x) :- responsibilityOf(?x,?y) and ?x memberOf OrganizationUnit and ?y memberOf Activity. relation realizes ( ofType Activity, ofType CourseOfAction ) relation isRealizedBy ( ofType CourseOfAction, ofType Activity ) axiom ActivityAxiom definedBy realizes(?x,?y) :- isRealizedBy(?y,?x) and ?x memberOf Activity and ?y memberOf CourseOfAction. isRealizedBy(?y,?x) :- realizes(?x,?y) and ?x memberOf CourseOfAction and ?y memberOf Activity. /* Influencers */ concept Influencer subConceptOf cobra#AgentiveRole nonFunctionalProperties dc#description hasValue "An Influencer can be anything that has the capability to produce an effect on the business." endNonFunctionalProperties hasName ofType (1) _string hasDescription ofType (1) _string assessedAs ofType Assessment relation recognizedBy ( ofType Influencer, ofType OrganizationUnit ) relation recognizes ( ofType OrganizationUnit, ofType Influencer) axiom InfluencerOrganizationUnitAxiom definedBy recognizedBy(?x,?y) :- recognizes(?y,?x) and ?x memberOf Influencer and ?y memberOf OrganizationUnit. recognizes(?y,?x) :- recognizedBy(?x,?y) and ?x memberOf OrganizationUnit and ?y memberOf Influencer. relation judgedIn ( ofType Influencer, ofType Assessment ) relation judges ( ofType Assessment, ofType Influencer) axiom InfluencerAssessmentAxiom definedBy judgedIn(?x,?y) :- judges(?y,?x) and ?x memberOf Influencer and ?y memberOf Assessment. judges(?y,?x) :- judgedIn(?x,?y) and ?x memberOf Assessment and ?y memberOf Influencer. concept InternalInfluencer subConceptOf Influencer concept ExternalInfluencer subConceptOf Influencer concept DesiredOutcomeAssessmentResult subConceptOf cobra#QualitativeAnalysisResult instance Achievement memberOf DesiredOutcomeAssessmentResult instance Failure memberOf DesiredOutcomeAssessmentResult concept DesiredOutcomeAssessment subConceptOf cobra#QualitativeAnalysis relation DesiredOutcomeAssessmentHasResult ( ofType DesiredOutcomeAssessment, ofType DesiredOutcomeAssessmentResult, ofType DesiredOutcome ) /* Metrics */ concept Metric subConceptOf cobra#QuantitativeAnalysis nonFunctionalProperties dc#description hasValue "Any kind of Metric." endNonFunctionalProperties hasName ofType _string hasDescription ofType _string hasCalculation ofType _string hasPerspective ofType MeasurementPerspective hasTarget ofType _string hasType ofType _string concept KPI subConceptOf cobra#NonAgentiveRole nonFunctionalProperties dc#description hasValue "A key performance indicator is a role of Metric." endNonFunctionalProperties relation playsKPIRole ( ofType Metric, ofType KPI, ofType Objective ) subRelationOf cobra#playsRoleIn concept MeasurementPerspective nonFunctionalProperties dc#description hasValue "A Metric can be relevant on several perspectives. Following Kaplan and Norton (1992) one can distinguish a (1) Financial, (2) Customer, (3) Internal Business Processes and (4) Learning & Growth perspective." endNonFunctionalProperties instance Financial_Perspective memberOf MeasurementPerspective instance Customer_Perspective memberOf MeasurementPerspective instance Process_Perspective memberOf MeasurementPerspective instance Intangible_Perspective memberOf MeasurementPerspective concept Assessment subConceptOf cobra#QualitativeAnalysis nonFunctionalProperties dc#description hasValue "An assessment is the procedure of the judgement of some influencer." endNonFunctionalProperties hasName ofType (1) _string hasDescription ofType (1) _string instance SWOT memberOf Assessment relation playsInfluencerRole ( ofType cobra#Agent, ofType Influencer, ofType Assessment ) relation providesImpetusFor ( ofType Assessment, ofType Directive ) relation motivatedByAssessment ( ofType Directive, ofType Assessment ) axiom AssessmentDirectiveAxiom definedBy providesImpetusFor(?x,?y) :- motivatedByAssessment(?y,?x) and ?x memberOf Assessment and ?y memberOf Directive. motivatedByAssessment(?y,?x) :- providesImpetusFor(?x,?y) and ?x memberOf Directive and ?y memberOf Assessment. concept Strength subConceptOf InternalInfluencer concept Weakness subConceptOf InternalInfluencer concept Opportunity subConceptOf ExternalInfluencer concept Threat subConceptOf ExternalInfluencer /* Relations */ relation isSubGoalOf( ofType Goal, ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal can have one or more subgoals." endNonFunctionalProperties relation isRootGoal( ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal tree has a root goal." endNonFunctionalProperties relation isAncGoalOf( ofType Goal, ofType Goal) nonFunctionalProperties dc#description hasValue "All goals connected to a goal by the subgoal relation are it's ancestor goals." endNonFunctionalProperties relation isLeafGoal ( ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal which has no subgoals." dc#relation hasValue "concept Goal" endNonFunctionalProperties relation isNotRootGoal( ofType Goal ) nonFunctionalProperties dc#description hasValue "All goals which are not a root goal." dc#relation hasValue "concept Goal" endNonFunctionalProperties relation isIntermediateGoal ( ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal that is neither a root goal nor a leaf goal." dc#relation hasValue "concept Goal" endNonFunctionalProperties relation UnsatisfiedGoals( ofType Goal ) nonFunctionalProperties dc#description hasValue "All goals which are not known to be satisfied." dc#relation hasValue "concept Goal" endNonFunctionalProperties relation higherPriority ( ofType Goal, ofType Goal ) nonFunctionalProperties dc#description hasValue "Goal 1 is of higher priority than goal 2." endNonFunctionalProperties relation lowerPriority ( ofType Goal, ofType Goal ) nonFunctionalProperties dc#description hasValue "Goal 1 is of lower priority than goal 2." endNonFunctionalProperties relation conflicts ( ofType Goal, ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal is in conflict with another if it hinders the other and has lower priority." endNonFunctionalProperties /* Axioms */ axiom GoalObjective nonFunctionalProperties dc#description hasValue "A goal is said to be an objective, if it is SMART." endNonFunctionalProperties definedBy ?x memberOf Objective :- ?x memberOf Goal and ?y memberOf Metric and hasMetric(?x,?y). axiom QuantifiedGoals nonFunctionalProperties dc#description hasValue "A goal quantifies another, if it is an objective and is its direct subgoal." endNonFunctionalProperties definedBy ?x[quantifies hasValue ?y] :- ?x memberOf Objective and ?y memberOf Goal and ?x[hasParentGoal hasValue ?y]. axiom GoalPartition nonFunctionalProperties dc#description hasValue "A goal is part of another, if it is subgoal of another." endNonFunctionalProperties definedBy ?x[partOf hasValue ?y] :- ?x memberOf Goal and ?y memberOf Goal and ?x[hasParentGoal hasValue ?y]. axiom PriorityDef nonFunctionalProperties dc#description hasValue "Goals are prioritized according to their attribute." dc#relation hasValue "relation higherPriority(?x,?y), relation lowerPriority(?x,?y)" endNonFunctionalProperties definedBy higherPriority(?x,?y) :- ?x[hasPriority hasValue ?a] and ?y[hasPriority hasValue ?b] and ?x memberOf Goal and ?y memberOf Goal and wsml#greaterThan(?a,?b). lowerPriority(?x,?y) :- higherPriority(?y,?x). axiom PriorityConflictAxiom nonFunctionalProperties dc#description hasValue "A goal is in conflict with another if it hinders the other and has lower priority." dc#description hasValue "relation conflicts(?x,?y)" endNonFunctionalProperties definedBy conflicts(?x,?y) :- lowerPriority(?x,?y) and ( WeakNegativeContribution(?x,?y) or StrongNegativeContribution(?x,?y) ). axiom swotDef nonFunctionalProperties dc#description hasValue "External influencers are either opportunities or threats and internal influencers are either strength or weaknesses." dc#relation hasValue "concept Influencer" endNonFunctionalProperties definedBy !- (?x memberOf InternalInfluencer and (?x memberOf Threat or ?x memberOf Opportunity)). !- (?x memberOf ExternalInfluencer and (?x memberOf Weakness or ?x memberOf Strenght)). axiom InfluencerRoleEitherInternalOrExternal nonFunctionalProperties dc#description hasValue "An Influencer can not be both, internal and external at the same time" dc#relation hasValue "concept Influencer" endNonFunctionalProperties definedBy !- ?x memberOf Influencer and ?y memberOf Influencer and ?x memberOf InternalInfluencer and ?y memberOf ExternalInfluencer and ?x != ?y. axiom isSubGoalDef nonFunctionalProperties dc#description hasValue "Refinement is a special type of subgoal relation." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isSubGoalOf(?x,?z) :- ?x memberOf Goal and ?y memberOf Goal and ?z memberOf Goal and Refinement(?x,?y,?z). isSubGoalOf(?y,?z) :- ?x memberOf Goal and ?y memberOf Goal and ?z memberOf Goal and Refinement(?x,?y,?z). axiom isNotRootGoalDef nonFunctionalProperties dc#description hasValue "Definition of all goals which are not a root goal." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isNotRootGoal(?y) :- ?y memberOf Goal and ?x memberOf Goal and isSubGoalOf(?y,?x) and naf isSubGoalOf(?x,?y). axiom isRootGoalDef nonFunctionalProperties dc#description hasValue "A root goal is a goal, which is not known to be inside the goal tree. Thus, it has no parent goals." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isRootGoal(?y) :- ?y memberOf Goal and naf isNotRootGoal(?y). axiom isIntermediateGoalDef nonFunctionalProperties dc#description hasValue "An intermediate goal is subgoal of another and has subgoals itself." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isIntermediateGoal(?y) :- ?x memberOf Goal and ?y memberOf Goal and ?z memberOf Goal and isSubGoalOf(?x,?y) and isSubGoalOf(?y,?z). axiom isLeafGoalDef nonFunctionalProperties dc#description hasValue "A leaf goal is a goal, which is not known to be a root goal nor is it known to be an intermediate goal." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isLeafGoal(?x) :- ?x memberOf Goal and naf isRootGoal(?x) and naf isIntermediateGoal(?x). axiom UnsatisfiedGoalsDef nonFunctionalProperties dc#description hasValue "All goals that are not explicity known or infered to be satisfied" dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy UnsatisfiedGoals(?x) :- ?x memberOf Goal and naf partySatisfaction(?x). axiom ParentGoalfromSubGoal nonFunctionalProperties dc#description hasValue "A goal which is known to be a subgoal of another has the one as its parent goal." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy ?x[hasParentGoal hasValue ?y] :- ?x memberOf Goal and ?y memberOf Goal and isSubGoalOf(?x,?y). axiom SubGoalfromParentGoal nonFunctionalProperties dc#description hasValue "Two goals which are known to be in the subgoal relation are infered to be parent and subgoal respectively." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy isSubGoalOf(?x,?y) :- ?x memberOf Goal and ?y memberOf Goal and ?x[hasParentGoal hasValue ?y]. axiom SubGoalNonTransitive nonFunctionalProperties dc#description hasValue "The subgoal relation is non-transitive." dc#relation hasValue "concept Goal" endNonFunctionalProperties definedBy !- isSubGoalOf(?x,?x) and ?x memberOf Goal. axiom GoalTreeNonCyclic nonFunctionalProperties dc#description hasValue "There are no cycles in a goal tree." dc#relation hasValue "relation isAncGoalOf" endNonFunctionalProperties definedBy !- isAncGoalOf(?x,?x). axiom isAncGoalOf nonFunctionalProperties dc#description hasValue "A goal is another goal's ancestor, if there is link via the subgoal relation." dc#relation hasValue "isAncGoalOf( ofType Goal, ofType Goal)" endNonFunctionalProperties definedBy isAncGoalOf(?x,?y) :- isSubGoalOf(?x,?y). isAncGoalOf(?x,?z) :- isSubGoalOf(?x,?y) and isSubGoalOf(?y,?z). axiom StrategyDirectiveActivityAxiom definedBy realizes(?x, ?z) :- ?x memberOf Activity and ?y memberOf Directive and ?z memberOf Strategy and governs(?y, ?x) and formulatedBasedOn(?z, ?y). /* Goal contribution semantics */ concept Label instance full memberOf Label instance partial memberOf Label instance none memberOf Label concept Helper subConceptOf Goal // Satifaction & denial relations relation fullSatisfaction ( ofType Goal ) relation partlySatisfaction ( ofType Goal ) relation fullDenial ( ofType Goal ) relation partlyDenial ( ofType Goal ) // Invariant Axioms axiom InvariantAxioms definedBy partlySatisfaction(?x) :- fullSatisfaction(?x). partlyDenial(?x) :- fullDenial(?x). relation Refinement( ofType Goal, ofType Goal, ofType Goal ) relation necessaryGoals( ofType Goal, ofType Goal, ofType Goal ) subRelationOf Refinement axiom necessaryGoalsAxiom definedBy fullSatisfaction(?z) :- necessaryGoals(?x,?y,?z) and fullSatisfaction(?x) and fullSatisfaction(?y). partlySatisfaction(?z) :- necessaryGoals(?x,?y,?z) and partlySatisfaction(?x) and partlySatisfaction(?y). fullDenial(?z) :- necessaryGoals(?x,?y,?z) and ( fullDenial(?x) or fullDenial(?y) ). partlyDenial(?z) :- necessaryGoals(?x,?y,?z) and ( partlyDenial(?x) or partlyDenial(?y) ). relation sufficientGoals ( ofType Goal, ofType Goal, ofType Goal ) subRelationOf Refinement axiom sufficientGoalsAxiom definedBy fullSatisfaction(?z) :- sufficientGoals(?x,?y,?z) and ( fullSatisfaction(?x) or fullSatisfaction(?y) ). partlySatisfaction(?z) :- sufficientGoals(?x,?y,?z) and ( partlySatisfaction(?x) or partlySatisfaction(?y) ). fullDenial(?z) :- sufficientGoals(?x,?y,?z) and ( fullDenial(?x) and fullDenial(?y) ). partlyDenial(?z) :- sufficientGoals(?x,?y,?z) and ( partlyDenial(?x) and partlyDenial(?y) ). // Contribution links relation Contribution ( ofType Goal, ofType Goal ) nonFunctionalProperties dc#description hasValue "A goal can influence another goal in a positive or negative way." endNonFunctionalProperties relation WeakPositiveSatisfactionContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakPositiveSatisfactionContributionAxiom definedBy partlySatisfaction(?y) :- WeakPositiveSatisfactionContribution(?x,?y) and partlySatisfaction(?x). relation WeakNegativeSatisfactionContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakNegativeSatisfactionContributionAxiom definedBy partlyDenial(?y) :- WeakNegativeSatisfactionContribution(?x,?y) and partlySatisfaction(?x). relation StrongPositiveSatisfactionContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongPositiveSatisfactionContributionAxiom definedBy fullSatisfaction(?y) :- StrongPositiveSatisfactionContribution(?x,?y) and fullSatisfaction(?x). partlySatisfaction(?y) :- StrongPositiveSatisfactionContribution(?x,?y) and partlySatisfaction(?x). relation StrongNegativeSatisfactionContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongNegativeSatisfactionContributionAxiom definedBy fullDenial(?y) :- StrongNegativeSatisfactionContribution(?x,?y) and fullSatisfaction(?x). partlyDenial(?y) :- StrongNegativeSatisfactionContribution(?x,?y) and partlySatisfaction(?x). relation WeakPositiveDenialContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakPositiveDenialContributionAxiom definedBy partlyDenial(?y) :- WeakPositiveDenialContribution(?x,?y) and partlyDenial(?x). relation WeakNegativeDenialContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakNegativeDenialContributionAxiom definedBy partlyDenial(?y) :- WeakNegativeDenialContribution(?x,?y) and partlySatisfaction(?x). relation StrongPositiveDenialContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongPositiveDenialContributionAxiom definedBy fullDenial(?y) :- StrongPositiveDenialContribution(?x,?y) and fullDenial(?x). partlyDenial(?y) :- StrongPositiveDenialContribution(?x,?y) and partlyDenial(?x). relation StrongNegativeDenialContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongNegativeDenialContributionAxiom definedBy fullSatisfaction(?y) :- StrongNegativeDenialContribution(?x,?y) and fullDenial(?x). partlySatisfaction(?y) :- StrongNegativeDenialContribution(?x,?y) and partlyDenial(?x). // Aggregated contributions relation WeakPositiveContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakPositiveContributionAxiom definedBy WeakPositiveSatisfactionContribution(?x,?y) :- WeakPositiveContribution(?x,?y). WeakPositiveDenialContribution(?x,?y) :- WeakPositiveContribution(?x,?y). relation WeakNegativeContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom WeakNegativeContributionAxiom definedBy WeakNegativeSatisfactionContribution(?x,?y) :- WeakNegativeContribution(?x,?y). WeakNegativeDenialContribution(?x,?y) :- WeakNegativeContribution(?x,?y). relation StrongPositiveContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongPositiveContributionAxiom definedBy StrongPositiveSatisfactionContribution(?x,?y) :- StrongPositiveContribution(?x,?y). StrongPositiveDenialContribution(?x,?y) :- StrongPositiveContribution(?x,?y). relation StrongNegativeContribution ( ofType Goal, ofType Goal ) subRelationOf Contribution axiom StrongNegativeContributionAxiom definedBy StrongNegativeSatisfactionContribution(?x,?y) :- StrongNegativeContribution(?x,?y). StrongNegativeDenialContribution(?x,?y) :- StrongNegativeContribution(?x,?y). // Conflicts relation GoalConflict ( ofType Goal ) relation WeakConflict( ofType Goal ) subRelationOf GoalConflict relation StrongConflict( ofType Goal ) subRelationOf GoalConflict axiom ConflictAxiom definedBy WeakConflict(?x) :- partlySatisfaction(?x) and partlyDenial(?x). StrongConflict(?x) :- fullSatisfaction(?x) and fullDenial(?x). // Infer satifaction & denial attributes for goals axiom GoalEvidenceAxiom definedBy ?x[denial hasValue full] :- fullDenial(?x) and naf WeakConflict(?x). ?x[denial hasValue partial] :- partlyDenial(?x) and naf fullDenial(?x) and naf WeakConflict(?x). ?x[satisfaction hasValue full] :- fullSatisfaction(?x) and naf WeakConflict(?x). ?x[satisfaction hasValue partial] :- partlySatisfaction(?x) and naf fullSatisfaction(?x) and naf WeakConflict(?x). ?x[denial hasValue none] :- ?x memberOf Goal and naf partlyDenial(?x) and naf WeakConflict(?x). ?x[satisfaction hasValue none] :- ?x memberOf Goal and naf partlySatisfaction(?x) and naf WeakConflict(?x).