ga4gh / va-spec

An information model for representing variant annotations.
15 stars 3 forks source link

Modeling Agents (Persons, Organizations) #53

Open mbrush opened 4 years ago

mbrush commented 4 years ago

Agents are autonomous actors that bear some form of responsibility for an activity taking place, for the existence of an entity, or for another agent’s activity.

An agent can be an individual Person, an Organization of multiple individuals acting together, or a Computational Agent such as a software program or algorithm.

In the VA model, representation of agents is needed to capture who interprets/annotates variants, who generates data used as evidence, who submits annotation records to knowledgebases, and who reviews and approve submitted annotations.

Person agents can belong to organizations, and act on behalf or in the context of an Organization when contributing to an Artifact. For example, curators generating these variant pathogenicity interpretations do so in the context of the ClinGen organization, which provides administrative, technical, and funding support for their contributions.

A related ticket on modeling Contributions is here.

mbrush commented 4 years ago

The Agent model proposed for VA is minimal - providing only a few generic attributes common to all types of agents. Future versions may expand on this specification, but at present it is up to implementations to extend this base model as needed to meet their use cases.

Here we define an abstract Agent class, with Person and Organization as two concrete specializations that inherit all attributes of Agent, but do not define any unique attributes of their own. 'Computational' agents pose nuanced challenges - related to the grey area / duality of software as an autonomous actor (agent) and software as an algorithmic specification (method). As they are not a high priority use case - we defer modeling these for now.

Modeling Proposals

Based on modeling approach to Agents in the CD2H Contributor Attribution Model defined here.

Agent

Proposal also captured in the modeling spreadsheet here.

Person

Organization

mbrush commented 4 years ago

Update: June 2020 - Considering not defining specializations for Agent, and instead using an agentType field to capture whether the agent instance is a person, organization, or computational tool. If we need to define important distinguishing criteria down the road, we can always specialize at that time.