EO — Enterprise Ontology¶
Trata de aspectos organizacionais: organizações, pessoas, equipes, papéis organizacionais e a alocação de pessoas a papéis em equipes.
| Id | eo |
| Versão | 1.0.0 |
| Camada | Core |
| Rede | SEON |
| Namespace | the_band.ontology.seon.eo |
| Depende de | ufo |
| Origem | Tese, Seção 2.2.2.1 — EO, SPO e SysSwO (Figura 16) |
Módulos¶
- Organizational Structure — Organizações, pessoas, equipes e papéis. O ponto central é que ser membro de equipe não é uma propriedade da pessoa: é um papel alocado por uma relação contextual (Team Membership).
Organizational Structure¶
Organizações, pessoas, equipes e papéis. O ponto central é que ser membro de equipe não é uma propriedade da pessoa: é um papel alocado por uma relação contextual (Team Membership).
Fonte: Tese, Seção 2.2.2.1, Figura 16
Conceitos¶
eo.organization — Organization¶
Organização
Agente social que reconhece papéis organizacionais e emprega pessoas.
categoria UFO: social_agent
eo.organizational_unit — Organizational Unit¶
Unidade Organizacional
Agente social interno a uma organização, com responsabilidades próprias, que não constitui uma organização em si. Um departamento, uma diretoria, uma gerência. Diferentemente de uma organização, não existe fora daquela que o contém: extinta a organização, a unidade não sobrevive a ela.
categoria UFO: social_agent
Exemplos: a diretoria de tecnologia de uma empresa; o departamento de qualidade
eo.organizational_part — Organizational Part¶
Parte Organizacional
Papel assumido por uma organização ou por uma unidade organizacional quando é parte de uma organização maior. Não é um tipo de organização: é a posição ocupada numa estrutura. Classifica indivíduos de dois kinds distintos — uma subsidiária é uma organização que é parte da matriz, enquanto um departamento é uma unidade organizacional que é parte da mesma organização. Por isso é não-sortal, e por isso é antirrígido: uma reestruturação desfaz a posição sem destruir a organização ou a unidade que a ocupava.
categoria UFO: social_role · papel de ufo.agent
Exemplos: uma subsidiária, que é organização e parte da matriz; o departamento de qualidade, que é unidade organizacional e parte da organização
eo.person — Person¶
Pessoa
Agente humano. É o conceito de identidade das pessoas em toda a rede: SRO, CIRO e CDRO referenciam pessoas apenas por meio de papéis.
categoria UFO: agent
| Atributo | Tipo | Obrigatório |
|---|---|---|
name |
string | sim |
email |
string | não |
eo.organizational_role — Organizational Role¶
Papel Organizacional
Papel social reconhecido pela organização, atribuído a agentes quando são contratados, incluídos em uma equipe, alocados ou participam de atividades.
categoria UFO: social_role · papel de ufo.agent
Exemplos: gerente de projeto; designer; programador
eo.team — Team¶
Equipe
Coletivo de pessoas que desempenham papéis organizacionais em conjunto.
categoria UFO: collective
eo.organizational_team — Organizational Team¶
Equipe Organizacional
Equipe ligada a uma organização, e não a um projeto específico.
categoria UFO: collective · especializa eo.team
Exemplos: a equipe de marketing de uma organização de software
eo.project_team — Project Team¶
Equipe de Projeto
Equipe ligada a um projeto.
categoria UFO: collective · especializa eo.team
Exemplos: a equipe de desenvolvimento de um projeto
eo.team_member — Team Member¶
Membro de Equipe
Pessoa ligada a uma equipe, desempenhando nela um papel organizacional. É papel, não tipo. Em UFO, um papel é um sortal antirrígido que especializa o kind que lhe dá identidade: quem é membro de equipe é, antes de tudo, uma pessoa — e continua sendo a mesma pessoa ao deixar a equipe. Por isso a identidade fica em eo.person, e o vínculo com a equipe vive em eo.team_membership, que carrega equipe, papel e período. A mesma pessoa pode ser membro de várias equipes ao mesmo tempo, com papéis diferentes em cada uma.
categoria UFO: role · papel de eo.person
eo.team_membership — Team Membership¶
Alocação em Equipe
Relação social que aloca um membro de equipe para desempenhar um papel organizacional em uma equipe. É o relator que conecta pessoa, papel e equipe — e o lugar onde vive a temporalidade da alocação.
categoria UFO: relator · papel de eo.person
| Atributo | Tipo | Obrigatório |
|---|---|---|
started_at |
datetime | não |
ended_at |
datetime | não |
Exemplos: A alocação de John como programador na equipe de desenvolvimento do projeto X.
Relações¶
| Relação | Origem | Destino | Cardinalidade | Tipo |
|---|---|---|---|---|
is part of |
eo.organization |
eo.organization |
many → zero_or_one | part_whole |
is part of |
eo.team |
eo.team |
many → many | part_whole |
is part of |
eo.organizational_unit |
eo.organization |
many → one | part_whole |
belongs to |
eo.organizational_team |
eo.organization |
many → one | association |
recognizes |
eo.organization |
eo.organizational_role |
one → many | association |
allocates |
eo.team_membership |
eo.team_member |
one → one | association |
allocates to team |
eo.team_membership |
eo.team |
many → one | association |
to play |
eo.team_membership |
eo.organizational_role |
many → one | association |
is played by |
eo.team_member |
eo.person |
many → one | association |
eo.organization_part_of_organization— Uma organização pode ser parte de outra — é o caso da subsidiária dentro do grupo. É relação de parthood, não de generalização: a subsidiária não é um tipo de matriz, é uma organização que ocupa posição na estrutura da matriz. Por ser contingente, admite início e fim.eo.team_part_of_team— Uma equipe pode ser parte de outra — é o caso da célula dentro do departamento, ou do time dentro da frente. Mesma forma que eo.organization_part_of_organization: é parthood entre coletivos, não generalização, e por ser contingente admite início e fim. A cardinalidade é muitos para muitos porque a estrutura real não é árvore: a mesma equipe pode compor mais de uma frente ao mesmo tempo, e limitar a um todo forçaria a organização a escolher qual das verdades registrar. A relação é ACÍCLICA por restrição, e não por construção: nada no modelo impede declarar A parte de B e B parte de A, e um ciclo faria qualquer agregação pela hierarquia não terminar. A recusa é da aplicação. O período é da RELAÇÃO, não das equipes: uma equipe que deixou de ser parte de outra continua existindo com o histórico dela intacto — a composição terminou, a equipe não.eo.organizational_unit_part_of_organization— Toda unidade organizacional é parte de exatamente uma organização, e não existe fora dela. A cardinalidade obrigatória no destino é o que a distingue de uma organização: uma organização pode não ser parte de nada.eo.organizational_team_belongs_to_organization— Uma equipe organizacional pertence a exatamente uma organização, e uma organização tem várias. A definição de eo.organizational_team já afirmava esse vínculo em prosa; declará-lo não inventa semântica, torna explícito o que o conceito diz de si. Parte do subkind e não do kind: eo.project_team liga-se a um projeto — um conceito de SPO —, não a uma organização. Pôr a relação em eo.team obrigaria toda equipe de projeto a ter organização, o que é falso em projeto entre organizações. É association e não part_whole. Uma equipe é coletivo de pessoas; a organização é agente social. "Pertence a" não é "é parte de", e a distinção entre eo.organizational_unit — que é parte — e eo.organizational_team é justamente essa. Declará-la como parthood faria o derivador gerar a chave estrangeira sem esforço, ao custo de apagar a distinção.
Perguntas de competência¶
Perguntas que esta ontologia precisa saber responder. São os requisitos funcionais do modelo, verificados por mix knowledge.test.
| # | Pergunta | Conceitos envolvidos |
|---|---|---|
CQ01 |
Quais equipes organizacionais pertencem a uma organização? | eo.organization, eo.organizational_team |
CQ02 |
A quais organizações uma pessoa está vinculada? | eo.person, eo.team_member, eo.team_membership, eo.organizational_team, … |
CQ03 |
Quais pessoas foram observadas em uma organização? | eo.organization, eo.organizational_team, eo.team_membership, eo.team_member, … |
CQ04 |
Quais unidades organizacionais compõem uma organização? | eo.organization, eo.organizational_unit |
CQ05 |
Quais papéis organizacionais uma organização reconhece? | eo.organization, eo.organizational_role |
- CQ01 — É a pergunta mais direta que a relação acrescentada na feature 002 torna respondível. Antes dela a organização e suas equipes coexistiam na base sem vínculo declarado, e a resposta não existia — as colunas que a fingiam foram escritas à mão e ficaram nulas em 100% dos registros. Vale para eo.organizational_team e não para eo.team: eo.project_team liga-se a um projeto, e uma equipe de projeto entre organizações não pertence a nenhuma delas.
- CQ02 — EO não define relação direta entre pessoa e organização, e esta pergunta não inventa uma. O caminho passa pela equipe: a pessoa é membro de equipe por uma alocação, e a equipe organizacional pertence à organização. A consequência é declarada e não é acidente: pessoa que não está em equipe alguma não aparece em organização alguma. Vínculo direto exigiria papel organizacional, que a ferramenta de origem não fornece — o mesmo motivo pelo qual a participação em equipe é tratada como evidência observada, e não como alocação. É essa lacuna que a decisão da equipe derivada endereça: organização cujos membros não estão em equipe nenhuma recebe uma equipe com o nome dela, para que o caminho exista.
- CQ03 — A inversa de eo.cq02, e não é redundante: percorre o mesmo caminho na direção em que a plataforma de fato consulta — a partir da organização observada. Duas coisas que a resposta não afirma. Não afirma que a pessoa trabalha na organização: afirma que foi observada em uma equipe que pertence a ela. "Observada" é o limite do que a origem sustenta. E a mesma pessoa pode aparecer em mais de uma organização, porque a identidade é a conta e não o indivíduo — a soma das respostas por organização pode ser maior que o total de pessoas conhecidas, e isso está correto.
- CQ04 — Existe para manter visível a distinção que a feature 002 quase apagou. Unidade organizacional é parte da organização; equipe organizacional pertence a ela. Duas perguntas separadas, dois tipos de relação, e ver as duas lado a lado é o que impede alguém de declarar a segunda como parthood para conveniência do derivador.
- CQ05 — A pergunta que explica por que as outras param onde param. O papel organizacional é o que ligaria pessoa a organização sem passar por equipe, e a ferramenta de origem não o fornece: MAINTAINER e MEMBER são nível de acesso na plataforma, não cargo. Hoje a resposta é vazia para toda organização observada, e vazia é a resposta certa — não zero, e não uma inferência a partir do nível de acesso.