axone-protocol / ontology

πŸ“™ The Axone Ontology
https://docs.axone.xyz/technical-documentation/ontology/the-power-of-ontologies
Creative Commons Attribution Share Alike 4.0 International
12 stars 0 forks source link

Refactor/service execution result #261

Closed ccamel closed 7 months ago

ccamel commented 7 months ago

This PR is a redesign of the concepts of execution order and execution result, which, after discussion with @amimart, appears to have ambiguities and inaccuracies. The redesign aims to clarify these concepts and to unambiguously define the relationships they have with other ontology concepts.

Orchestration Services

To understand the redesign, it's essential first to recall the different kind of resources we have:

It's important to understand that digital services are consumables, meaning these are services that can only be invoked by an orchestration service. One cannot issue orders directly to a digital service without going through an orchestration service. Orchestration services listen for transactions on the chain and respond according to directives (orders) presented in the form of a Verifiable Credential (VC).

The VC Orchestration Service Execution Order

This VC instructs an Orchestration Service to carry out an execution. It's crucial to understand here that the order is expressed without necessarily showing the resources that will be involved in the processing. Indeed, this is subject to interpretation by the Orchestration Service, which, based on the elements of the command provided, determines the resources engaged or not. (if you love logic theory, this is an approach by intention - https://en.wikipedia.org/wiki/Extensional_and_intensional_definitions).

The VC Orchestration Service Execution

This VC represents an ongoing or final execution of an Orchestration Service relative to an Orchestration Service Execution Order. Here, the VC contains references to the resources involved, both consumed and produced. The VC also reflects the progress.

Workflow Overview

I'll briefly describe the orchestration workflow involving these two Verifiable Credentials (VCs).

OSEO (Orchestration Service Execution Order)

When a user wants to initiate an orchestration, they select the orchestration service and create (and sign) an Orchestration Service Execution Order Credential, specifying the orchestration service as the subject. The user must provide all the required arguments. Then, they submits this VC to the blockchain.

OSE (Orchestration Service Execution)

Once the OSEO is recorded on the blockchain, the orchestration service is notified and begins execution. Based on its understanding of the order, it identifies the resources needed, then creates (and signs) an OSE with an InExecution status, which is submitted to the blockchain. This OSE certifies the rights & permissions granted for the proper execution of the workflow. The OSE is updated to reflect the service's completion status, either Failed or Delivered.

In more complex scenarios where the orchestration involves a workflow, multiple OSEs are issued to describe the processing chain in a hierarchical manner.

Summary by CodeRabbit

coderabbitai[bot] commented 7 months ago

Walkthrough

The recent updates enhance and introduce schemas for various credentials, focusing on digital resources, services, and governance. Key additions include domain information across multiple credentials, the introduction of schemas for orchestration service execution and its order, and a new execution status. These changes aim to enrich the metadata and interoperability of digital credentials within a structured ecosystem.

Changes

Files Change Summary
docs/schemas/credential-dataset-description.md
docs/schemas/credential-digital-resource-publication.md
docs/schemas/credential-digital-resource-rights.md
docs/schemas/credential-digital-service-authentication.md
docs/schemas/credential-digital-service-description.md
docs/schemas/credential-zone-description.md
Added domain information for specified properties in various credentials.
docs/schemas/credential-governance-text.md Updated sidebar_position and added a new Domain entry.
docs/schemas/credential-orchestration-service-execution-order.md
docs/schemas/credential-orchestration-service-execution.md
Introduced schemas for Orchestration Service Execution and its Order with detailed properties.
script/cli/templates/schema.md.j2 Enhanced schema template to display domain information for properties.
src/schema/orchestration-service/... Introduced RDF schema definitions for orchestrating service execution orders and details.
src/thesaurus/digital-service-execution-status.ttl Added a new concept InExecution for Digital Service execution progress.

🐰✨
In the digital fields where data streams flow,
New schemas bloom, and credentials grow.
With each update, a richer tale we weave,
Of services orchestrated, in the web we believe.
Here's to the changes, may they guide us right,
Through the digital maze, into the light.
πŸŒŸπŸ“œπŸŒ

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

Tips ### Chat There are 3 ways to chat with CodeRabbit: - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit-tests for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit tests for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit tests.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger a review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - The JSON schema for the configuration file is available [here](https://coderabbit.ai/integrations/coderabbit-overrides.v2.json). - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/coderabbit-overrides.v2.json` ### CodeRabbit Discord Community Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback.