HyperAgents / hmas

An ontology to describe Hypermedia Multi-Agent Systems, interactions, and organizations.
https://purl.org/hmas/
1 stars 0 forks source link

[Motivating Scenario] Create an Organization #105

Closed gnardin closed 1 year ago

gnardin commented 1 year ago

Create an Organization

This issue relates to the motivating scenario for the creation of an organization in HMAS.

FabienGandon commented 1 year ago

Thanks for this suggestion.

I have the following questions:

gnardin commented 1 year ago

@FabienGandon

In this Create a Organization scenario, for instance, the idea was to illustrate the existence of Organization Specification that artificial/human agents use to create a new Organization Entity. In this scenario, the creation of the Organization Entity (i.e., FL Logistics) is done by an human agent (John) based on the Organization Specification (SL Logistics specification).

FabienGandon commented 1 year ago

Thanks for the answers. A typical scenario contains between 5 to 7 terms in its glossary and this was also the motivation behind my question since you had only two entries in your scenario.

DrLeturc commented 1 year ago
Date By Change
2022-10-25 Christopher changes based on the shared diagram by Gustavo on Organization
2022-11-08 Gustavo eliminated the Specification classes and included further properties
2022-11-08 Gustavo added diagram
2022-11-14 Gustavo changes to the property names and roles
2022-11-23 Gustavo added Organizational Goal and Value
2022-11-28 Gustavo fixed the domain and range of enacts and defines, replace rdfs:domain and rdfs:range by schema:domainIncludes and schema:rangeIncludes respectively
2022-12-19 Gustavo removed the OrganizationSpecification and OrganizationalGoals. Refined the terms definition. Set hmas as the prefix for all the terms introduced in HyperAgents

What do you think about the following modelling (based on what has been said during the meeting) ?


#################################################################
#    Classes
#################################################################

# Organization has only one Organization Specification
:Organization rdf:type owl:Class

# For the definition "comments" --> should we link the definitions to the file https://github.com/HyperAgents/ns.hyperagents.org/tree/scenario-logistics-create-organization/domains/logistics/create-organization#itemX
           rdfs:comment "An Organization is an entity situated on Agents and Artifacts, and regulated by a regulation system. "@en ;
           rdfs:label "Organization"@en .

#:OrganizationSpecification rdf:type owl:Class ;
#          rdfs:comment "An Organization Specification is a declarative specification used to enact one or multiple #Organizations."@en ;
#           rdfs:label "Organization Specification"@en .

#:Group rdf:type owl:Class ;
#           rdfs:comment " A Group denotes the state of a collection of members of an Organization playing Roles and interacting altogether in the context of the Group. "@en ;
#           rdfs:label "Group"@en .

#:GroupSpecification rdf:type owl:Class ;
#           rdfs:comment " A Group Specification is a declarative specification used as an abstraction to define a possible community of Agents that can exist in an Organization."@en ;
#           rdfs:label "Group Specification"@en .

#:SocialScheme rdf:type owl:Class ;
#           rdfs:comment "A Social Scheme denotes the state of a collection of goals of an Organization under achievement by Agents playing roles in the Group that is responsible of the Social Scheme."@en ;
#           rdfs:label "Social Scheme"@en .

#:SocialSchemeSpecification rdf:type owl:Class ;
#           rdfs:comment "A Social Scheme Specification is the template of collective and coordinated expected behavior to be produced by members of a Group of an Organization."@en ;
#           rdfs:label "Social Scheme Specification"@en .

# Role defines the position of an agent in an organization
#:Role rdf:type owl:Class ;
#           rdfs:comment "A Role defines the position that individual Agents can occupy in the Organization. A Role determines the interactions and relations taking place between the members and the materials within an Organization."@en ;
#           rdfs:label "Role"@en .

# 
#:RoleSpecification rdf:type owl:Class ;
#           rdfs:comment "A Role Specification ..."@en ;
#           rdfs:label "Role Specification"@en .

#:Space rdf:type owl:Class ;
#           rdfs:comment "A Space represents how members and materials in the Organization are situated by standing in spatial roles and facilities they play (i.e., <role, member> a spatial role played by one member, <facility, material> a facility undertaken by a material)."@en ;
#           rdfs:label "Space"@en .

#:SpaceSpecification rdf:type owl:Class ;
#           rdfs:comment "The Space Specification is a declarative specification used as an abstraction to define a possible situated set of Agents and facilities that can exist situating an Organization on the Workspace."@en ;
#           rdfs:label "Space Specification"@en .

#:Mission rdf:type owl:Class ;
#           rdfs:comment "A Mission gathers goals that have to be achieved under the responsibility of an individual Agent."@en ;
#           rdfs:label "Mission"@en .

#:MissionSpecification rdf:type owl:Class ;
#           rdfs:comment "A Mission Specification gathers goals that have to be achieved under the responsibility of an individual Agent."@en ;
#           rdfs:label "Mission Specification"@en .

#################################################################
#    Properties
#################################################################

#:isSituatedOn rdf:type owl:ObjectProperty ;
#       rdfs:domain :Organization ;
#                rdfs:range :Space ;
#                rdfs:comment "An organization is situated on a workspace or a set of workspaces."@en ;
#                rdfs:label "is situated on"@en .

# Organization enacts an organization specification. => Only one ! 
#:hasOrganizationSpecification rdf:type owl:ObjectProperty ;
#       rdfs:domain :Organization ;
#                rdfs:range :OrganizationSpecification ;
#                rdfs:comment "Define the Organization Specification enacted by an Organization. "@en ;
#                rdfs:label "has specification"@en .

#:hasSocialScheme rdf:type owl:ObjectProperty ;
#       rdfs:domain :Organization ;
#                rdfs:range :SocialScheme ;
#                rdfs:comment "Define the Social Scheme of an organization. "@en ;
#                rdfs:label "has specification"@en .

#:hasSocialSchemeSpecificiation rdf:type owl:ObjectProperty ;
#       rdfs:domain :SocialScheme ;
#                rdfs:range :SocialSchemeSpecification ;
#                rdfs:comment "Define the Social Scheme Specification of a Social Scheme. "@en ;
#                rdfs:label "has specification"@en .

#:hasGroup rdf:type owl:ObjectProperty ;
#       rdfs:domain :Organization ;
#                rdfs:range :Group ;
#                rdfs:comment "It associates a group entity associated with an Organization."@en ;
#                rdfs:label "has group entity"@en .

#:hasMember rdf:type owl:ObjectProperty ;
#       rdfs:domain :Group ;
#                rdfs:range :Agent ;
#                rdfs:comment "Define the members of the group entity."@en ;
#                rdfs:label "has member"@en .
# but an agent plays a role in a group.. an agent must play a role in at least one group to become a member.
# the role is the entry point for being part of an organization.
# an agent can have multiple roles in multiple organization => it can belong to different organization
# is it possible to have one agent that does not play any role ? so does not belong to any organization ? 
# yes it is possible. 
# we can have hMAS without organization without agent playing roles  -> yes 
# 

#:hasSocialScheme rdf:type owl:ObjectProperty ;
#       rdfs:domain :OrganizationEntity ;
#               rdfs:range :SocialScheme ;
#               rdfs:comment "Associates a social scheme to an organization entity."@en ;
#               rdfs:label "has social scheme"@en .

#:hasGroupSpecification rdf:type owl:ObjectProperty ;
#       rdfs:domain :Group ;
#                rdfs:range :GroupSpecification ;
#                rdfs:comment "It associates the group specification."@en ;
#                rdfs:label "has group specification"@en .

#:defineRole rdf:type owl:ObjectProperty ;
#       rdfs:domain :GroupSpecification ;
#                rdfs:range :Role ;
#                rdfs:comment "It defines a role in a group."@en ;
#                rdfs:label "define the role"@en .

#:hasRole rdf:type owl:ObjectProperty ;
#       rdfs:domain :Group ;
#                rdfs:range :Role ;
#                rdfs:comment "It associates the different current roles in the group."@en ;
#                rdfs:label "define the role"@en .

#:defineMission rdf:type owl:ObjectProperty ;
#       rdfs:domain :SocialSchemeSpecification ;
#                rdfs:range :Mission ;
#                rdfs:comment "It defines the mission of a Social Scheme."@en ;
#                rdfs:label "define a mission"@en .

#:hasMission  rdf:type owl:ObjectProperty ;
#       rdfs:domain :SocialScheme ;
#                rdfs:range :Mission ;
#                rdfs:comment "It associates the current mission."@en ;
#                rdfs:label "has the mission"@en .

#:defineSpaceRole rdf:type owl:ObjectProperty ;
#       rdfs:domain :Space ;
#              rdfs:range :SpaceRole U :Facilities (maps to Signifier??) ; 
#              rdfs:comment "Define ..."@en ;
#              rdfs:label "define a space"@en .

# Define :Facilities * 
#++SpaceRole / Facility

#:isAppliedIn rdf:type owl:ObjectProperty ;
#       rdfs:domain :RoleSpecification ;
#               rdfs:range :Organization ;
#              rdfs:comment "Define the scope of a role w.r.t. an Organization Entity."@en ;
#             rdfs:label "is applied in"@en .

NEW VERSION reflecting the diagram

@prefix hmas: <https://purl.org/hmas/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix schema: <http://schema.org/> .

#################################################################
#    Classes
#################################################################

hmas:Organization a owl:Class ;
    rdfs:comment "An Organization is an entity situated on Agents and Artifacts, and regulated by a regulation system."@en ;
    rdfs:label "Organization"@en .

hmas:OrganizationalValue a owl:Class ;
    rdfs:comment "An Organizational Value is a belief about socially or personally desirable end state or action that are explicitly or implicitly shared by members of an organization."@en ;
    rdfs:label "Organizational Value"@en .

hmas:Role a owl:Class ;
    rdfs:comment "A Role defines positions in an Organization."@en ;
    rdfs:label "Role"@en .

hmas:Mission a owl:Class ;
    rdfs:comment "A Mission gathers Organizational Goals."@en ;
    rdfs:label "Mission"@en .

hmas:Facility a owl:Class ;
    rdfs:comment "A Facility defines functions in an Organization."@en ;
    rdfs:label "Facility"@en .

#################################################################
#    Properties
#################################################################

hmas:hasOrganizationalValue a owl:ObjectProperty ;
    schema:domainIncludes hmas:Organization ;
    schema:rangeIncludes hmas:OrganizationalValue ;
    rdfs:comment "A relation that refers to an Organization Value of an Organization."@en ;
    rdfs:label "has organizational value"@en .

hmas:providesRole a owl:ObjectProperty ;
    schema:domainIncludes hmas:Organization ;
    schema:rangeIncludes hmas:Role ;
    rdfs:comment "A relation that refers to a Role made available to Agents in the context of an Organization."@en ;
    rdfs:label "provides role"@en .

hmas:proposesMission a owl:ObjectProperty ;
    schema:domainIncludes hmas:Organization ;
    schema:rangeIncludes hmas:Mission ;
    rdfs:comment "A relation that refers to a Mission that can be executed in the context of an Organization."@en ;
    rdfs:label "proposes mission"@en .

hmas:proposesFacility a owl:ObjectProperty ;
    schema:domainIncludes hmas:Organization ;
    schema:rangeIncludes hmas:Facility ;
    rdfs:comment "A relation that refers to a Facility that can be played in the context of an Organization."@en ;
    rdfs:label "proposes facility"@en .

hmas:isSituatedOn a owl:ObjectProperty ;
    schema:domainIncludes hmas:Organization ;
    schema:rangeIncludes hmas:Agent, hmas:Artifact ;
    rdfs:comment "An Organization is situated on Agents and Artifacts."@en ;
    rdfs:label "is situated on"@en .

hmas:isMemberOf a owl:ObjectProperty ;
    schema:domainIncludes hmas:Agent ;
    schema:rangeIncludes hmas:Organization ;
    rdfs:comment "An Agent is member of an Organization."@en ;
    rdfs:label "is member of"@en .

hmas:isMaterialOf a owl:ObjectProperty ;
    schema:domainIncludes hmas:Artifact ;
    schema:rangeIncludes hmas:Organization ;
    rdfs:comment "An Artifact is part of an Organization."@en ;
    rdfs:label "is material of"@en .

The definition of organization in MAS is "An agent organization can also be defined as a social entity composed of a specific number of members (agents) that accomplish several distinct tasks or functions and that are structured following some specific topology and communication interrelationships in order to achieve the main aim of the organization." [1].

[1] Abbas, H. A., Shaheen, S. I., & Amin, M. H. (2015). Organization of multi-agent systems: an overview. International Journal of Intelligent Information Systems.

"Horling et al. [5] stated that our real world getting more complex and highly distributed and that should be reflected in new software engineering paradigms such as MAS. Therefore, the adoption of higher order abstract concepts like organizations, societies, communities, and groups of agents can reduce systems complexity, increase its efficiency, and improve system scalability."

--> Community is an extension of Organization. --> Community = a set of Organizations. --> Regulation is situated on Communities / Organizations ?

Gustavo : The Organization concept we are adopting in the HyperAgents project is inline with the definition of Organization adopted by the MAS community. We are proposing an extension to allow the interaction among Organizations (i.e., a Multi-Organization approach).

DrLeturc commented 1 year ago

After discussion at the heartbeat meeting on 16 June 2023, we decided to close this issue.