wsmlVariant _"http://www.wsmo.org/wsml/wsml-syntax/wsml-flight" namespace { _"http://ip-super.org/ontologies/process/upo/v2.1.3#" , upo201 _"http://ip-super.org/ontologies/process/upo/v2.0.1#", dc _"http://purl.org/dc/elements/1.1#", wsmostudio _"http://www.wsmostudio.org#" } ontology upo nonFunctionalProperties dc#date hasValue "$Date: 23/01/2009$" dc#description hasValue "Upper-Level Process Ontology" wsmostudio#version hasValue "0.7.3" dc#subject hasValue "Semantic Business Process Management" dc#publisher hasValue "European FP6 Integrated Project SUPER" dc#contributor hasValue {"Liliana Cabral", "Barry Norton", "Carlos Pedrinaci", "Ivan Markovic", "Ingo Weber", "Pierre Grenon"} dc#title hasValue "UPO - Upper Level Process Ontology - Prince of Wales v1" dc#creator hasValue {"John Domingue", "Martin Hepp"} dc#language hasValue "en-GB" endNonFunctionalProperties importsOntology { _"http://ip-super.org/ontologies/process/upo/v2.0.1#upo" } relation hasPlaceNumberIn ( ofType Thing, ofType _integer, ofType Thing) concept Thing subConceptOf upo201#Thing nonFunctionalProperties dc#description hasValue "Thing is the top-level concept in UPO, hence it is also the top-level concept in the SUPER Stack of ontologies. Sources used when creating UPO and developing its variants include: the HPKB ontology, the AKT Reference Ontology, and COBRA." endNonFunctionalProperties hasPrettyName ofType _string hasVariantName ofType _string axiom upo201alignhasprettyname definedBy ?x[hasPrettyName hasValue ?y] implies ?x[upo201#hasPrettyName hasValue ?y]. axiom upo201alignhasvariantname definedBy ?x[hasVariantName hasValue ?y] implies ?x[upo201#hasVariantName hasValue ?y]. concept IntangibleThing subConceptOf {Thing, upo201#IntangibleThing} nonFunctionalProperties dc#description hasValue "An instance of IntangibleThing is a non physical entity, not made nor encoded in matter (Source: HPKB)" endNonFunctionalProperties concept TimePosition subConceptOf {IntangibleThing, TemporalThing, upo201#TimePosition} nonFunctionalProperties dc#description hasValue "A time position is either a time interval or a time point. Any time position is relative to a time zone" dc#relation hasValue "TimePositionDef" endNonFunctionalProperties InTimezone ofType _string axiom upo201alignintimezone definedBy ?x[InTimeZone hasValue ?y] implies ?x[upo201#InTimezone hasValue ?y]. concept TimeInstant subConceptOf {TimePosition, upo201#TimeInstant} nonFunctionalProperties dc#description hasValue "A point in time. " dc#relation hasValue "TimeInstantDef" endNonFunctionalProperties microSecondOf ofType (0 1) _integer milliSecondOf ofType (0 1) _integer secondOf ofType (0 1) _integer minuteOf ofType (0 1) _integer hourOf ofType (0 1) _integer dayOf ofType (0 1) _integer monthOf ofType (0 1) _integer yearOf ofType (0 1) _integer axiom upo201alignmicroSecondOf definedBy ?x[microSecondOf hasValue ?y] implies ?x[upo201#microSecondOf hasValue ?y]. axiom upo201alignmilliSecondOf definedBy ?x[milliSecondOf hasValue ?y] implies ?x[upo201#milliSecondOf hasValue ?y]. axiom upo201alignsecondOf definedBy ?x[secondOf hasValue ?y] implies ?x[upo201#secondOf hasValue ?y]. axiom upo201alignminuteOf definedBy ?x[minuteOf hasValue ?y] implies ?x[upo201#minuteOf hasValue ?y]. axiom upo201alignhourOf definedBy ?x[hourOf hasValue ?y] implies ?x[upo201#hourOf hasValue ?y]. axiom upo201aligndayOf definedBy ?x[dayOf hasValue ?y] implies ?x[upo201#dayOf hasValue ?y]. axiom upo201alignmonthOf definedBy ?x[monthOf hasValue ?y] implies ?x[upo201#monthOf hasValue ?y]. axiom upo201alignyearOf definedBy ?x[yearOf hasValue ?y] implies ?x[upo201#yearOf hasValue ?y]. concept TimeInterval subConceptOf {TimePosition, upo201#TimeInterval} nonFunctionalProperties dc#description hasValue "An interval is defined by two time points or a duration. Classes of intervals, for example a day, can be defined by specifying only a duration. A time interval has no gaps." endNonFunctionalProperties beginsAtTimeInstant ofType (0 1) TimeInstant endsAtTimeInstant ofType (0 1) TimeInstant axiom upo201alignbeginsAtTimeInstant definedBy ?x[beginsAtTimeInstant hasValue ?y] implies ?x[upo201#beginsAtTimeInstant hasValue ?y]. axiom upo201alignendsAtTimeInstant definedBy ?x[endsAtTimeInstant hasValue ?y] implies ?x[upo201#endsAtTimeInstant hasValue ?y]. concept TemporalThing subConceptOf {Thing, upo201#TemporalThing} nonFunctionalProperties dc#description hasValue "An instance of TemporalThing is an entity which exists in time, in other words, it has a temporal position. There are two noticeable particualr cases: time is itself a temporal thing and instantanenous or 'point-like' entities are included, although they have a null duration." endNonFunctionalProperties hasTimePosition ofType TimePosition axiom upo201alignhasTimePositionhasTimeIntervalone definedBy ?x[hasTimePosition hasValue ?y] and ?y memberOf TimeInterval implies ?x[upo201#hasTimeInterval hasValue ?y]. /* axiom upo201alignhasTimePositionhasTimeIntervaltwo definedBy ?x[upo201#hasTimeInterval hasValue ?y] implies ?x[hasTimePosition hasValue ?y]. */ axiom timepositionisownposition definedBy ?x memberOf TimePosition implies ?x[hasTimePosition hasValue ?x]. concept TangibleThing subConceptOf {TemporalThing, upo201#TangibleThing} nonFunctionalProperties dc#description hasValue "An instance of TangibleThing is an entity which is physical, made of matter, and thus not intangible." endNonFunctionalProperties concept StrictlyTangibleThing subConceptOf TangibleThing concept Event subConceptOf {TemporalThing, upo201#Event} nonFunctionalProperties dc#description hasValue "An instance of Event is an entity that occur, happens or unfolds in time. " endNonFunctionalProperties hasMainAgent ofType Agent hasOtherAgentsInvolved ofType Agent hasSubEvent ofType Event hasLocation ofType Location axiom upo201alignhasMainAgent definedBy ?x[hasMainAgent hasValue ?y] implies ?x[upo201#hasMainAgent hasValue ?y]. axiom upo201alignhasOtherAgentsInvolved definedBy ?x[hasOtherAgentsInvolved hasValue ?y] implies ?x[upo201#hasOtherAgentsInvolved hasValue ?y]. axiom upo201alignhasSubEvent definedBy ?x[hasSubEvent hasValue ?y] implies ?x[upo201#hasSubEvent hasValue ?y]. axiom upo201alignhasLocation definedBy ?x[hasLocation hasValue ?y] implies ?x[upo201#hasLocation hasValue ?y]. relation eventHasParticipant ( ofType Event, ofType Thing) axiom mainagentineventisparticipant definedBy ?e[hasMainAgent hasValue ?ag] implies eventHasParticipant(?e, ?ag). axiom otheragentineventisparticipant definedBy ?e[hasOtherAgents hasValue ?ag] implies eventHasParticipant(?e, ?ag). concept Resource subConceptOf {Thing, upo201#Thing} nonFunctionalProperties dc#description hasValue "An instance of Resource is an entity that actually plays or can play the role of a resource in a business activity or a business event." endNonFunctionalProperties concept BusinessEvent subConceptOf {Event, upo201#BusinessEvent} hasInvolvedBusinessActivity ofType BusinessActivity hasInvolvedResource ofType Resource consumesResource ofType Resource generatesResource ofType Resource hasOwner ofType Agent /* exempliesBusinessActivity ofType BusinessActivity */ axiom upo201alignhasInvolvedBusinessActivity definedBy ?x[hasInvolvedBusinessActivity hasValue ?y] implies ?x[upo201#hasInvolvedBusinessActivity hasValue ?y]. axiom upo201alignhasInvolvedResource definedBy ?x[hasInvolvedResource hasValue ?y] implies ?x[upo201#hasInvolvedResource hasValue ?y]. axiom upo201alignconsumesResource definedBy ?x[consumesResource hasValue ?y] implies ?x[upo201#consumesResource hasValue ?y]. axiom upo201aligngeneratesResource definedBy ?x[generatesResource hasValue ?y] implies ?x[upo201#generatesResource hasValue ?y]. axiom upo201alignhasOwner definedBy ?x[hasOwner hasValue ?y] implies ?x[upo201#hasOwner hasValue ?y]. relation eventExemplifiesActivity ( ofType Event, ofType BusinessActivity) nonFunctionalProperties dc#description hasValue "eventExemplifiesActivity(E, A) means that E, an instance of Event, is a realization of A, an instance of BusinessActivity. While A belongs to the realm of specification and representation, E belongs to the realm of realization and execution. A's description provides design constraints for E while E's realization of these constraints may be more or less in line with A's specification. eventExemplifiesActivity is a relation providing the link for expressing design constraints on realizations of activities as well as providing feedbacks to the design in view of executions (for example, as a result of monitoring and analysis)." endNonFunctionalProperties concept LogicalExpression subConceptOf {IntangibleThing, upo201#LogicalExpression} concept PreCondition subConceptOf {LogicalExpression, upo201#PreCondition} concept Effect subConceptOf {LogicalExpression, upo201#Effect} concept ProcessOrchestrationFormalism subConceptOf {IntangibleThing, upo201#ProcessOrchestrationFormalism} concept ProcessOrchestrationSpecificationType subConceptOf {IntangibleThing, upo201#ProcessOrchestrationSpecificationType} concept ImplicitProcessOrchestrationSpecification subConceptOf {ProcessOrchestrationSpecificationType, upo201#ImplicitProcessOrchestrationSpecification} concept ExplicitProcessOrchestrationSpecification subConceptOf {ProcessOrchestrationSpecificationType, upo201#ExplicitProcessOrchestrationSpecification} concept SpecificationCompleteness subConceptOf {PropertyLike, upo201#SpecificationCompleteness} concept ProcessOrchestrationElement subConceptOf {IntangibleThing, upo201#ProcessOrchestrationElement} nonFunctionalProperties dc#description hasValue "An element within the control and dataflow specification of a set of business activities." endNonFunctionalProperties concept ProcessOrchestrationSpecification subConceptOf {IntangibleThing, upo201#ProcessOrchestrationSpecification} nonFunctionalProperties dc#description hasValue "The control and dataflow specification of a set of business activities." endNonFunctionalProperties isExpressedIn ofType ProcessOrchestrationFormalism hasProcessOrchestrationSpecificationType ofType ProcessOrchestrationSpecificationType hasSpecificationCompleteness ofType (0 1) SpecificationCompleteness hasProcessOrchestrationElement ofType ProcessOrchestrationElement axiom upo201alignisExpressedIn definedBy ?x[isExpressedIn hasValue ?y] implies ?x[upo201#isExpressedIn hasValue ?y]. axiom upo201alignhasProcessOrchestrationSpecificationType definedBy ?x[hasProcessOrchestrationSpecificationType hasValue ?y] implies ?x[upo201#hasProcessOrchestrationSpecificationType hasValue ?y]. axiom upo201alignhasSpecificationCompleteness definedBy ?x[hasSpecificationCompleteness hasValue ?y] implies ?x[upo201#hasSpecificationCompleteness hasValue ?y]. axiom upo201alignhasProcessOrchestrationElement definedBy ?x[hasProcessOrchestrationElement hasValue ?y] implies ?x[upo201#hasProcessOrchestrationElement hasValue ?y]. concept BusinessActivity subConceptOf {IntangibleThing, upo201#BusinessActivity} nonFunctionalProperties dc#description hasValue "In SUPER terms a business activity is an activity which occurs within an enterprise." endNonFunctionalProperties belongsToOrganisation ofType Organisation hasModelPurpose ofType BusinessActivityModelPurpose hasPreCondition ofType PreCondition hasFinalBusinessEffect ofType Effect hasOngoingBusinessEffect ofType Effect hasInvolvedAgent ofType Agent hasInvolvedRole ofType Role /* link up to more specific stuff */ hasInvolvedObject ofType Thing /* activityHasParticipant ofType Thing */ activityDoneBy ofType Agent activityDoneWith ofType Thing activityDoneTo ofType Thing activityHasParticipantType ofType LooseTypeOfThing activityDoneByType ofType LooseTypeOfThing activityDoneWithType ofType LooseTypeOfThing activityDoneToType ofType LooseTypeOfThing axiom upo201alignbelongsToOrganisation definedBy ?x[belongsToOrganisation hasValue ?y] implies ?x[upo201#belongsToOrganisation hasValue ?y]. axiom upo201alignhasModelPurpose definedBy ?x[hasModelPurpose hasValue ?y] implies ?x[upo201#hasModelPurpose hasValue ?y]. axiom upo201alignhasPreCondition definedBy ?x[hasPreCondition hasValue ?y] implies ?x[upo201#hasPreCondition hasValue ?y]. axiom upo201alignhasFinalBusinessEffect definedBy ?x[hasFinalBusinessEffect hasValue ?y] implies ?x[upo201#hasFinalBusinessEffect hasValue ?y]. axiom upo201alignhasOngoingBusinessEffect definedBy ?x[hasOngoingBusinessEffect hasValue ?y] implies ?x[upo201#hasOngoingBusinessEffect hasValue ?y]. axiom upo201alignhasInvolvedAgent definedBy ?x[hasInvolvedAgent hasValue ?y] implies ?x[upo201#hasInvolvedAgent hasValue ?y]. axiom upo201alignhasInvolvedRole definedBy ?x[hasInvolvedRole hasValue ?y] implies ?x[upo201#hasInvolvedRole hasValue ?y]. axiom upo201alignhasInvolvedObject definedBy ?x[hasInvolvedObject hasValue ?y] implies ?x[upo201#hasInvolvedObject hasValue ?y]. axiom actdonebyinvolvedagent definedBy ?ac[activityDoneBy hasValue ?ag] implies ?ac[hasInvolvedAgent hasValue ?ag]. axiom actinputareinvolvedobjects definedBy ?ac[activityDoneTo hasValue ?ag] implies ?ac[hasInvolvedObject hasValue ?ag]. axiom acttoolsareinvolvedobjects definedBy ?ac[activityDoneWith hasValue ?ag] implies ?ac[hasInvolvedObject hasValue ?ag]. /*axiom acthasparticipantfromdoneby definedBy ?x[activityDoneBy hasValue ?y] implies ?x[activityHasParticipant hasValue ?y]. axiom acthasparticipantfromdonewith definedBy ?x[activityDoneWith hasValue ?y] implies ?x[activityHasParticipant hasValue ?y]. axiom acthasparticipantfromdoneto definedBy ?x[activityDoneTo hasValue ?y] implies ?x[activityHasParticipant hasValue ?y]. */ /* axiom acthasparticipanttotype definedBy ?a[activityHasParticipant hasValue ?p] and ?p memberOf ?type implies ?a[activityHasParticipantType hasValue ?type]. */ axiom actdonebytotype definedBy ?a[activityDoneBy hasValue ?p] and ?p memberOf ?type implies ?a[activityDoneByType hasValue ?type]. axiom actdonewithtotype definedBy ?a[activityDoneWith hasValue ?p] and ?p memberOf ?type implies ?a[activityDoneWithType hasValue ?type]. axiom actdonetotype definedBy ?a[activityDoneTo hasValue ?p] and ?p memberOf ?type implies ?a[activityDoneToType hasValue ?type]. /* relation instead of : isExemplifiedByBusinessEvent ofType BusinessEvent */ /* Business 'Abstract' Objects */ concept AtomicBusinessActivity subConceptOf {BusinessActivity, upo201#AtomicBusinessActivity} nonFunctionalProperties dc#description hasValue "An atomic business activity." endNonFunctionalProperties concept CompositeBusinessActivity subConceptOf {BusinessActivity, upo201#CompositeBusinessActivity} nonFunctionalProperties dc#description hasValue "A Business Activity which has some internal orchestration." endNonFunctionalProperties hasProcessOrchestrationSpecification ofType ProcessOrchestrationSpecification axiom upo201alignhasProcessOrchestrationSpecification definedBy ?x[hasProcessOrchestrationSpecification hasValue ?y] implies ?x[upo201#hasProcessOrchestrationSpecification hasValue ?y]. concept BusinessProcessModel subConceptOf {CompositeBusinessActivity, upo201#BusinessProcessModel} nonFunctionalProperties dc#description hasValue "Upper class definition of a Business Process. The parent of a BPMO Process and a sBPEL Process" endNonFunctionalProperties concept BusinessFunction subConceptOf {IntangibleThing, upo201#BusinessFunction} nonFunctionalProperties dc#description hasValue "A representational unit which is characterized by a set of effects, and involved roles, types of resources and types of agents. Will be used to be the parent of classes filling the hasBusinessFunction attribute (BPMO Process). Integration point for business processes in different vertical domains." endNonFunctionalProperties concept BusinessDomain subConceptOf {IntangibleThing, upo201#BusinessDomain} nonFunctionalProperties dc#description hasValue "Upper class definition of a Business Domain. Must be the superclass of classes filling the hasBusinessDomain attribute (BPMO Process). Integration point for business processes in different vertical domains." endNonFunctionalProperties concept BusinessStrategy subConceptOf {IntangibleThing, upo201#BusinessStrategy} nonFunctionalProperties dc#description hasValue "Upper class definition of an overall Business Strategy. Must be the superclass of classes filling the hasBusinessPlan attribute (BPMO Process). Integration point for business processes in different vertical domains." endNonFunctionalProperties concept BusinessProcessGoal subConceptOf {IntangibleThing, upo201#BusinessProcessGoal} nonFunctionalProperties dc#description hasValue "Upper class definition of a Business Process Goal. Must be the superclass of classes filling the hasBusinessProcessGoal attribute (BPMO SubProcess; BPMO Fragmet) ." endNonFunctionalProperties concept BusinessPolicy subConceptOf {IntangibleThing, upo201#BusinessPolicy} nonFunctionalProperties dc#description hasValue "A holding definition for a business policy." endNonFunctionalProperties concept BusinessProcessMetrics subConceptOf {IntangibleThing, upo201#BusinessProcessMetrics} nonFunctionalProperties dc#description hasValue "A holding definition for a business metric." endNonFunctionalProperties concept BusinessProcessMediator subConceptOf {IntangibleThing, upo201#BusinessProcessMediator} nonFunctionalProperties dc#description hasValue "Upper class definition of a Business Process Mediator." endNonFunctionalProperties concept BusinessActivityModelPurpose subConceptOf {IntangibleThing, upo201#BusinessActivityModelPurpose} nonFunctionalProperties dc#description hasValue "Business activity models are created for one of two purposes. Either to document the current state of an enterprise or to document a desired or intended state." endNonFunctionalProperties /* ALIGN INSTANCE WITH ATTRIBUTES */ instance documentCurrentState memberOf BusinessActivityModelPurpose axiom upo201aligndocumentCurrentState definedBy ?x[hasModelPurpose hasValue documentCurrentState] implies ?x[upo201#hasModelPurpose hasValue upo201#documentCurrentState]. instance documentIntendedState memberOf BusinessActivityModelPurpose axiom upo201aligndocumentIntendedState definedBy ?x[hasModelPurpose hasValue documentIntendedState] implies ?x[upo201#hasModelPurpose hasValue upo201#documentIntendedState]. instance controlFlowBasedProcessOrchestrationSpecification memberOf ExplicitProcessOrchestrationSpecification axiom upo201aligncontrolFlowBasedProcessOrchestrationSpecification definedBy ?x[hasProcessOrchestrationSpecification hasValue controlFlowBasedProcessOrchestrationSpecification] implies ?x[upo201#hasProcessOrchestrationSpecification hasValue upo201#controlFlowBasedProcessOrchestrationSpecification]. instance dataFlowBasedProcessOrchestrationSpecification memberOf ExplicitProcessOrchestrationSpecification axiom upo201aligndataFlowBasedProcessOrchestrationSpecification definedBy ?x[hasProcessOrchestrationSpecification hasValue dataFlowBasedProcessOrchestrationSpecification] implies ?x[upo201#hasProcessOrchestrationSpecification hasValue upo201#dataFlowBasedProcessOrchestrationSpecification]. instance ruleBasedProcessOrchestrationSpecification memberOf ImplicitProcessOrchestrationSpecification axiom upo201alignruleBasedProcessOrchestrationSpecification definedBy ?x[hasProcessOrchestrationSpecification hasValue ruleBasedProcessOrchestrationSpecification] implies ?x[upo201#hasProcessOrchestrationSpecification hasValue upo201#ruleBasedProcessOrchestrationSpecification]. instance constraintBasedProcessOrchestrationSpecification memberOf ImplicitProcessOrchestrationSpecification axiom upo201alignconstraintBasedProcessOrchestrationSpecification definedBy ?x[hasProcessOrchestrationSpecification hasValue constraintBasedProcessOrchestrationSpecification] implies ?x[upo201#hasProcessOrchestrationSpecification hasValue upo201#constraintBasedProcessOrchestrationSpecification]. instance completeSpecification memberOf SpecificationCompleteness axiom upo201aligncompleteSpecification definedBy ?x[hasSpecificationCompleteness hasValue completeSpecification] implies ?x[upo201#hasSpecificationCompleteness hasValue upo201#completeSpecification]. instance incompleteSpecification memberOf SpecificationCompleteness axiom upo201alignincompleteSpecification definedBy ?x[hasSpecificationCompleteness hasValue incompleteSpecification] implies ?x[upo201#hasSpecificationCompleteness hasValue upo201#incompleteSpecification]. /* Material Objects et al. */ concept Location subConceptOf {TangibleThing, upo201#Location} nonFunctionalProperties dc#description hasValue "A place. " endNonFunctionalProperties concept Agent subConceptOf {TangibleThing, upo201#Agent} hasName ofType _string hasDescription ofType _string hasWebAddress ofType _string hasEmailAddress ofType _string nonFunctionalProperties dc#description hasValue "This is a generic notion, an agent can be an organisation, a person, an animal, a software agent, etc Note: Software agents are not tangible, they are codes. Either TangibleThing is misconstrued or this is not generic enough or software agents are not agents. " endNonFunctionalProperties axiom upo201alignhasName definedBy ?x[hasName hasValue ?y] implies ?x[upo201#hasName hasValue ?y]. axiom upo201alignhasDescription definedBy ?x[hasDescription hasValue ?y] implies ?x[upo201#hasDescription hasValue ?y]. axiom upo201alignhasWebAddress definedBy ?x[hasWebAddress hasValue ?y] implies ?x[upo201#hasWebAddress hasValue ?y]. axiom upo201alignhasEmailAddress definedBy ?x[hasEmailAddress hasValue ?y] implies ?x[upo201#hasEmailAddress hasValue ?y]. concept LegalAgent subConceptOf {Agent, upo201#LegalAgent} nonFunctionalProperties dc#description hasValue "Some Agents have legal status, such as people and organisations. Note: why aren't organisation units legal agents?" endNonFunctionalProperties hasTelephoneNumber ofType _string hasFaxNumber ofType _string hasPostalAddress ofType _string axiom upo201alignhasTelephoneNumber definedBy ?x[hasTelephoneNumber hasValue ?y] implies ?x[upo201#hasTelephoneNumber hasValue ?y]. axiom upo201alignhasFaxNumber definedBy ?x[hasFaxNumber hasValue ?y] implies ?x[upo201#hasFaxNumber hasValue ?y]. axiom upo201alignhasPostalAddress definedBy ?x[hasPostalAddress hasValue ?y] implies ?x[upo201#hasPostalAddress hasValue ?y]. concept Organisation subConceptOf {LegalAgent, upo201#Organisation} nonFunctionalProperties dc#description hasValue "An organisation is a type of legal agent." endNonFunctionalProperties hasAffiliatedPerson ofType Person partOfOrganisation ofType Organisation hasSubUnit ofType OrganisationUnit /* consider renaming to hasUnit */ isHeadedBy ofType Person hasSize ofType OrganisationSize axiom upo201alignhasAffiliatedPerson definedBy ?x[hasAffiliatedPerson hasValue ?y] implies ?x[upo201#hasAffiliatedPerson hasValue ?y]. axiom upo201alignhpartOfOrganisation definedBy ?x[partOfOrganisation hasValue ?y] implies ?x[upo201#hpartOfOrganisation hasValue ?y]. axiom upo201alignhasSubUnit definedBy ?x[hasSubUnit hasValue ?y] implies ?x[upo201#hasSubUnit hasValue ?y]. axiom upo201alignisHeadedBy definedBy ?x[isHeadedBy hasValue ?y] implies ?x[upo201#isHeadedBy hasValue ?y]. axiom upo201alignhasSize definedBy ?x[hasSize hasValue ?y] implies ?x[upo201#hasSize hasValue ?y]. axiom subattheadaffilorganisation definedBy ?o memberOf Organisation and ?o[isHeadedBy hasValue ?p] implies ?o[hasAffiliatedPerson hasValue ?p]. concept OrganisationUnit subConceptOf {Agent, upo201#OrganisationUnit} nonFunctionalProperties dc#description hasValue "An organisation may have a number of units. Units may themselves have sub-units. Note: Why isn't this a subconcept of LegalAgent?" endNonFunctionalProperties hasTelephoneNumber ofType _string hasFaxNumber ofType _string hasPostalAddress ofType _string hasSize ofType OrganisationSize hasAffiliatedPerson ofType Person isHeadedBy ofType Person isUnitOfOrganisation ofType Organisation isSubUnitOfOrganisationUnit ofType OrganisationUnit hasSubUnit ofType OrganisationUnit /* 201 align: already taken care of hasTelephoneNumber hasFaxNumber hasPostalAddress hasSize hasAffiliatedPerson isHeadedBy hasSubUnit ofType OrganisationUnit */ axiom upo201alignisUnitOfOrganisation definedBy ?x[isUnitOfOrganisation hasValue ?y] implies ?x[upo201#isUnitOfOrganisation hasValue ?y]. axiom upo201alignisSubUnitOfOrganisationUnit definedBy ?x[isSubUnitOfOrganisationUnit hasValue ?y] implies ?x[upo201#isSubUnitOfOrganisationUnit hasValue ?y]. axiom inversesubunitofhassubunit definedBy ?ou[hasSubUnit hasValue ?sou] and ?ou memberOf OrganisationUnit equivalent ?sou[isSubUnitOfOrganisationUnit hasValue ?ou]. axiom subattheadaffilorganisationunit definedBy ?ou memberOf OrganisationUnit and ?ou[isHeadedBy hasValue ?p] implies ?ou[hasAffiliatedPerson hasValue ?p]. axiom transferofaffiliationfromunittoorg definedBy /* ?ou memberOf OrganisationUnit and */ ?ou[hasAffiliatedPerson hasValue ?p] and ?ou[isUnitOfOrganisation hasValue ?o] implies ?o[hasAffiliatedPerson hasValue ?p]. axiom transferofaffiliationfromsubunittounit definedBy ?sou[hasAffiliatedPerson hasValue ?p] and ?sou[isSubUnitOfOrganisationUnit hasValue ?ou] implies ?ou[hasAffiliatedPerson hasValue ?p]. concept Person subConceptOf {LegalAgent, upo201#Person} nonFunctionalProperties dc#description hasValue "An instance of Person is a person." endNonFunctionalProperties hasFullName ofType _string hasFamilyName ofType _string hasGivenName ofType _string hasGender ofType Gender axiom upo201alignhasFullName definedBy ?x[hasFullName hasValue ?y] implies ?x[upo201#hasFullName hasValue ?y]. axiom upo201alignhasFamilyName definedBy ?x[hasFamilyName hasValue ?y] implies ?x[upo201#hasFamilyName hasValue ?y]. axiom upo201alignhasGivenName definedBy ?x[hasGivenName hasValue ?y] implies ?x[upo201#hasGivenName hasValue ?y]. axiom upo201alignhasGender definedBy ?x[hasGender hasValue ?y] implies ?x[upo201#hasGender hasValue ?y]. /* Propety-like Objects */ concept PropertyLike subConceptOf IntangibleThing nonFunctionalProperties dc#description hasValue "An instance of PropertyLike is an entity that is intangible and represents a characteristic or an aspect of another entity." endNonFunctionalProperties concept Gender subConceptOf {PropertyLike, upo201#Gender} nonFunctionalProperties dc#description hasValue "An instance of Gender allows for representing the gender of a person (see the attribute hasGender of Person)." endNonFunctionalProperties concept Quantity subConceptOf PropertyLike nonFunctionalProperties dc#description hasValue "Quantity. Note: Quantity is undeveloped in UPO and its treatment deferred to that of a dedicated ontology." endNonFunctionalProperties concept OrganisationSize subConceptOf {Quantity, upo201#OrganisationSize} nonFunctionalProperties dc#description hasValue "An instance of OrgnaisationSize is the size of an orgnaization, for example, as indicated in EU guidelines distinguishing between different organisation sizes." endNonFunctionalProperties /* Property-like: roles */ concept Role subConceptOf {PropertyLike, TemporalThing, upo201#Role} nonFunctionalProperties dc#description hasValue "The role played by a Thing. Used within BusinessActivity and realized in A BusinessEvent." endNonFunctionalProperties isRoleOf ofType Thing /* this is a hack instance Role memberOf TypeOfRole*/ /* to-do: polish terminology */ concept AgentiveRole subConceptOf Role instance AgentiveRole memberOf TypeOfRole concept PassiveRole subConceptOf Role instance PassiveRole memberOf TypeOfRole concept InputRole subConceptOf PassiveRole instance InputRole memberOf TypeOfRole concept InstrumentalRole subConceptOf PassiveRole instance InstrumentalRole memberOf TypeOfRole /* MODALITY */ concept Modality subConceptOf IntangibleThing instance Amodal memberOf Modality instance Necessary memberOf Modality instance Possible memberOf Modality instance Impossible memberOf Modality instance Sufficient memberOf Modality instance Actual memberOf Modality instance Planned memberOf Modality instance Designed memberOf Modality instance Recommended memberOf Modality instance Allocated memberOf Modality instance Optimal memberOf Modality concept Disposition subConceptOf {PropertyLike , TemporalThing} /* TYPES */ concept LooseTypeOfThing /*subConceptOf IntangibleThing*/ nonFunctionalProperties dc#description hasValue "An instance of LooseTypeOfThing is a subconcept of (upo#)Thinge. Note: this is used in order to define relations taking a number of concepts as arguments. " dc#description hasValue "suffltt" endNonFunctionalProperties axiom suffltt definedBy ?x subConceptOf Thing implies ?x memberOf LooseTypeOfThing. concept TypeOfThing subConceptOf IntangibleThing nonFunctionalProperties dc#description hasValue "An instance of TypeOfThing is a designated specialisation of Thing. It is not intended that any subconcept of Thing is an interesting instance of TypeOfThing or of one of its specialisation. TypeOfThing is intended to allow for representing easily the fact that certain concepts are interesting in certain contexts buit also to allow treating wsml:concepts on a par with wsml:instances. . See also isTypeOf." endNonFunctionalProperties concept TypeOfPropertyLike subConceptOf TypeOfThing nonFunctionalProperties dc#description hasValue "An instance of TypeOfPropertyLike is a designated specialisation of PropertyLike." endNonFunctionalProperties concept TypeOfRole subConceptOf TypeOfPropertyLike nonFunctionalProperties dc#description hasValue "An instance of TypeOfRole is a designated specialisation of Role that has a salient unity and bearing in a given context." endNonFunctionalProperties relation isTypeOf ( ofType LooseTypeOfThing, ofType LooseTypeOfThing) nonFunctionalProperties dc#description hasValue "isTypeOf(a,b) means that a concept whose instances are specialzation of b." dc#relation hasValue "typesaretypes" endNonFunctionalProperties axiom typesaretypes definedBy ?x memberOf ?y and isTypeOf(?y,?z) implies ?x subConceptOf ?z. relationInstance typesofthingaretypesofthing isTypeOf ( TypeOfThing, Thing) relationInstance typesofpropertylikearetypesofpropertylike isTypeOf ( TypeOfPropertyLike, PropertyLike) relationInstance typesofrolearetypesofrole isTypeOf ( TypeOfRole, Role) /* plain participation */ relation activityHasParticipant ( ofType BusinessActivity, ofType Thing) axiom acthasparticipantfromdonebyrel definedBy ?x[activityDoneBy hasValue ?y] implies activityHasParticipant(?x,?y). axiom acthasparticipantfromdonewithrel definedBy ?x[activityDoneWith hasValue ?y] implies activityHasParticipant(?x,?y). axiom acthasparticipantfromdonetorel definedBy ?x[activityDoneTo hasValue ?y] implies activityHasParticipant(?x,?y). axiom acthasparticipanttotyperel definedBy activityHasParticipant(?a,?p) and ?p memberOf ?type implies ?a[activityHasParticipantType hasValue ?type]. /* above relation eventHasParticipant ( ofType Event, ofType Thing)*/ /* Participant in Role */ relation activityHasParticipantInRole ( ofType BusinessActivity, ofType Thing, ofType Role) axiom participant1 definedBy activityHasParticipantInRole ( ?a, ?p, ?r) implies activityHasParticipant ( ?a, ?p). relation eventHasParticipantInRole ( ofType Event, ofType Thing, ofType Role) /* Participant in Role with Modality */ relation activityHasParticipantInRoleWithModality ( ofType BusinessActivity, ofType Thing, ofType Role, ofType Modality) relation eventHasParticipantInRoleWithModality ( ofType Event, ofType Thing, ofType Role, ofType Modality) /* there may be somethig better or more generic */ axiom amodalfromhprm definedBy activityHasParticipantInRoleWithModality ( ?a, ?p, ?r, Amodal) equivalent activityHasParticipantInRole ( ?a, ?p, ?r). axiom modalityTransferFromActivityToEventSpecific definedBy activiyHasParticipantInRole ( ?a, ?p, ?r) and eventExemplifiesActivity( ?e, ?a) implies eventHasParticipantInRoleWithModality ( ?e, ?p, ?r, Designed). /* Part in Role Type */ relation activityHasParticipantInRoleType ( ofType BusinessActivity, ofType Thing, ofType TypeOfRole) relation eventHasParticipantInRoleType ( ofType Event, ofType Thing, ofType TypeOfRole) /* this is a simplification, test axiom sugarpartroletypeact definedBy activityHasParticipantInRoleType ( ?a, ?t, Role) equivalent activityHasParticipant (?a, ?t). */ relation eventHasParticipantInRoleType ( ofType Event, ofType Thing, ofType TypeOfRole) /* this is a simplification, test axiom sugarpartroletypeevt definedBy eventHasParticipantInRoleType ( ?e, ?t, Role) equivalent eventHasParticipant (?e, ?t). */ /* Part Type Role Type */ relation activityHasParticipantTypeInRoleType ( ofType BusinessActivity, ofType TypeOfThing, ofType TypeOfRole) relation eventHasParticipantTypeInRoleType ( ofType Event, ofType TypeOfThing, ofType TypeOfRole) relation activityHasParticipantInRoleTypeWithModality ( ofType BusinessActivity, ofType Thing, ofType TypeOfRole, ofType Modality) relation eventHasParticipantInRoleTypeWithModality ( ofType Event, ofType Thing, ofType TypeOfRole, ofType Modality) /* Participant of Type in Role Type with Modality */ relation activityHasParticipantTypeInRoleTypeWithModality ( ofType BusinessActivity, ofType TypeOfThing, ofType TypeOfRole, ofType Modality) relation eventHasParticipantTypeInRoleTypeWithModality ( ofType Event, ofType TypeOfThing, ofType TypeOfRole, ofType Modality) /* probably need case by case and can't be generic axiom modalityTransferFromActivityToEventGeneric definedBy activiyHasParticipantTypeInRoleTypeWithModality ( ?a, ?pt, ?rt, ?m) and eventExemplifiesActivity( ?e, ?a) implies eventHasParticipantTypeInRoleTypeWithModality ( ?e, ?pt, ?rt, ?m). */ /*axiom modalityTransferFromActivityToEventGeneric definedBy activiyHasParticipantTypeInRoleWithModality ( ?a, ?pt, ?w, ?m) and upo#isExemplifiedByBusinessEvent ( ?a, ?e) implies eventHasParticipantTypeInRoleWithModality ( ?e, ?pt, ?w, ?m). */ /* Participant Type in Role Type in Quantity with Modality */ relation activityHasParticipantTypeInRoleTypeInQuantityWithModality ( ofType BusinessActivity, ofType TypeOfThing, ofType TypeOfRole, ofType Quantity, ofType Modality)