diff --git a/docs/data-model/assets/data-model.png b/docs/data-model/assets/data-model.png
index 103b539d..a7975024 100644
Binary files a/docs/data-model/assets/data-model.png and b/docs/data-model/assets/data-model.png differ
diff --git a/docs/data-model/data-model.md b/docs/data-model/data-model.md
index 273edfa6..75b74fbd 100644
--- a/docs/data-model/data-model.md
+++ b/docs/data-model/data-model.md
@@ -1,6 +1,6 @@
# Data model
-The OpenAIRE Research Graph comprises several types of entities and relationships among them.
+The OpenAIRE Research Graph comprises several types of [entities](./category/entities) and [relationships](./relationships) among them.
The latest version of the JSON schema can be found on [Bulk downloads](../download).
diff --git a/docs/data-model/entities.md b/docs/data-model/entities.md
deleted file mode 100644
index ae19526f..00000000
--- a/docs/data-model/entities.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-sidebar_position: 1
----
-
-# Entities
\ No newline at end of file
diff --git a/docs/data-model/entities/_category_.json b/docs/data-model/entities/_category_.json
new file mode 100644
index 00000000..1740b21d
--- /dev/null
+++ b/docs/data-model/entities/_category_.json
@@ -0,0 +1,8 @@
+{
+ "label": "Entities",
+ "position": 1,
+ "link": {
+ "type": "generated-index",
+ "description": "The main entities of the OpenAIRE Research Graph are listed below."
+ }
+}
\ No newline at end of file
diff --git a/docs/data-model/entities/community.md b/docs/data-model/entities/community.md
new file mode 100644
index 00000000..a3ea2d10
--- /dev/null
+++ b/docs/data-model/entities/community.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 5
+---
+
+# Community (Initiative)
+
diff --git a/docs/data-model/entities/data-source.md b/docs/data-model/entities/data-source.md
new file mode 100644
index 00000000..fed2da39
--- /dev/null
+++ b/docs/data-model/entities/data-source.md
@@ -0,0 +1,5 @@
+---
+sidebar_position: 2
+---
+
+# Data source
diff --git a/docs/data-model/entities/organization.md b/docs/data-model/entities/organization.md
new file mode 100644
index 00000000..6f3504a9
--- /dev/null
+++ b/docs/data-model/entities/organization.md
@@ -0,0 +1,5 @@
+---
+sidebar_position: 3
+---
+
+# Organization
diff --git a/docs/data-model/entities/project.md b/docs/data-model/entities/project.md
new file mode 100644
index 00000000..fcfc0c8b
--- /dev/null
+++ b/docs/data-model/entities/project.md
@@ -0,0 +1,6 @@
+---
+sidebar_position: 4
+---
+
+# Project
+
diff --git a/docs/data-model/entities/result.md b/docs/data-model/entities/result.md
new file mode 100644
index 00000000..9d9975cf
--- /dev/null
+++ b/docs/data-model/entities/result.md
@@ -0,0 +1,214 @@
+---
+sidebar_position: 1
+---
+
+# Result
+
+Results are intended as digital objects, described by metadata, resulting from a scientific process.
+
+There are four sub-types of a `Result`:
+* [Publication](#publication)
+* [Dataset](#dataset)
+* [Software](#software)
+* [Other research product](#other-research-product)
+
+---
+
+## Properties
+
+### id
+_Type: String_
+
+_Cardinality: ONE_
+
+Main entity identifier, created according to
+[OpenAIRE entity identifier and PID mapping policy](https://support.openaire.eu/projects/docs/wiki/OpenAIRE_entity_identifier_and_PID_mapping_policy).
+
+### type
+_Type: String_
+
+_Cardinality: ONE_
+
+Type of the result. Possible types:
+
+* `publication`
+* `dataset`
+* `software`
+* `other`
+
+as declared in the terms from the [dnet:result_typologies vocabulary](https://api.openaire.eu/vocabularies/dnet:result_typologies).
+
+### originalId
+_Type: String • Cardinality: MANY_
+
+Identifiers of the record at the original sources.
+
+### maintitle
+_Type: String • Cardinality: ONE_
+
+A name or title by which a scientific result is known. May be the title of a publication, of a dataset or the name of a piece of software.
+
+### subtitle
+_Type: String • Cardinality: ONE_
+
+Explanatory or alternative name by which a scientific result is known.
+
+### author
+_Type: [Author](#author-1) • Cardinality: MANY_
+
+The main researchers involved in producing the data, or the authors of the publication.
+
+### bestaccessright
+_Type: [BestAccessRight](#bestaccessright-1) • Cardinality: ONE_
+
+The most open access right associated to the manifestations of this research results.
+
+### contributor
+_Type: String • Cardinality: MANY_
+
+The institution or person responsible for collecting, managing, distributing, or otherwise contributing to the development of the resource.
+
+### country
+_Type: [ResultCountry](#resultcountry) • Cardinality: MANY_
+
+Country associated with the result because it is the country of the organisation that manages the institutional repository or national aggregator or CRIS system from which this record was collected
+Country of affiliations of authors can be found instead in the affiliation rel.
+
+### coverage
+_Type: String • Cardinality: MANY_
+TODO
+
+### dateofcollection
+_Type: String • Cardinality: ONE_
+
+When OpenAIRE collected the record the last time.
+TODO: we should indicate the used date format
+
+### description
+_Type: String • Cardinality: MANY_
+
+A brief description of the resource and the context in which the resource was created.
+
+### embargoenddate
+_Type: String • Cardinality: ONE_
+
+Date when the embargo ends and this result turns Open Access. TODO: we should indicate the used date format
+
+### instance
+_Type: [Instance](#instance-1) • Cardinality: MANY_
+
+Specific materialization or version of the result. For example, you can have one result with three instances: one is the pre-print, one is the post-print, one is the published version
+
+### language
+_Type: [Language](#language-1) • Cardinality: ONE_
+
+The `alpha-3/ISO 639-2` code of the language. Values controlled by the [dnet:languages vocabulary](https://api.openaire.eu/vocabularies/dnet:languages)
+
+### lastupdatetimestamp
+_Type: Long • Cardinality: ONE_
+
+Timestamp of last update of the record in OpenAIRE.
+
+### pid
+_Type: [ResultPid](#resultpid) • Cardinality: MANY_
+
+Persistent identifiers of the result. See also [OpenAIRE entity identifier and PID mapping policy](https://support.openaire.eu/projects/docs/wiki/OpenAIRE_entity_identifier_and_PID_mapping_policy) to learn more.
+
+### publicationdate
+_Type: String • Cardinality: ONE_
+
+Main date of the research product: typically the publication or issued date. In case of a research result with different versions with different dates, the date of the result is selected as the most frequent well-formatted date. If not available, then the most recent and complete date among those that are well-formatted. For statistics, the year is extracted and the result is counted only among the result of that year. Example: Pre-print date: 2019-02-03, Article date provided by repository: 2020-02, Article date provided by Crossref: 2020, OpenAIRE will set as date 2019-02-03, because it’s the most recent among the complete and well-formed dates. If then the repository updates the metadata and set a complete date (e.g. 2020-02-12), then this will be the new date for the result because it becomes the most recent most complete date. However, if OpenAIRE then collects the pre-print from another repository with date 2019-02-03, then this will be the “winning date” because it becomes the most frequent well-formatted date.
+
+### publisher
+_Type: String • Cardinality: ONE_
+
+The name of the entity that holds, archives, publishes prints, distributes, releases, issues, or produces the resource.
+
+### source
+_Type: String • Cardinality: MANY_
+
+A related resource from which the described resource is derived. See definition of Dublin Core field [dc:source](https://www.dublincore.org/specifications/dublin-core/dcmi-terms/elements11/source).
+
+### subjects
+_Type: [Subject](#subject) • Cardinality: MANY_
+
+Subject, keyword, classification code, or key phrase describing the resource.
+
+---
+
+## Sub-types
+
+There are the following four sub-types of `Result`. Each inherits all its fields and extends them with the following.
+
+### Publication
+
+#### container
+_Type: [Container](#container-1) • Cardinality: ONE_
+
+Container has information about the conference or journal where the result has been presented or published.
+
+### Dataset
+
+#### size
+_Type: String • Cardinality: ONE_
+
+The size of the dataset.
+
+#### version
+_Type: String • Cardinality: ONE_
+
+The version of the dataset.
+
+#### geolocation
+_Type: [GeoLocation](#geolocation-1) • Cardinality: MANY_
+
+The list of geolocations associated with the dataset.
+
+### Software
+
+#### documentationUrl
+_Type: String • Cardinality: MANY_
+
+The URLs to the software documentation.
+
+#### codeRepositoryUrl
+_Type: String • Cardinality: ONE_
+
+The URL to the repository holding the source code,
+
+#### programmingLanguage
+_Type: String • Cardinality: ONE_
+
+The programming language.
+
+### Other research product
+
+#### contactperson
+_Type: String • Cardinality: MANY_
+
+The contact person for this ORP.
+
+#### contactgroup
+_Type: String • Cardinality: MANY_
+
+The information for the contact group.
+
+#### tool
+_Type: String • Cardinality: MANY_
+
+Information about tool useful for the interpretation and/or re-use of the research product.
+
+---
+
+## Other component objects
+
+
+### Author
+### BestAccessRight
+### Container
+### GeoLocation
+### ResultCountry
+### Instance
+### Language
+### ResultPid
+### Subject
\ No newline at end of file
diff --git a/docs/download.md b/docs/download.md
index 5ac6ed01..9b7e8d5f 100644
--- a/docs/download.md
+++ b/docs/download.md
@@ -7,5 +7,11 @@ sidebar_position: 4
In order to facilitate users, different dumps are available. All are available under the Zenodo community called [OpenAIRE Research Graph](https://zenodo.org/communities/openaire-research-graph).
Here we provide detailed documentation about the full dump:
-* Json dump: https://doi.org/10.5281/zenodo.3516917
-* Json schema: https://doi.org/10.5281/zenodo.4238938
\ No newline at end of file
+* JSON dump: https://doi.org/10.5281/zenodo.3516917
+* JSON schema: https://doi.org/10.5281/zenodo.4238938
+
+:::tip Tip!
+
+For a visual and interactive overview of the JSON schema, we suggest to use a JSON schema viewer like [jsonschemaviewer](https://navneethg.github.io/jsonschemaviewer/) (you just need to copy the schema and then you can easily navigate through the nodes).
+
+:::