# US 2020/0401462 A1 · Software collaboration platform for advanced workflows and digital twins

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2020/0401462 A1
- Document ID: US20200401462A1
- Status: Published application
- Kind: A1
- Application number: 16/906,413
- Filed: 2020-06-19
- Published: 2020-12-24
- Earliest claimed: 2019-06-19
- Assignees: Calgary Scientific Inc.
- Applicants: Calgary Scientific Inc
- Inventors: Kevin Viggers; Dan Pigat
- Web page: https://patentgrep.com/patent/US20200401462A1

## CPC

- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 9/542: {Event management; Broadcasting; Multicasting; Notifications}
- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for providing a collaboration platform that enables “software agents” to share data with one another such that one software agent may interoperate with the other software agent. When the domains of different software agents overlap, completely, or partially, it becomes possible for the software agents to exchange information and behaviors in collaboration using a shared model and to create digital twins. Collaboration among the software agents, connected client(s), devices and other services may be provided through a data synchronization service and shared model provided by, and used within, the collaboration platform.

## Claims

### Claim 1

A collaboration platform for providing a shared software agent environment between at least two heterogenous software agents, comprising:
a data synchronization service into which a first software agent publishes properties and behaviors into a shared model,
wherein the data synchronization service advertises the shared model such that at least one second software agent subscribes to properties and behaviors that are of interest to the least one second software agent,
wherein the first software agent and/or the at least one second software agent utilize a communication link between each of the first software agent and the at least one second software agent to observe, consume and/or contribute to the shared model, and
wherein updated data from the shared model is synchronized between the first software agent and the at least one the second software agent in the shared software agent environment.

### Claim 2 (depends on 1)

The collaboration platform of claim 1, wherein the properties and behaviors are identified by key/value pairs, and wherein properties the and behaviors that are of interest to the least one second software agent are identified by a unique key associated with each property and behavior.

### Claim 3 (depends on 2)

The collaboration platform of claim 2, wherein an updated to a particular key/value pair causes the data synchronization service to notify the least one second software agent of the updated using a publish-subscribe-based messaging protocol.

### Claim 4 (depends on 1)

The collaboration platform of claim 1, wherein the shared model is an abstraction that represents common properties and behaviors modeled by the first software agent and the at least one second software agent.

### Claim 5 (depends on 1)

The collaboration platform of claim 1, further comprising a messaging service that provides communications between the first software agent and/or the at least one second software agent using a publish-subscribe-based messaging protocol.

### Claim 6 (depends on 1)

The collaboration platform of claim 1, further comprising a presence service that sends notifications as the first software agent and/or the at least one second software arrive and leave the shared software agent environment.

### Claim 7 (depends on 1)

The collaboration platform of claim 1, wherein an audit trail of the interactions of the first software agent and the at least one second software agent with the shared model are stored in a registry.

### Claim 8 (depends on 7)

The collaboration platform of claim 7, further comprising bookmarking a state of shared agent environment from information in the registry.

### Claim 9 (depends on 7)

The collaboration platform of claim 7, further comprising capturing the interactions in a blockchain.

### Claim 10 (depends on 1)

The collaboration platform of claim 1, wherein the first software agent and the at least one second software comprise one of a web browser, a mapping application, a seismic application, a game engine, Building Information Modeling (BIM) application, a computer aided design (CAD) application, a medical imaging application, an Internet of Things (IoT) device, an artificial intelligence (AI) service, a WebRTC application, and a legacy software application.

### Claim 11 (depends on 10)

The collaboration platform of claim 10, wherein data associated with the first software agent is visually aligned with data associated with the at least one second software agent.

### Claim 12 (depends on 1)

The collaboration platform of claim 1, wherein the communication link is a peer-to-peer connection between first software agent and the at least one second software agent.

### Claim 13 (depends on 12)

The collaboration platform of claim 12, wherein the peer-to-peer connection is used by the first software agent and the at least one second software agent to provide a private communication link therebetween.

### Claim 14 (depends on 1)

The collaboration platform of claim 1, wherein a view is presented that is associated with the first software agent and/or the at least one second software agent and the shared model.

### Claim 15 (depends on 1)

The collaboration platform of claim 1, wherein the first software agent and the at least one second software agent combine to create a digital twin.

### Claim 16

A framework for creating a shared agent environment between at least two heterogenous software agents, comprising:
a collaboration platform that includes a data synchronization service that provides a mechanism wherein the software agents publish and subscribe to messages, and wherein software agents advertise a shared model that is used to exchange information and behaviors in collaboration between the software agents in the shared agent environment,
wherein the collaboration platform receives a connection from a first software agent and at least one second software agent,
wherein the first software agent publishes a representation of the data and behaviors into the shared model for consumption and thereafter advertises the shared model using the data synchronization service;
wherein the at least one second software agent subscribes to the shared model;
wherein the first software agent and/or the at least one second software agent use a communication link between each of the first software agent and the at least one second software agent and use the data synchronization service to observe, consume and/or contribute to the shared model, and
wherein a view is presented that is associated with the first software agent and/or the at least one second software agent and the shared model.

### Claim 17 (depends on 16)

The framework of claim 16, wherein the data synchronization service communicates using a publish-subscribe-based messaging protocol.

### Claim 18 (depends on 16)

The framework of claim 16, further comprising a presence service that determines a presence of the first software agent and the at least one second software agent.

### Claim 19 (depends on 16)

The framework of claim 16, wherein the shared model is an abstraction that represents common properties and behaviors modeled by the first software agent and the at least one second software agent.

### Claim 20 (depends on 16)

The framework of claim 16, wherein one of the first software agent or the at least one second software agent a publishes change to a property or behavior represented in the shared model using the data synchronization service, and wherein the other of the first software agent or the at least one second software agent receives a notification from the data synchronization service of the change to the property or behavior represented in the shared model to update the state of the shared agent environment.

### Claim 21 (depends on 16)

The framework of claim 16, further comprising a registry that maintains an audit trail of the interactions of the first software agent and the at least one second software agent by storing information from the shared model.

### Claim 22 (depends on 21)

The framework of claim 21, further comprising bookmarking a state of shared agent environment from the information in the registry.

### Claim 23 (depends on 21)

The framework of claim 21, further comprising capturing the information in a blockchain.

### Claim 24 (depends on 16)

The framework of claim 16, wherein the first software agent and the at least one second software comprise one of a web browser, a mapping application, a seismic application, a game engine, Building Information Modeling (BIM) application, a computer aided design (CAD) application, a medical imaging application, an Internet of Things (IoT) device, an artificial intelligence (AI) service, a WebRTC application, and a legacy software application.

### Claim 25 (depends on 23)

The framework of claim 23, wherein data associated with the first software agent is visually aligned with data associated with the at least one second software agent.

### Claim 26

A method for a shared agent environment between at least two heterogenous software agents, comprising:
receiving a connection at a collaboration platform from a first software agent and at least one second software agent;
establishing, by a first software agent, a shared model to share a common representation of data and behaviors with at least one second software agent;
publishing and advertising, by the first software agent using a data synchronization service, a representation of the data and behaviors into the shared model for consumption;
subscribing, by the at least one second software agent, to the shared model;
establishing a communication connection between each of the first software agent and the at least one second software agent;
observing, consuming and/or contributing to the shared model using the data synchronization service by the first software agent and/or the at least one second software agent; and
presenting in response to the observing, consuming and/or contributing, updated data in a view associated with the first software agent and/or the at least one second software agent.
