SolidLabResearch / Solid-Agent

A rule-based intelligent software agent
8 stars 1 forks source link
agent linked-data solid

Solid Agent

DOI

The Solid Agent is a rule-based intelligent software agent. It consists of a network of different actors working together. Each actor is (part/combination of) a component of the hybrid web agent architecture proposed in Intelligent software web agents: A gap analysis by Sabrina Kirrane. The five components proposed in that architecture are the following:

The Solid Agent consists of multiple independent actors that each implement one or more of these components to form a Minimum Viable Product of a configurable hybrid web agent. Currently, the following actors are implemented:

A complete overview of the current Solid Agent Architecture can be seen in the following figure.

Agent Architecture

The agent consists of different components that each can stand on their own. This is done to improve modularity and for future research into Multi-Agent Systems (MAS). At the moment each actor can be seen as a standalone agent itself with a simple goal. Multiple combinations and configurations allow for a multitude of use cases to be prototyped. ``

Use cases

Currently, three use cases have been worked out and configured:

Synchronising the state Smart Home with a personal data store

The Solid Protocol, an example of a personal data store, defines how to interact with a Solid pod. To integrate a Smart Home system with Solid, there are a couple of options:

  1. Use a reference implementation (e.g. the CSS or the NNS) and transform the code so the server speaks to the Smart Home Devices directly
    • While technically possible, this results in a vendor lock-in. When people want to use a Smart Home solution with Solid, they have to use this specific Solid Server implementation. And this is against the idea of the Solid Protocol: It doesn't matter what server you use. As long as this server follows the protocol, interoperability is guaranteed.
  2. An application can be built that implements smart home integration and the Solid Protocol
    • The problem here lies in the availability. As soon as you are not running the application, the integration will stop.

A third option is to use an Intelligent Software Web Agent, which is what we have done here.
We have created an openHAB actor so that the Solid Agent can be configured to synchronize the state with the openHAB platform and a state resource stored on a Solid pod.
More information on how to run the agent yourself and how it's built can be found here.

Temporal Usage Control Policy execution for Solid Resources

Sharing data with other people, apps, and other agents is common in the Solid ecosystem. But you might not always want to share the data forever. You might want to share specific data for a limited amount of time.

For this reason, the Solid Agent is configured to allow end users to give temporary access to a Solid resource.
More information on how to run the agent yourself and how it's built can be found here.

The Solid RDF Resource Synchronisation Use Case

The Solid Agent is configured to copy the contents of an RDF resource to another RDF resource.
See DemoSyncAgent for more information.

Cite

If you are using or extending the Solid Agent as part of a scientific publication, we would appreciate a citation of our article.

@inproceedings{slabbinck_iswc_demo_2023,
  author = {Slabbinck, Wout and Dedecker, Ruben and Rojas Mel\'endez, Juli\'an Andr\'es and Verborgh, Ruben},
  title = {A Rule-Based Software Agent on Top of Personal Data Stores},
  booktitle = {Proceedings of the 22nd International Semantic Web Conference: Posters, Demos, and Industry Tracks},
  year = 2023,
  month = nov,
}

Feedback and questions

Do not hesitate to report a bug.

Further questions can also be asked to Wout Slabbinck (developer and maintainer of this repository) or Patrick Hochstenbach (developer and maintainer of Koreografeye).