Skip to content

Commit

Permalink
docs(ontology): improve description of ontology
Browse files Browse the repository at this point in the history
  • Loading branch information
ccamel committed Sep 26, 2023
1 parent c771898 commit 1aa9609
Show file tree
Hide file tree
Showing 5 changed files with 268 additions and 250 deletions.
249 changes: 0 additions & 249 deletions docs/technical-documentation/ontology/general-principles.md

This file was deleted.

106 changes: 106 additions & 0 deletions docs/technical-documentation/ontology/okp4-ontology.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
---
sidebar_position: 3
---

# OKP4 Ontology

The OKP4 protocol orchestrates the various resources of the Dataverse (datasets and services) using different blockchain elements such as smart contracts, logic modules, and ontology. All these elements allow for fine management of dataset and service workflows for knowledge creation within a Zone with personalized governance. As seen previous sections, the ontology must stand for the different concepts of the protocol, their relationships, and their properties.

## The big picture

The following diagram depicts the introduced concepts and their relationship with the already existing concepts of the ontology.

```mermaid
classDiagram
Dataset --> Service : providedBy
class Metadata{
<<abstract>>
}
Metadata <|.. ServiceGeneralMetadata
Metadata <|.. DatasetGeneralMetadata
Metadata <|.. ServiceExecutionMetadata
Metadata <|.. ServiceSpecificationMetadata
ServiceExecutionMetadata ..> ServiceExecution : describes
ServiceGeneralMetadata ..> Service : describes
ServiceSpecificationMetadata ..> Service : describes
DatasetGeneralMetadata ..> Dataset : describes
ServiceExecutionOrder --> Service : hasObject
ServiceExecutionOrder --> Service : has contractor
ServiceExecution --> ServiceExecutionOrder : specifiedBy
ServiceExecution --> Service : hasObject
ServiceExecution --> ServiceExecution : hasParent
ServiceExecution --> Dataset : hasInput
ServiceExecution --> Dataset : produces
ServiceExecution --> Metadata : produces
```

## Class and properties

The following concepts and properties are found within the OKP4 ontology:

### Data

This refers to the data contained within a dataset.

### Dataset

- hasIdentifier

This is a dataset made available by a user on the protocol.

### DatasetGeneralMetadata

- hasTag
- hasCreator
- hasDescription
- hasPublisher
- hasTitle
- hasSpatialCoverage
- hasTemporalCoverage
- hasImage

This is the description of a given dataset in metadata form.

### Zone

Zone is a conceptual framework that is established based on a set of rules, within which recognized `Resources` must conform, considering associated consents.

Zones are described by a set of metadata providing information about various aspects of the Zone, such as the zone's name, general information about the provider, and more.

Specific data description vocabularies and thesauri are used to structure this metadata. A dedicated metadata profile outlines the rules that govern the Zone, expressing its fundamental principles, intentions, scope, and ultimate objectives. These rules encompass the entities involved and the Resources that interact within the Zone.

They can be customized to address specific use cases, industry sectors, partnership networks, or geographic regions, facilitating tailored governance arrangements within a specific context.

### DIDURI

A decentralized identifier URI. A URI that identifies a subject in a decentralized system and is managed independently of any centralized registry.

### Metadata

The information data about something (i.e. data about the data). This something can be a Zone, a Dataset, a Service, or any other entity that can be described.

Metadata is an abstract concept which is refined in Metadata Profiles used to provide a formal specification that defines the set of metadata elements, their semantics, and their syntax to be used in a particular context or application. The OKP4 protocol proposes several profiles at the core of the ontology, such as GeneralMetadata for describing services or datasets.

### Resource

Services or datasets, a resource belongs to the Dataverse.

### Service

- hasIdentifier
A service consumes a resource and produces data.

## Conclusion

With all these concepts, their properties, and their relationships, we can create the OKP4 ontology and explain the workings of the OKP4 protocol in a structured and formalized way. This ontology can be expressed in different formats, both understandable by humans and machines. It can be expressed in French or English, RDF, OWL, JSON-LD, N-Triples, Notation3 RDF/XML, Turtle, etc.

## Documentation

Last released version of OKP4 ontology documentation is available here: <https://ontology.okp4.space>.
37 changes: 37 additions & 0 deletions docs/technical-documentation/ontology/the-power-of-ontologies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
---
sidebar_position: 1
---

# The Power Of Ontologies

In the OKP4 protocol, ontologies are indispensable. They facilitate a comprehensive depiction of the dataverse, capturing even its most intricate details. Ontologies provide detailed descriptions of both datasets and services, enhancing overall comprehension. Moreover, they bridge the connection between governance and orchestration within the dataverse.

<center>
<img src="/img/content/whitepaper/arch-3pillars.webp"></img>
</center>

This ontology allows to achieve:

- **Standardization of terminology**: standardized terminology is used for concepts and relationships in a given domain, clarifying and avoiding misunderstandings between participants.
- **Structuring of data**: data is structured in a coherent and organized way, making it easier to access, process, and analyze.
- **Interoperability of systems and tools**: a well-designed ontology enables interoperability between systems and tools, facilitating the sharing of knowledge among different stakeholders.
- **Improved data research and analysis** by accurately describing concepts and relationships in a particular domain.

## A formal model for the OKP4 protocol

This ontology describes and defines the different forms of vocabularies used in the [OKP4](https://okp4.space) protocol in a standard and well designed format. The aim is to model a semantic network of all the _entities_ (Zones, data, services, processing workflows) by semantically characterizing what they are and the relationships they maintain between them. Thus, the ontology provides a complete living understanding and knowledge of the datasets within a Zone, their transformation (by the services), as well as the governance rules that apply (data sharing, consents, policy rules).

Several languages are used to express the OKP4 ontologies:

- [OWL (Web Ontology Language)](https://www.w3.org/TR/owl2-overview/): a standard language of the World Wide Web Consortium (W3C) for representing ontologies. OWL is based on descriptive logic and allows for the definition of classes, subclasses, properties, and relationships.
- [RDF (Resource Description Framework)](https://www.w3.org/TR/rdf11-concepts/): a markup language for representing information about resources on the Web, including ontologies. RDF describes resources in terms of their properties and relationships with other resources.
- RDFS (RDF Schema): an ontology representation language that defines classes and properties and relationships between them. RDFS is an extension of RDF.
- [SKOS (Simple Knowledge Organization System)](https://en.wikipedia.org/wiki/Simple_Knowledge_Organization_System): a language for representing ontology that allows the description of classification systems and thesauri. SKOS allows the definition of concepts, relationships, and properties.

<center>
<img src="/img/content/technical-documentation/semantic-stack.webp"></img>
</center>

## Ontology at the heart of the blockchain

The Ontology is at the heart of the [OKP4](https://github.com/okp4/okp4d) protocol as much of the information is encoded and stored as an ontology _on-chain_ in the blockchain transactions. This means that (almost) all the semantics of the transactions submitted to the blockchain are expressed through this ontology - for instance the creation of a Zone, the execution of a Service, the description of a Dataset, etc.
Loading

0 comments on commit 1aa9609

Please sign in to comment.