diff --git a/.env b/.env new file mode 100644 index 0000000..a8c69cf --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +URL="https://graph.openaire.eu" +BASE_URL="/docs" diff --git a/.gitignore b/.gitignore index e005ae6..19f54c8 100644 --- a/.gitignore +++ b/.gitignore @@ -19,4 +19,5 @@ npm-debug.log* yarn-debug.log* yarn-error.log* -.idea/ \ No newline at end of file +.idea/ +openaire-graph-docs.iml \ No newline at end of file diff --git a/docs/assets/openaire-badge-1.png b/docs/assets/badges/openaire-badge-1.png similarity index 100% rename from docs/assets/openaire-badge-1.png rename to docs/assets/badges/openaire-badge-1.png diff --git a/docs/assets/openaire-badge-1.zip b/docs/assets/badges/openaire-badge-1.zip similarity index 100% rename from docs/assets/openaire-badge-1.zip rename to docs/assets/badges/openaire-badge-1.zip diff --git a/docs/assets/openaire-badge-2.png b/docs/assets/badges/openaire-badge-2.png similarity index 100% rename from docs/assets/openaire-badge-2.png rename to docs/assets/badges/openaire-badge-2.png diff --git a/docs/assets/openaire-badge-2.zip b/docs/assets/badges/openaire-badge-2.zip similarity index 100% rename from docs/assets/openaire-badge-2.zip rename to docs/assets/badges/openaire-badge-2.zip diff --git a/docs/assets/openaire-badge-3.png b/docs/assets/badges/openaire-badge-3.png similarity index 100% rename from docs/assets/openaire-badge-3.png rename to docs/assets/badges/openaire-badge-3.png diff --git a/docs/assets/openaire-badge-3.zip b/docs/assets/badges/openaire-badge-3.zip similarity index 100% rename from docs/assets/openaire-badge-3.zip rename to docs/assets/badges/openaire-badge-3.zip diff --git a/static/img/docs/aggregation.png b/docs/assets/img/aggregation.png similarity index 100% rename from static/img/docs/aggregation.png rename to docs/assets/img/aggregation.png diff --git a/docs/assets/img/architecture.png b/docs/assets/img/architecture.png new file mode 100644 index 0000000..5885db5 Binary files /dev/null and b/docs/assets/img/architecture.png differ diff --git a/static/img/docs/data-model.png b/docs/assets/img/data-model.png similarity index 100% rename from static/img/docs/data-model.png rename to docs/assets/img/data-model.png diff --git a/static/img/docs/decisiontree-dataset-orp.png b/docs/assets/img/decisiontree-dataset-orp.png similarity index 100% rename from static/img/docs/decisiontree-dataset-orp.png rename to docs/assets/img/decisiontree-dataset-orp.png diff --git a/static/img/docs/decisiontree-organization.png b/docs/assets/img/decisiontree-organization.png similarity index 100% rename from static/img/docs/decisiontree-organization.png rename to docs/assets/img/decisiontree-organization.png diff --git a/static/img/docs/decisiontree-publication.png b/docs/assets/img/decisiontree-publication.png similarity index 100% rename from static/img/docs/decisiontree-publication.png rename to docs/assets/img/decisiontree-publication.png diff --git a/static/img/docs/decisiontree-software.png b/docs/assets/img/decisiontree-software.png similarity index 100% rename from static/img/docs/decisiontree-software.png rename to docs/assets/img/decisiontree-software.png diff --git a/static/img/docs/dedup-results.png b/docs/assets/img/dedup-results.png similarity index 100% rename from static/img/docs/dedup-results.png rename to docs/assets/img/dedup-results.png diff --git a/static/img/docs/deduplication-workflow.png b/docs/assets/img/deduplication-workflow.png similarity index 100% rename from static/img/docs/deduplication-workflow.png rename to docs/assets/img/deduplication-workflow.png diff --git a/static/img/docs/enrichment/bulktagging_datasource.png b/docs/assets/img/enrichment/bulktagging_datasource.png similarity index 100% rename from static/img/docs/enrichment/bulktagging_datasource.png rename to docs/assets/img/enrichment/bulktagging_datasource.png diff --git a/static/img/docs/enrichment/bulktagging_selconstraints.png b/docs/assets/img/enrichment/bulktagging_selconstraints.png similarity index 100% rename from static/img/docs/enrichment/bulktagging_selconstraints.png rename to docs/assets/img/enrichment/bulktagging_selconstraints.png diff --git a/static/img/docs/enrichment/bulktagging_subject.png b/docs/assets/img/enrichment/bulktagging_subject.png similarity index 100% rename from static/img/docs/enrichment/bulktagging_subject.png rename to docs/assets/img/enrichment/bulktagging_subject.png diff --git a/static/img/docs/enrichment/bulktagging_zenodo.png b/docs/assets/img/enrichment/bulktagging_zenodo.png similarity index 100% rename from static/img/docs/enrichment/bulktagging_zenodo.png rename to docs/assets/img/enrichment/bulktagging_zenodo.png diff --git a/static/img/docs/enrichment/organization_tree.png b/docs/assets/img/enrichment/organization_tree.png similarity index 100% rename from static/img/docs/enrichment/organization_tree.png rename to docs/assets/img/enrichment/organization_tree.png diff --git a/static/img/docs/enrichment/propagation_affiliationistrepo.png b/docs/assets/img/enrichment/propagation_affiliationistrepo.png similarity index 100% rename from static/img/docs/enrichment/propagation_affiliationistrepo.png rename to docs/assets/img/enrichment/propagation_affiliationistrepo.png diff --git a/static/img/docs/enrichment/propagation_country.png b/docs/assets/img/enrichment/propagation_country.png similarity index 100% rename from static/img/docs/enrichment/propagation_country.png rename to docs/assets/img/enrichment/propagation_country.png diff --git a/static/img/docs/enrichment/propagation_orcid.png b/docs/assets/img/enrichment/propagation_orcid.png similarity index 100% rename from static/img/docs/enrichment/propagation_orcid.png rename to docs/assets/img/enrichment/propagation_orcid.png diff --git a/static/img/docs/enrichment/propagation_organizationsemrel.png b/docs/assets/img/enrichment/propagation_organizationsemrel.png similarity index 100% rename from static/img/docs/enrichment/propagation_organizationsemrel.png rename to docs/assets/img/enrichment/propagation_organizationsemrel.png diff --git a/static/img/docs/enrichment/propagation_resulttocommunitythroughorganization.png b/docs/assets/img/enrichment/propagation_resulttocommunitythroughorganization.png similarity index 100% rename from static/img/docs/enrichment/propagation_resulttocommunitythroughorganization.png rename to docs/assets/img/enrichment/propagation_resulttocommunitythroughorganization.png diff --git a/static/img/docs/enrichment/propagation_resulttocommunitythroughsemrel.png b/docs/assets/img/enrichment/propagation_resulttocommunitythroughsemrel.png similarity index 100% rename from static/img/docs/enrichment/propagation_resulttocommunitythroughsemrel.png rename to docs/assets/img/enrichment/propagation_resulttocommunitythroughsemrel.png diff --git a/static/img/docs/enrichment/propagation_resulttoproject.png b/docs/assets/img/enrichment/propagation_resulttoproject.png similarity index 100% rename from static/img/docs/enrichment/propagation_resulttoproject.png rename to docs/assets/img/enrichment/propagation_resulttoproject.png diff --git a/docs/changelog.md b/docs/changelog.md index ef2a961..c2a5366 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -2,5 +2,34 @@ sidebar_position: 12 --- -# Changelog -TODO \ No newline at end of file +# Versions & changelog + + +## Versioning + +Our versioning policy follows the [Semantic Versioning specification](https://semver.org/). +In our case, given a version `MAJOR.MINOR.PATCH`, we increment the: + +* `MAJOR` version when the data model of the Graph changes +* `MINOR` version when the pipeline (e.g., different deduplication method, different implementation for an enrichment process) or major data sources change +* `PATCH` version when the graph data are updated + + +## Changelog + +This section will document all notable changes for each graph version. + + +### v5.0.0 + +#### Added + +- [Impact indicators](/data-model/entities/result#indicators) at the level of the Result +- [Beginner's kit](/downloads/beginners-kit) in the Downloads section +- New relationship types were introduced; see the complete list [here](/data-model/relationships#relationship-types) + +#### Changed + +- FOS and SDGs were removed from the [result subjects](/data-model/entities/result#subjects) +- Measures were removed from the [result instance](/data-model/entities/result#instance) + diff --git a/docs/data-model/data-model.md b/docs/data-model/data-model.md index 50a6a52..8cd3d9f 100644 --- a/docs/data-model/data-model.md +++ b/docs/data-model/data-model.md @@ -1,25 +1,25 @@ # Data model -The OpenAIRE Graph comprises several types of [entities](../category/entities) and [relationships](./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 the [Downloads](../downloads/full-graph) section.

- Data model + Data model

The figure above, presents the graph's data model. Its main entities are described in brief below: -* [Results](entities/result) represent the outcomes of research activities. -* [Data Sources](entities/data-source) are the resources used to collect metadata for the graph objects +* [Results](entities/result) represent the outcomes (or products) of research activities. +* [Data Sources](entities/data-source) are the sources from which the metadata of graph objects are collected. * [Organizations](entities/organization) correspond to companies or research institutions involved in projects, responsible for operating data sources or consisting the affiliations of Product creators. -* [Projects](entities/project) are research projects funded by a Funding Stream of a Funder. -* [Communities](entities/community) are groups of people with a common research intent. +* [Projects](entities/project) are research project grants funded by a Funding Stream of a Funder. +* [Communities](entities/community) are groups of people with a common research intent (e.g. research infrastructures, university alliances). :::note Further reading -A detailed report on the OpenAIRE Graph Data Model can be found on [Zenodo](https://zenodo.org/record/2643199). +A detailed report on the OpenAIRE Research Graph Data Model can be found on [Zenodo](https://zenodo.org/record/2643199). ::: diff --git a/docs/data-model/entities/_category_.json b/docs/data-model/entities/_category_.json index 8161451..1740b21 100644 --- a/docs/data-model/entities/_category_.json +++ b/docs/data-model/entities/_category_.json @@ -3,6 +3,6 @@ "position": 1, "link": { "type": "generated-index", - "description": "The main entities of the OpenAIRE Graph are listed below." + "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/other.md b/docs/data-model/entities/other.md index cd12f18..e066b5b 100644 --- a/docs/data-model/entities/other.md +++ b/docs/data-model/entities/other.md @@ -542,21 +542,6 @@ The license URL. "license": "http://creativecommons.org/licenses/by-nc/4.0" ``` -### measures -_Type: [Measure](#measure) • Cardinality: MANY_ - -The measures computed for this instance (e.g. those provided by [BIP! Finder](https://bip.imsi.athenarc.gr/)). - -```json -"measures": [ - { - "key": "influence", - "value": "6.45335454246e-09" - }, - ... -] -``` - ### pid _Type: [ResultPid](#resultpid) • Cardinality: MANY_ @@ -619,6 +604,55 @@ URLs to the instance. They may link to the actual full-text or to the landing pa ] ``` +## Indicator + +These are indicators computed for a specific OpenAIRE result. + +Each Indicator object is composed of the following properties: + +### impactMeasures +_Type: [ImpactMeasures](#impactmeasures-1) • Cardinality: ONE_ + +These impact-based indicators, provided by [BIP!](https://bip.imsi.athenarc.gr/), estimate the impact of a result. + +For details about their calculation, please refer [here](/data-provision/indicators-ingestion/impact-scores). + +```json +"impactMeasures": { + "influence": { + "score": "123", + "class": "C2" + }, + "influence_alt" : { + "score": "456", + "class": "C3" + }, + "popularity": { + "score": "234", + "class": "C1" + }, + "popularity_alt": { + "score": "345", + "class": "C5" + }, + "impulse": { + "score": "987", + "class": "C3" + } +} +``` + +### usageCounts +_Type: [UsageCounts](#usagecounts-1) • Cardinality: ONE_ + +These measures, computed by the [UsageCounts Service](https://usagecounts.openaire.eu/), are based on usage statistics. + +```json +"usageCounts":{ + "downloads": "10", + "views": "20" +} +``` ## Language Represents information for the language of the result @@ -640,31 +674,76 @@ Language label in English. "label": "English" ``` -## Measure -A measure computed for this instance (e.g. those provided by [BIP! Finder](https://bip.imsi.athenarc.gr/)) +## ImpactMeasures -### key -_Type: String • Cardinality: ONE_ +The different impact-based indicators as computed by [BIP!](https://bip.imsi.athenarc.gr/). -The specified measure. Currently supported one of: -* `influence` (see [PageRank](/data-provision/enrichment/impact-scores#pagerank-pr)) -* `influence_alt` (see [Citation Count](/data-provision/enrichment/impact-scores#citation-count-cc)) -* `popularity` (see [AttRank](/data-provision/enrichment/impact-scores#attrank)) -* `popularity_alt` (see [RAM](/data-provision/enrichment/impact-scores#ram)) -* `impulse` (see ["Incubation" Citation Count](/data-provision/enrichment/impact-scores#incubation-citation-count-icc)) +### influence +_Type: [Score](#score) • Cardinality: ONE_ + +This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). +For more details please refer [here](/data-provision/indicators-ingestion/impact-scores#pagerank-pr). ```json -"key": "influence" +"influence": { + "score": "123", + "class": "C2" +} ``` -### value -_Type: String • Cardinality: ONE_ +### influence_alt +_Type: [Score](#score) • Cardinality: ONE_ + +This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). +For more details please refer [here](/data-provision/indicators-ingestion/impact-scores#citation-count-cc). ```json -"value": "6.45335454246e-09" +"influence_alt" :{ + "score": "456", + "class": "C3" +} ``` -The value for that measure. +### popularity +_Type: [Score](#score) • Cardinality: ONE_ + +This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. +For more details please refer [here](/data-provision/indicators-ingestion/impact-scores#attrank). + +```json +"popularity":{ + "score": "234", + "class": "C1" +} + +``` + +### popularity_alt +_Type: [Score](#score) • Cardinality: ONE_ + +This is an alternative to the "Popularity" indicator, which also reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. +For more details please refer [here](/data-provision/indicators-ingestion/impact-scores#ram). + +```json +"popularity_alt":{ + "score": "345", + "class": "C5" +} + +``` + +### impulse +_Type: [Score](#score) • Cardinality: ONE_ + +This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. +For more details please refer [here](/data-provision/indicators-ingestion/impact-scores#incubation-citation-count-icc). + +```json +"impulse":{ + "score": "987", + "class": "C3" +} +``` ## OrganizationPid @@ -748,6 +827,33 @@ The value expressed in the scheme (i.e. 10.1000/182). "value": "10.21511/bbs.13(3).2018.13" ``` +## Score +The specific score object for each calculated impact measure calculated by [BIP!](https://bip.imsi.athenarc.gr/). + +### score +_Type: String • Cardinality: ONE_ + +The actual indicator score. + +```json +"score": "1234" +``` + +### class +_Type: String • Cardinality: ONE_ + +The impact class assigned based on the indicator score. + +To facilitate comprehension, BIP! also offers impact classes for articles, to group together those that have similar impact. The following 5 classes are provided: +* `C1`: Top 0.01% +* `C2`: Top 0.1% +* `C3`: Top 1% +* `C4`: Top 10% +* `C5`: Bottom 90% + +```json +"class": "C2" +``` ## Subject Represents keywords associated to the result. @@ -795,3 +901,25 @@ The value for the subject in the selected scheme. When the scheme is 'keyword', ```json "value" : "pyrolysis-oil" ``` + +## UsageCounts + +The usage counts indicator computed for this result. + +### views +_Type: String • Cardinality: ONE_ + +The number of views for this result. + +```json +"views": "10" +``` + +### downloads +_Type: String • Cardinality: ONE_ + +The number of downloads for this result. + +```json +"downloads": "5" +``` \ No newline at end of file diff --git a/docs/data-model/entities/result.md b/docs/data-model/entities/result.md index 72a45e6..f0abfcc 100644 --- a/docs/data-model/entities/result.md +++ b/docs/data-model/entities/result.md @@ -183,6 +183,43 @@ Date when the embargo ends and this result turns Open Access. "embargoenddate": "2017-01-01" ``` +### indicators +_Type: [Indicator](other#indicator) • Cardinality: ONE_ + +The indicators computed for this result; +currently, the following two types of indicators are supported: [impact indicators](/data-provision/indicators-ingestion/impact-scores) and [usage statistics indicators](/data-provision/indicators-ingestion/usage-counts). + +```json +"indicators": { + "impactMeasures": { + "influence": { + "score": "123", + "class": "C2" + }, + "influence_alt" : { + "score": "456", + "class": "C3" + }, + "popularity": { + "score": "234", + "class": "C1" + }, + "popularity_alt": { + "score": "345", + "class": "C5" + }, + "impulse": { + "score": "987", + "class": "C3" + } + }, + "usageCounts": { + "downloads": "10", + "views": "20" + } +} +``` + ### instance _Type: [Instance](other#instance) • Cardinality: MANY_ @@ -209,13 +246,6 @@ Specific materialization or version of the result. For example, you can have one "currency": "EUR" }, "license": "http://creativecommons.org/licenses/by-nc/4.0", - "measures":[ - { - "key": "influence", - "value": "6.45335454246e-09" - }, - ... - ], "pid": [ { "scheme": "pmc", diff --git a/docs/data-model/pids-and-identifiers.md b/docs/data-model/pids-and-identifiers.md index a3b7cda..17365b3 100644 --- a/docs/data-model/pids-and-identifiers.md +++ b/docs/data-model/pids-and-identifiers.md @@ -1,6 +1,6 @@ # PIDs and identifiers -One of the challenges towards the stability of the contents in the OpenAIRE Graph consists of making its identifiers and records stable over time. +One of the challenges towards the stability of the contents in the OpenAIRE Research Graph consists of making its identifiers and records stable over time. The barriers to this scenario are many, as the Graph keeps a map of data sources that is subject to constant variations: records in repositories vary in content, original IDs, and PIDs, may disappear or reappear, and the same holds for the repository or the metadata collection it exposes. Not only, but the mappings applied to the original contents may also change and improve over time to catch up with the changes in the input records. @@ -70,5 +70,5 @@ Currently, the following data sources are used as "PID authorities": | arXiv | `arXiv_______` | arXiv.org e-Print Archive | | handle | `handle______` | any repository | -OpenAIRE also perform duplicate identification (see the [dedicated section for details](../../data-provision/deduplication/)). +OpenAIRE also perform duplicate identification (see the [dedicated section for details](/data-provision/deduplication)). All duplicates are **merged** together in a **representative record** which must be assigned a dedicated OpenAIRE identifier (i.e. it cannot have the identifier of one of the aggregated record). diff --git a/docs/data-model/relationships.md b/docs/data-model/relationships.md index 8d2bc42..7f157bc 100644 --- a/docs/data-model/relationships.md +++ b/docs/data-model/relationships.md @@ -127,20 +127,36 @@ Further specifies the relation semantic, indicating the relation direction, e.g. The following table lists all the possible relation semantics found in the graph dump. +Note: the labels used to specify the semantic of the relationships are (for the large) inherited from the [DataCite metadata kernel](https://schema.datacite.org/meta/kernel-4.4/doc/DataCite-MetadataKernel_v4.4.pdf), which provides a description for them. + | # | Source entity type | Target entity type | Relation type | Relation name | Inverse relation name | |:--:|:------------------:|:-------------------:|:-------------:|:---------------------------:|:----------------------------:| | 1 | [Project](entities/project) | [Result](entities/result) | outcome | produces | isProducedBy | -| 2 | [Result](entities/result) | [Organization](entities/organization) | affiliation | hasAuthorInstitution | isAuthorInstitutionOf | -| 3 | [Result](entities/result) | [Result](entities/result) | similarity | isAmongTopNSimilarDocuments | HasAmongTopNSimilarDocuments | -| 4 | [Project](entities/project) | [Organization](entities/organization) | participation | isParticipant | hasParticipant | +| 2 | [Project](entities/project) | [Organization](entities/organization) | participation | hasParticipant | isParticipant | +| 3 | [Project](entities/project) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | +| 4 | [Result](entities/result) | [Result](entities/result) | similarity | isAmongTopNSimilarDocuments | HasAmongTopNSimilarDocuments | | 5 | [Result](entities/result) | [Result](entities/result) | supplement | isSupplementTo | isSupplementedBy | | 6 | [Result](entities/result) | [Result](entities/result) | relationship | isRelatedTo | isRelatedTo | -| 7 | [Data source](entities/data-source) | [Organization](entities/organization) | provision | provides | isProvidedBy | -| 8 | [Result](entities/result) | [Data source](entities/data-source) | provision | isHostedBy | hosts | -| 9 | [Result](entities/result) | [Data source](entities/data-source) | provision | isProvidedBy | provides | -| 10 | [Result](entities/result) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | -| 11 | [Organization](entities/organization) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | -| 12 | [Data source](entities/data-source) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | -| 13 | [Project](entities/project) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | - +| 7 | [Result](entities/result) | [Result](entities/result) | relationship | IsPartOf | HasPart | +| 8 | [Result](entities/result) | [Result](entities/result) | relationship | IsDocumentedBy | Documents | +| 9 | [Result](entities/result) | [Result](entities/result) | relationship | IsObsoletedBy | Obsoletes | +| 10 | [Result](entities/result) | [Result](entities/result) | relationship | IsSourceOf | IsDerivedFrom | +| 11 | [Result](entities/result) | [Result](entities/result) | relationship | IsCompiledBy | Compiles | +| 12 | [Result](entities/result) | [Result](entities/result) | relationship | IsRequiredBy | Requires | +| 13 | [Result](entities/result) | [Result](entities/result) | citation | IsCitedBy | Cites | +| 14 | [Result](entities/result) | [Result](entities/result) | relationship | IsReferencedBy | References | +| 15 | [Result](entities/result) | [Result](entities/result) | relationship | IsReviewedBy | Reviews | +| 16 | [Result](entities/result) | [Result](entities/result) | relationship | IsOriginalFormOf | IsVariantFormOf | +| 17 | [Result](entities/result) | [Result](entities/result) | relationship | IsVersionOf | HasVersion | +| 18 | [Result](entities/result) | [Result](entities/result) | relationship | IsIdenticalTo | IsIdenticalTo | +| 19 | [Result](entities/result) | [Result](entities/result) | relationship | IsPreviousVersionOf | IsNewVersionOf | +| 20 | [Result](entities/result) | [Result](entities/result) | relationship | IsContinuedBy | Continues | +| 21 | [Result](entities/result) | [Result](entities/result) | relationship | IsDescribedBy | Describes | +| 22 | [Result](entities/result) | [Organization](entities/organization) | affiliation | hasAuthorInstitution | isAuthorInstitutionOf | +| 23 | [Result](entities/result) | [Data source](entities/data-source) | provision | isHostedBy | hosts | +| 24 | [Result](entities/result) | [Data source](entities/data-source) | provision | isProvidedBy | provides | +| 25 | [Result](entities/result) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | +| 26 | [Organization](entities/organization) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | +| 27 | [Data source](entities/data-source) | [Community](entities/community) | relationship | isRelatedTo | isRelatedTo | +| 28 | [Data source](entities/data-source) | [Organization](entities/organization) | provision | isProvidedBy | provides | diff --git a/docs/data-provision/aggregation/aggregation.md b/docs/data-provision/aggregation/aggregation.md index 037d98e..94c82f2 100644 --- a/docs/data-provision/aggregation/aggregation.md +++ b/docs/data-provision/aggregation/aggregation.md @@ -4,17 +4,17 @@ sidebar_position: 1 # Aggregation -OpenAIRE materializes an open, participatory research graph (the OpenAIRE Graph) where products of the research life-cycle (e.g. scientific literature, research data, project, software) are semantically linked to each other and carry information about their access rights (i.e. if they are Open Access, Restricted, Embargoed, or Closed) and the sources from which they have been collected and where they are hosted. The OpenAIRE Graph is materialised via a set of autonomic, orchestrated workflows operating in a regimen of continuous data aggregation and integration. [1] +OpenAIRE materializes an open, participatory research graph (the OpenAIRE Research Graph) where products of the research life-cycle (e.g. scientific literature, research data, project, software) are semantically linked to each other and carry information about their access rights (i.e. if they are Open Access, Restricted, Embargoed, or Closed) and the sources from which they have been collected and where they are hosted. The OpenAIRE Research Graph is materialised via a set of autonomic, orchestrated workflows operating in a regimen of continuous data aggregation and integration. [1] ## What does OpenAIRE collect? -OpenAIRE aggregates metadata records describing objects of the research life-cycle from content providers compliant to the [OpenAIRE guidelines](https://guidelines.openaire.eu/) and from entity registries (i.e. data sources offering authoritative lists of entities, like [OpenDOAR](https://v2.sherpa.ac.uk/opendoar/), [re3data](https://www.re3data.org/), [DOAJ](https://doaj.org/), and various funder databases). After collection, metadata are transformed according to the OpenAIRE internal metadata model, which is used to generate the final OpenAIRE Graph, accessible from the [OpenAIRE EXPLORE portal](https://explore.openaire.eu) and the [APIs](https://graph.openaire.eu/develop/). +OpenAIRE aggregates metadata records describing objects of the research life-cycle from content providers compliant to the [OpenAIRE guidelines](https://guidelines.openaire.eu/) and from entity registries (i.e. data sources offering authoritative lists of entities, like [OpenDOAR](https://v2.sherpa.ac.uk/opendoar/), [re3data](https://www.re3data.org/), [DOAJ](https://doaj.org/), and various funder databases). After collection, metadata are transformed according to the OpenAIRE internal metadata model, which is used to generate the final OpenAIRE Research Graph, accessible from the [OpenAIRE EXPLORE portal](https://explore.openaire.eu) and the [APIs](https://graph.openaire.eu/develop/). The transformation process includes the application of cleaning functions whose goal is to ensure that values are harmonised according to a common format (e.g. dates as YYYY-MM-dd) and, whenever applicable, to a common controlled vocabulary. The controlled vocabularies used for cleansing are accessible at [api.openaire.eu/vocabularies](https://api.openaire.eu/vocabularies/). Each vocabulary features a set of controlled terms, each with one code, one label, and a set of synonyms. If a synonym is found as field value, the value is updated with the corresponding term. -In addition, the OpenAIRE Graph is extended with other relevant scholarly communication sources that need special handling, either because they do not strictly follow the OpenAIRE Guidelines or due to the vast amount of data of data they offer (e.g. DOIBoost, that merges Crossref, ORCID, Microsoft Academic Graph, and Unpaywall). +In addition, the OpenAIRE Research Graph is extended with other relevant scholarly communication sources that need special handling, either because they do not strictly follow the OpenAIRE Guidelines or due to the vast amount of data of data they offer (e.g. DOIBoost, that merges Crossref, ORCID, Microsoft Academic Graph, and Unpaywall).

- Aggregation + Aggregation

The OpenAIRE aggregation system collects information about objects of the research life-cycle compliant to the [OpenAIRE acquisition policy](https://www.openaire.eu/content-acquisition-policy) from [different types of data sources](https://explore.openaire.eu/search/find/dataproviders): @@ -30,7 +30,7 @@ Relationships between objects are collected from the data sources, but also auto ## What kind of data sources are in OpenAIRE? -Objects and relationships in the OpenAIRE Graph are extracted from information packages, i.e. metadata records, collected from data sources of the following kinds: +Objects and relationships in the OpenAIRE Research Graph are extracted from information packages, i.e. metadata records, collected from data sources of the following kinds: - *Literature, Institutional and thematic repositories*: Information systems where scientists upload the bibliographic metadata and full-texts of their articles, due to obligations from their organization or due to community practices (e.g. ArXiv, Europe PMC); - *Open Access Publishers and journals*: Information system of open access publishers or relative journals, which offer bibliographic metadata and PDFs of their published articles; diff --git a/docs/data-provision/aggregation/compatible-sources.md b/docs/data-provision/aggregation/compatible-sources.md new file mode 100644 index 0000000..48d831e --- /dev/null +++ b/docs/data-provision/aggregation/compatible-sources.md @@ -0,0 +1,11 @@ +--- +sidebar_position: 1 +--- + +# OpenAIRE compatible sources + +The OpenAIRE aggregator collects metadata records from content providers compliant to the OpenAIRE guidelines. + +The OpenAIRE Guidelines help repository managers expose publications, datasets and CRIS metadata via the OAI-PMH protocol in order to integrate with OpenAIRE infrastructure. + +You can find more information in https://guidelines.openaire.eu/en/latest/ \ No newline at end of file diff --git a/docs/data-provision/aggregation/datacite.md b/docs/data-provision/aggregation/non-compatible-sources/datacite.md similarity index 99% rename from docs/data-provision/aggregation/datacite.md rename to docs/data-provision/aggregation/non-compatible-sources/datacite.md index e1fd166..463ab5f 100644 --- a/docs/data-provision/aggregation/datacite.md +++ b/docs/data-provision/aggregation/non-compatible-sources/datacite.md @@ -33,7 +33,7 @@ The metadata collection process identifies the most recent record date available ### Entity Mapping -The table below describes the mapping from the XML baseline records to the OpenAIRE Graph dump format. +The table below describes the mapping from the XML baseline records to the OpenAIRE Research Graph dump format. | OpenAIRE Result field path | Datacite record JSON path | # Notes | |--------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/data-provision/aggregation/doiboost.md b/docs/data-provision/aggregation/non-compatible-sources/doiboost.md similarity index 99% rename from docs/data-provision/aggregation/doiboost.md rename to docs/data-provision/aggregation/non-compatible-sources/doiboost.md index e79e384..709e9e0 100644 --- a/docs/data-provision/aggregation/doiboost.md +++ b/docs/data-provision/aggregation/non-compatible-sources/doiboost.md @@ -68,7 +68,7 @@ Records in Crossref are ruled out according to the following criteria Records with `type=dataset` are mapped into OpenAIRE results of type dataset. All others are mapped as OpenAIRE results of type publication. -### Mapping Crossref properties into the OpenAIRE Graph +### Mapping Crossref properties into the OpenAIRE Research Graph Properties in OpenAIRE results are set based on the logic described in the following table: @@ -222,7 +222,7 @@ Miriam will modify the process to ensure that: * Only papers with DOI are considered * Since for the same DOI we have multiple version of item with different MAG PaperId, we only take one per DOI (the last one we process). We call this dataset `Papers_distinct` -When mapping MAG records to the OpenAIRE Graph, we consider the following MAG tables: +When mapping MAG records to the OpenAIRE Research Graph, we consider the following MAG tables: * `PaperAbstractsInvertedIndex`: for the paper abstracts * `Authors`: for the authors. The MAG data is pre-processed by grouping authors by PaperId * `Affiliations` and `PaperAuthorAffiliations`: to generate links between publications and organisations diff --git a/docs/data-provision/aggregation/ebi.md b/docs/data-provision/aggregation/non-compatible-sources/ebi.md similarity index 99% rename from docs/data-provision/aggregation/ebi.md rename to docs/data-provision/aggregation/non-compatible-sources/ebi.md index f5abf7a..7641ec2 100644 --- a/docs/data-provision/aggregation/ebi.md +++ b/docs/data-provision/aggregation/non-compatible-sources/ebi.md @@ -69,7 +69,7 @@ curl -s "https://www.ebi.ac.uk/europepmc/webservices/rest/MED/33024307/datalinks ``` ## Mapping -The table below describes the mapping from the EBI links records to the OpenAIRE Graph dump format. +The table below describes the mapping from the EBI links records to the OpenAIRE Research Graph dump format. We filter all the target links with pid type **ena**, **pdb** or **uniprot** For each target we construct a Bioentity with the following mapping diff --git a/docs/data-provision/aggregation/pubmed.md b/docs/data-provision/aggregation/non-compatible-sources/pubmed.md similarity index 99% rename from docs/data-provision/aggregation/pubmed.md rename to docs/data-provision/aggregation/non-compatible-sources/pubmed.md index a6df81d..8e5cec1 100644 --- a/docs/data-provision/aggregation/pubmed.md +++ b/docs/data-provision/aggregation/non-compatible-sources/pubmed.md @@ -12,7 +12,7 @@ Pubmed exposes an entry point FTP with all the updates for each one. [ftp baseli ## Entity Mapping -The table below describes the mapping from the XML baseline records to the OpenAIRE Graph dump format. +The table below describes the mapping from the XML baseline records to the OpenAIRE Research Graph dump format. | OpenAIRE Result field path | PubMed record field xpath | Notes | |--------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/data-provision/post-cleaning.md b/docs/data-provision/cleaning.md similarity index 68% rename from docs/data-provision/post-cleaning.md rename to docs/data-provision/cleaning.md index b223fb4..e920026 100644 --- a/docs/data-provision/post-cleaning.md +++ b/docs/data-provision/cleaning.md @@ -1,15 +1,10 @@ ---- -sidebar_position: 4 ---- +# Cleaning -# Post cleaning -At the very end of the processing pipeline, a step is dedicated to perform cleaning operations aimed at improving the overall quality of the data. -The output of this final cleansing step is the final version of the OpenAIRE Graph. - -## Vocabulary based cleaning + The aggregation processes run independently one from another and continuously. Each aggregation process, depending on the characteristics of the records exposed by the data source, makes use of one or more vocabularies to harmonise the values available in a given field. +In this page, we describe the *vocabulary-based cleaning* operation performed to harmonise the data of the different data sources. A vocabulary is a data structure that defines a list of terms, and for each term defines a list of synonyms: ```xml @@ -39,17 +34,4 @@ The content of the vocabularies can be accessed on [api.openaire.eu/vocabularies Given a value provided in the original records, the cleaning process looks for a synonym and, when found, resolves the corresponding term which is used in turn to build the cleaned record. Each aggregation process applies vocabularies according to their definitions in a given moment of time, however, it could be the case that a vocabulary changes after the aggregation of one data source has finished, thus the aggregated content does not reflect the current status of the controlled vocabularies. -In addition, the integration of ScholeXplorer and DOIBoost and some enrichment processes applied on the raw and on the de-duplicated graph may introduce values that do not comply with the current status of the OpenAIRE controlled vocabularies. For these reasons, we included a final step of cleansing at the end of the workflow materialisation. - -## Filtering - -Bibliographic records that do not meet minimal requirements for being part of the OpenAIRE Graph are eliminated during this phase. -Currently, the only criteria applied horizontally to the entire graph aims at excluding scientific results whose title is not meaningful for citation purposes. -Then, different criteria are applied in the pre-processing of specific sub-collections: - -* [Crossref filtering](/data-provision/aggregation/doiboost#crossref-filtering) - -## Country cleaning - -This phase is responsible for removing the country information from result records that match specific criteria. The need for this phase is driven by the fact that some datasources, although referred of national pertinence, they contain material that is not always related to the given country. - +In addition, the integration of ScholeXplorer and DOIBoost and some enrichment processes applied on the raw and on the de-duplicated graph may introduce values that do not comply with the current status of the OpenAIRE controlled vocabularies. For these reasons, we included a final step of cleansing at the end of the workflow materialisation. \ No newline at end of file diff --git a/docs/data-provision/data-provision.md b/docs/data-provision/data-provision.md index ea103c3..27114ec 100644 --- a/docs/data-provision/data-provision.md +++ b/docs/data-provision/data-provision.md @@ -1,7 +1,8 @@ -# Data provision +# Graph production workflow OpenAIRE collects metadata records from more than 70K scholarly communication sources from all over the world, including Open Access institutional repositories, data archives, journals. All the metadata records (i.e. descriptions of research products) are put together in a data lake, together with records from Crossref, Unpaywall, ORCID, Grid.ac, and information about projects provided by national and international funders. Dedicated inference algorithms applied to metadata and to the full-texts of Open Access publications enrich the content of the data lake with links between research results and projects, author affiliations, subject classification, links to entries from domain-specific databases. Duplicated organisations and results are identified and merged together to obtain an open, trusted, public resource enabling explorations of the scholarly communication landscape like never before.

- Data provision + Data provision

+ diff --git a/docs/data-provision/enrichment/bulk-tagging.md b/docs/data-provision/deduction-and-propagation/bulk-tagging.md similarity index 68% rename from docs/data-provision/enrichment/bulk-tagging.md rename to docs/data-provision/deduction-and-propagation/bulk-tagging.md index 3f1f4ac..f52188e 100644 --- a/docs/data-provision/enrichment/bulk-tagging.md +++ b/docs/data-provision/deduction-and-propagation/bulk-tagging.md @@ -1,5 +1,4 @@ - -# Bulk Tagging/Deduction +# Deduction The Deduction process (also known as “bulk tagging”) enriches each record with new information that can be derived from the existing property values. @@ -9,13 +8,13 @@ As of November 2022, three procedures are in place to relate a research product * subjects: it is possible to specify a list of subjects that are relevant for the RC/RI. Every time one of the subjects is found among the subjects of a result, the result is linked to the RC/RI.

- Bulktagging Subject + Bulktagging Subject

* data sources: it is possible to list a set of data sources relevant for the RC/RI. All the results collected from these data sources will be linked to the RC/RI

- Bulktagging Data source + Bulktagging Data source

When only some results collected from a datasource are relevant for the RC/RI, it is possible to specify a set of selection constraints (SC) that have to be verified before linking the result to the @@ -24,14 +23,14 @@ while the set of condition can be among V={contains, equals, not_contain A possible selection criteria can be: “All the products whose contributor contains DARIAH “

- Bulktagging Data source + Bulktagging Data source

* Zenodo community: it is possible to list a set of Zenodo communities relevant for the RC/RI. All the products collected from the listed Zenodo communities are linked to the RC/RI

- Bulktagging Zenodo Community + Bulktagging Zenodo Community

diff --git a/docs/data-provision/enrichment/propagation.md b/docs/data-provision/deduction-and-propagation/propagation.md similarity index 66% rename from docs/data-provision/enrichment/propagation.md rename to docs/data-provision/deduction-and-propagation/propagation.md index 604dafa..79f0902 100644 --- a/docs/data-provision/enrichment/propagation.md +++ b/docs/data-provision/deduction-and-propagation/propagation.md @@ -7,38 +7,39 @@ As of November 2022, the following procedures are in place: * Country propagation: updates the property “country” of a results. This happens when the result is collected from an institutional datasource or when the datasource hosting the result is inserted in a whitelist. For all the results whose hosting datasource verifies one of the conditions above, the country of the organization providing the datasource is added to the country of the result: e.g. publication collected from an institutional repository maintained by an italian university will be enriched with the property “country = IT”.

- Country Propagation + Country Propagation

* Project propagation: adds a "isProducedBy" relationship (and its inverse) between a Project P and Result R1, if R1 has a strong semantic relationship with another Result R2 and P produces R2: e.g. publication linked to project P “is supplemented by” a dataset D. Dataset D will get the link to project P. The relationships considered for this procedure are “isSupplementedBy” and “isSupplementTo”.

- Project Propagation + Project Propagation

* Result to RC/RI through organization propagation. The manager of the RC/RI can specify a set of organizations whose product are relevant for the community. Each result having such a relation of affiliation with at least one organization relevant for the RC/RI will be linked to it.

- Result to community through organization propagation + Result to community through organization propagation

* Result to RC/RI through semantic relation: extends the set of products linked to a RC/RI by exploiting strong semantic relationships between the results; e.g. if a result R1 is associated to the community C and is supplemented by a result R2 then the result R2 will be linked to the community. The relationships considered for this procedure are “isSupplementedBy” and “supplements”.

- Result to community through semantic relation propagation + Result to community through semantic relation propagation

* ORCID identifiers to result through semantic relation. This propagation enriches the results by adding ORCID identifiers to authors. The added ORCID will be marked as "potential" since they have been inserted through propagation. The process considers the set of overlapping authors between results (R1 and R2) linked with a strong semantic relationship (IsSupplementedBy, IsSupplementTo). For each author A in the overlapping set, if R1 provides the ORCID value for A and R2 does not, then the author A in R2 will be enriched with the information of the ORCID found in R1.

- Orcid propation through semantic relation + Orcid propation through semantic relation

* affiliation to organization through institutional repository. This propagation adds one "hasAuthorInstitution" relationship (and its inverse) between a Result R and Organization O, if R was collected from a datasource D with type institutional repository, and D was provided by O.

- Affiliation propagation through institutional repository + Affiliation propagation through institutional repository

* affiliation to organization through semantic relation. This propagation adds one "hasAuthorInstitution" relationship (and its inverse) between a @@ -46,9 +47,9 @@ Result R and an Organization O, if R has an affiliation relation with an organization O1 that is in relation "isChildOf" with O.

- Affiliation propagation through semantic relation + Affiliation propagation through semantic relation

The algorithm exploits only the organization leaves that are in a "IsChildOf" relation with another organization. So far one single step is done

- propagation strategy + propagation strategy

\ No newline at end of file diff --git a/docs/data-provision/deduplication/deduplication.md b/docs/data-provision/deduplication/deduplication.md index 53d6906..8fb118a 100644 --- a/docs/data-provision/deduplication/deduplication.md +++ b/docs/data-provision/deduplication/deduplication.md @@ -10,7 +10,7 @@ The deduplication process can be divided into three different phases: * Duplicates grouping (transitive closure)

- Deduplication Workflow + Deduplication Workflow

### Candidate identification (clustering) diff --git a/docs/data-provision/deduplication/organizations.md b/docs/data-provision/deduplication/organizations.md index a0b029b..488489f 100644 --- a/docs/data-provision/deduplication/organizations.md +++ b/docs/data-provision/deduplication/organizations.md @@ -14,7 +14,7 @@ The data curation activity is twofold, on one end pivots around the disambiguati Duplicates among organizations are therefore managed through three different stages: * *Creation of Suggestions*: executes an automatic workflow that performs the deduplication and prepare new suggestions for the curators to be processed; * *Curation*: manual editing of the organization records performed by the data curators; - * *Creation of Representative Organizations*: executes an automatic workflow that creates curated organizations and exposes them on the OpenAIRE Graph by using the curators' feedback from the OpenOrgs underlying database. + * *Creation of Representative Organizations*: executes an automatic workflow that creates curated organizations and exposes them on the OpenAIRE Research Graph by using the curators' feedback from the OpenOrgs underlying database. The next sections describe the above mentioned stages. @@ -43,7 +43,7 @@ The comparison goes through the following decision tree: 5. *legalname check*: comparison of the normalized `legalnames` with the `Jaro-Winkler` distance to determine if it is higher than `0.9`. If so, a similarity relation is drawn. Otherwise, no similarity relation is drawn.

- Organization Decision Tree + Organization Decision Tree

[//]: # (Link to the image: https://docs.google.com/drawings/d/1YKInGGtHu09QG4pT2gRLEum4LxU82d4nKkvGNvRQmrg/edit?usp=sharing) @@ -61,7 +61,7 @@ Note that if a curator does not provide a feedback on a similarity relation sugg ### Creation of Representative Organizations -This stage executes an automatic workflow that faces the *duplicates grouping* stage to create representative organizations and to update them on the OpenAIRE Graph. Such organizations are obtained via transitive closure and the relations used comes from the curators' feedback gathered on the OpenOrgs underlying Database. +This stage executes an automatic workflow that faces the *duplicates grouping* stage to create representative organizations and to update them on the OpenAIRE Research Graph. Such organizations are obtained via transitive closure and the relations used comes from the curators' feedback gathered on the OpenOrgs underlying Database. #### Duplicates grouping (transitive closure) diff --git a/docs/data-provision/deduplication/research-products.md b/docs/data-provision/deduplication/research-products.md index 3000e24..4d68c25 100644 --- a/docs/data-provision/deduplication/research-products.md +++ b/docs/data-provision/deduplication/research-products.md @@ -34,7 +34,7 @@ The comparison goes through different stages: 5. *strong check*: comparison composed by three substages involving the (i) comparison of the author list sizes and the version of the record to determine if they are coherent, (ii) comparison of the record titles with the Levenshtein distance to determine if it is higher than 0.99, (iii) "smart" comparison of the author lists to check if common authors are more than 60%.

- Publications Decision Tree + Publications Decision Tree

[//]: # (Link to the image: https://docs.google.com/drawings/d/19SIilTp1vukw6STMZuPMdc0pv0ODYCiOxP7OU3iPWK8/edit?usp=sharing) @@ -47,7 +47,7 @@ The comparison goes through different stages: 3. *strong check*: comparison of the record titles with Levenshtein distance. If the measure is above 0.99, then the similarity relation is drawn

- Software Decision Tree + Software Decision Tree

[//]: # (Link to the image: https://docs.google.com/drawings/d/19gd1-GTOEEo6awMObGRkYFhpAlO_38mfbDFFX0HAkuo/edit?usp=sharing) @@ -57,7 +57,7 @@ For each pair of datasets or other types of research products in a cluster the s The decision tree is almost identical to the publication decision tree, with the only exception of the *instance type check* stage. Since such type of record does not have a relatable instance type, the check is not performed and the decision tree node is skipped.

- Dataset and Other types of research products Decision Tree + Dataset and Other types of research products Decision Tree

[//]: # (Link to the image: https://docs.google.com/drawings/d/1uBa7Bw2KwBRDUYIfyRr_Keol7UOeyvMNN7MPXYLg4qw/edit?usp=sharing) diff --git a/docs/data-provision/enrichment/_category_.json b/docs/data-provision/enrichment-by-mining/_category_.json similarity index 100% rename from docs/data-provision/enrichment/_category_.json rename to docs/data-provision/enrichment-by-mining/_category_.json diff --git a/docs/data-provision/enrichment/acks.md b/docs/data-provision/enrichment-by-mining/acks.md similarity index 79% rename from docs/data-provision/enrichment/acks.md rename to docs/data-provision/enrichment-by-mining/acks.md index 903e0b4..eed8cb1 100644 --- a/docs/data-provision/enrichment/acks.md +++ b/docs/data-provision/enrichment-by-mining/acks.md @@ -4,8 +4,7 @@ sidebar_position: 3 # Extraction of acknowledged concepts -***Short description:*** -Scans the plaintexts of publications for acknowledged concepts, including grant identifiers (projects) of funders, accession numbers of bioetities, EPO patent mentions, as well as custom concepts that can link research objects to specific research communities and initiatives in OpenAIRE. +***Short description:*** Scans the plaintexts of publications for acknowledged concepts, including grant identifiers (projects) of funders, accession numbers of bioetities, EPO patent mentions, as well as custom concepts that can link research objects to specific research communities and initiatives in OpenAIRE. ***Algorithmic details:*** The algorithm processes the publication's fulltext and extracts references to acknowledged concepts. It applies pattern matching and string join between the fulltext and a target database which contains the title, the acronym and the identifier of the searched concept. diff --git a/docs/data-provision/enrichment/affiliation_matching.md b/docs/data-provision/enrichment-by-mining/affiliation_matching.md similarity index 96% rename from docs/data-provision/enrichment/affiliation_matching.md rename to docs/data-provision/enrichment-by-mining/affiliation_matching.md index fb2ce11..539e51b 100644 --- a/docs/data-provision/enrichment/affiliation_matching.md +++ b/docs/data-provision/enrichment-by-mining/affiliation_matching.md @@ -4,8 +4,7 @@ sidebar_position: 1 # Affiliation matching -***Short description:*** -The goal of the affiliation matching module is to match affiliations extracted from the pdf and xml documents with organizations from the OpenAIRE organization database. +***Short description:*** The goal of the affiliation matching module is to match affiliations extracted from the pdf and xml documents with organizations from the OpenAIRE organization database. ***Algorithmic details:*** diff --git a/docs/data-provision/enrichment/citation_matching.md b/docs/data-provision/enrichment-by-mining/citation_matching.md similarity index 87% rename from docs/data-provision/enrichment/citation_matching.md rename to docs/data-provision/enrichment-by-mining/citation_matching.md index 7cf56db..01fcf37 100644 --- a/docs/data-provision/enrichment/citation_matching.md +++ b/docs/data-provision/enrichment-by-mining/citation_matching.md @@ -1,7 +1,6 @@ # Citation matching -***Short description:*** -During a citation matching task, bibliographic entries are linked to the documents that they reference. The citation matching module - one of the modules of the Information Inference Service (IIS) - receives as an input a list of documents accompanied by their metadata and bibliography. Among them, it discovers links described above and returns them as a list. In this document we shall evaluate if the module has been properly integrated with the whole +***Short description:*** During a citation matching task, bibliographic entries are linked to the documents that they reference. The citation matching module - one of the modules of the Information Inference Service (IIS) - receives as an input a list of documents accompanied by their metadata and bibliography. Among them, it discovers links described above and returns them as a list. In this document we shall evaluate if the module has been properly integrated with the whole system and assess the accuracy of the algorithm used. It is worth mentioning that the implemented algorithm has been described in detail in arXiv:1303.6906 [cs.IR]1. However, in the referenced paper the algorithm was tested on small datasets, but here we will focus on larger datasets, which are expected to be analysed by the system in the production environment. ***Algorithmic details:*** diff --git a/docs/data-provision/enrichment/cites.md b/docs/data-provision/enrichment-by-mining/cites.md similarity index 90% rename from docs/data-provision/enrichment/cites.md rename to docs/data-provision/enrichment-by-mining/cites.md index 9a45946..f7d8158 100644 --- a/docs/data-provision/enrichment/cites.md +++ b/docs/data-provision/enrichment-by-mining/cites.md @@ -4,8 +4,7 @@ sidebar_position: 4 # Extraction of cited concepts -***Short description:*** -Scans the plaintexts of publications for cited concepts, currently for references to datasets and software URIs. +***Short description:*** Scans the plaintexts of publications for cited concepts, currently for references to datasets and software URIs. ***Algorithmic details:*** The algorithm extracts citations to specific datasets and software. It extracts the citation section of a publication's fulltext and applies string matching against a target database which includes an inverted index with dataset/software titles, urls and other metadata. diff --git a/docs/data-provision/enrichment/classifies.md b/docs/data-provision/enrichment-by-mining/classifies.md similarity index 100% rename from docs/data-provision/enrichment/classifies.md rename to docs/data-provision/enrichment-by-mining/classifies.md diff --git a/docs/data-provision/enrichment/documents_similarity.md b/docs/data-provision/enrichment-by-mining/documents_similarity.md similarity index 90% rename from docs/data-provision/enrichment/documents_similarity.md rename to docs/data-provision/enrichment-by-mining/documents_similarity.md index c67700c..1e02b95 100644 --- a/docs/data-provision/enrichment/documents_similarity.md +++ b/docs/data-provision/enrichment-by-mining/documents_similarity.md @@ -1,7 +1,6 @@ # Documents similarity -***Short description:*** -Document similarity module is responsible for finding similar documents among the ones available in the OpenAIRE Information Space. It produces "similarity" links between the documents stored in the OpenAIRE Information Space. Each link has a similarity score from [0,1] range assigned; it is expected that the higher the score, the more similar are the documents with respect to their content. +***Short description:*** Document similarity module is responsible for finding similar documents among the ones available in the OpenAIRE Information Space. It produces "similarity" links between the documents stored in the OpenAIRE Information Space. Each link has a similarity score from [0,1] range assigned; it is expected that the higher the score, the more similar are the documents with respect to their content. ***Algorithmic details:*** The similarity between two documents is expressed as the similarity between weights of their common terms (i.e., words being reduced to their root form) within a context of all terms from the first and the second document. In this approach, the computation can be divided into three consecutive steps: diff --git a/docs/data-provision/enrichment/img.png b/docs/data-provision/enrichment-by-mining/img.png similarity index 100% rename from docs/data-provision/enrichment/img.png rename to docs/data-provision/enrichment-by-mining/img.png diff --git a/docs/data-provision/enrichment/metadata_extraction.md b/docs/data-provision/enrichment-by-mining/metadata_extraction.md similarity index 94% rename from docs/data-provision/enrichment/metadata_extraction.md rename to docs/data-provision/enrichment-by-mining/metadata_extraction.md index ef930bd..4ade667 100644 --- a/docs/data-provision/enrichment/metadata_extraction.md +++ b/docs/data-provision/enrichment-by-mining/metadata_extraction.md @@ -1,7 +1,6 @@ # Metadata extraction -***Short description:*** -Metadata Extraction algorithm is responsible for plaintext and metadata extraction out of the PDF documents. It based on [CERMINE](http://cermine.ceon.pl/about.html) project. +***Short description:*** Metadata Extraction algorithm is responsible for plaintext and metadata extraction out of the PDF documents. It based on [CERMINE](http://cermine.ceon.pl/about.html) project. CERMINE is a comprehensive open source system for extracting metadata and content from scientific articles in born-digital form. The system is able to process documents in PDF format and extracts: diff --git a/docs/data-provision/finalisation.md b/docs/data-provision/finalisation.md new file mode 100644 index 0000000..92a875c --- /dev/null +++ b/docs/data-provision/finalisation.md @@ -0,0 +1,18 @@ +# Finalisation + +At the very end of the graph production workflow, a step is dedicated to perform certain finalisation operations, that we describe in this page, +aiming to improve the overall quality of the data. +The output of this final step is the final version of the OpenAIRE Research Graph. + +## Filtering + +Bibliographic records that do not meet minimal requirements for being part of the OpenAIRE Research Graph are eliminated during this phase. +Currently, the only criteria applied horizontally to the entire graph aims at excluding scientific results whose title is not meaningful for citation purposes. +Then, different criteria are applied in the pre-processing of specific sub-collections: + +* [Crossref filtering](/data-provision/aggregation/non-compatible-sources/doiboost#crossref-filtering) + +## Country cleaning + +This phase is responsible for removing the country information from result records that match specific criteria. The need for this phase is driven by the fact that some datasources, although referred of national pertinence, they contain material that is not always related to the given country. + diff --git a/docs/data-provision/indexing.md b/docs/data-provision/indexing.md index f5b2e21..579c230 100644 --- a/docs/data-provision/indexing.md +++ b/docs/data-provision/indexing.md @@ -1,20 +1,16 @@ ---- -sidebar_position: 5 ---- - # Indexing -The final version of the OpenAIRE Graph is indexed on a Solr server that is used by the OpenAIRE portals (EXPLORE, CONNECT, PROVIDE) and APIs, the latter adopted by several third-party applications and organizations, such as: +The final version of the OpenAIRE Research Graph is indexed on a Solr server that is used by the OpenAIRE portals ([EXPLORE](https://explore.openaire.eu), [CONNECT](https://connect.openaire.eu), [PROVIDE](https://provide.openaire.eu)) and APIs, the latter adopted by several third-party applications and organizations, such as: * The OpenAIRE Graph APIs and Portals will offer to the EOSC (European Open Science Cloud) an Open Science Resource Catalogue, keeping an up to date map of all research results (publications, datasets, software), services, organizations, projects, funders in Europe and beyond. * DSpace & EPrints repositories can install the OpenAIRE plugin to expose OpenAIRE compliant metadata records via their OAI-PMH endpoint and offer to researchers the possibility to link their depositions to the funding project, by selecting it from the list of project provided by OpenAIRE. -* EC participant portal (Sygma - System for Grant Management) uses the OpenAIRE API in the “Continuous Reporting” section. Sygma automatically fetches from the OpenAIRE Search API the list of publications and datasets in the OpenAIRE Graph that are linked to the project. The user can select the research products from the list and easily compile the continuous reporting data of the project. +* EC participant portal (Sygma - System for Grant Management) uses the OpenAIRE API in the “Continuous Reporting” section. Sygma automatically fetches from the OpenAIRE Search API the list of publications and datasets in the OpenAIRE Research Graph that are linked to the project. The user can select the research products from the list and easily compile the continuous reporting data of the project. * ScholExplorer is used by different players of the scholarly communication ecosystem. For example, [Elsevier](https://www.elsevier.com/authors/tools-and-resources/research-data/data-base-linking) uses its API to make the links between publications and datasets automatically appear on ScienceDirect. -ScholExplorer indexes the links among the four major types of research products (API v3) available in the OpenAIRE Graph and makes them available through an HTTP API that allows +ScholExplorer indexes the links among the four major types of research products (API v3) available in the OpenAIRE Research Graph and makes them available through an HTTP API that allows to search them by the following criteria: * Links whose source object has a given PID or PID type; * Links whose source object has been published by a given data source ("data source as publisher"); diff --git a/docs/data-provision/enrichment/impact-scores.md b/docs/data-provision/indicators-ingestion/impact-scores.md similarity index 97% rename from docs/data-provision/enrichment/impact-scores.md rename to docs/data-provision/indicators-ingestion/impact-scores.md index d3db939..b5d9bcd 100644 --- a/docs/data-provision/enrichment/impact-scores.md +++ b/docs/data-provision/indicators-ingestion/impact-scores.md @@ -1,11 +1,7 @@ ---- -sidebar_position: 2 ---- - # Impact indicators -This page summarises all calculated impact indicators, which are included into the [measure](/data-model/entities/other#measure) property. -It should be noted that the impact indicators are being calculated both on the level of the research output as well on the level of distinct DOIs. +This page summarises all calculated impact indicators, which are included in the [impactMeasures](/data-model/entities/other#impactmeasures) property which is part of the [indicators](/data-model/entities/result#indicators) property of the result. +It should be noted that the impact indicators are being calculated on the level of the research output. Below we explain their main intuition, the way they are calculated, and their most important limitations, in an attempt help avoiding common pitfalls and misuses. diff --git a/docs/data-provision/indicators-ingestion/usage-counts.md b/docs/data-provision/indicators-ingestion/usage-counts.md new file mode 100644 index 0000000..fd98a43 --- /dev/null +++ b/docs/data-provision/indicators-ingestion/usage-counts.md @@ -0,0 +1,7 @@ +# Usage Statistics Indicators + +Usage Statistics indicators for research products, like publications, datasets,etc., are an important complement to other (traditional and alternative) bibliometric indicators to provide a comprehensive and recent view of the impact of such resources but also about their authors, institutions and the platforms themselves. They are taking into account different levels of information: the usage of data sources, the usage of individual items in the context of their resource type and the usage of individual web resources or files. + +Usage Statistics Indicators are built by the OpenAIRE's UsageCounts Service. The service collects usage data and consolidated usage statistics reports respectively, from its distributed network of data providers (repositories, e-journals, CRIS) by utilizing open standards and protocols and delivers reliable, consolidated and comparable usage metrics like counts of item downloads and metadata views conformant to COUNTER Code of Practice. + +You can find more information about the UsageCounts service [here](https://usagecounts.openaire.eu/). \ No newline at end of file diff --git a/docs/data-provision/merge-by-id.md b/docs/data-provision/merge-by-id.md new file mode 100644 index 0000000..199500f --- /dev/null +++ b/docs/data-provision/merge-by-id.md @@ -0,0 +1,28 @@ +# Merge by id + +In the metadata aggregation system it is common to find the same record provided by +different datasources and, sometimes, even inside the same datasource (especially in +case of aggregators). As the harmonisation processes are performed per datasource +contents, the relative records are the output of different mapping implementations. +This approach has the advantage to be deeply customisable to catch datasource specific +aspects, but it leaves room for inconsistencies when evaluating the different mappings +across the various datasources. + +This phase is therefore responsible to compensate for such inconsistencies and performs +a global grouping of every record available in the graph: + +- entities are grouped by [`id`](../data-model/entities/result#id) +- relations are grouped by [`source`, `target`, `reltype`](../data-model/relationships#the-relationship-object) + +This ensures that the same record, possibly assigned to different types by different +mappings, appears only once in the graph and under a single typing. In case of clashing +identifiers, the properties are merged (including the provencance information), considering +the following precedence order for the result typing: + +``` +publication > dataset > software > other +``` + +The same holds for relationships, as the same (e.g.) DOI-to-DOI citation relation could +be aggregated from multiple sources, this grouping phase would collapse all the different +duplicates onto a single relation that would however include all the individual provenances. diff --git a/docs/data-provision/stats.md b/docs/data-provision/stats.md new file mode 100644 index 0000000..9d0de86 --- /dev/null +++ b/docs/data-provision/stats.md @@ -0,0 +1,12 @@ +# Stats analysis + +The OpenAIRE Graph is also processed by a pipeline for extracting the statistics +and producing the charts for funders, research initiative, research infrastructures, +and policymakers available on [MONITOR](https://monitor.openaire.eu). + +Based on the information available on the graph, OpenAIRE provides a set of +indicators for monitoring the funding and research impact and the uptake of +Open Science publishing practices, such as Open Access publishing of publications +and datasets, availability of interlinks between research products, availability +of post-print versions in institutional or thematic Open Access repositories, etc. + diff --git a/docs/downloads/alternative-model/context.md b/docs/downloads/alternative-model/context.md index 2684d85..e08ea69 100644 --- a/docs/downloads/alternative-model/context.md +++ b/docs/downloads/alternative-model/context.md @@ -29,7 +29,7 @@ Label of the RI/RC. ``` ### provenance -_Type: [Provenance](../../../data-model/entities/other#provenance-2) • Cardinality: MANY_ +_Type: [Provenance](/data-model/entities/other#provenance-2) • Cardinality: MANY_ Why this result is associated to the RI/RC. diff --git a/docs/downloads/alternative-model/extendedresult.md b/docs/downloads/alternative-model/extendedresult.md index d9e9b0c..2284479 100644 --- a/docs/downloads/alternative-model/extendedresult.md +++ b/docs/downloads/alternative-model/extendedresult.md @@ -8,7 +8,7 @@ sidebar_position: 1 # Extended Result -It is a subclass of [Result](../../../data-model/entities/result) extended with information regarding projects (and funders), research communities/infrastructure and related data sources. +It is a subclass of [Result](/data-model/entities/result) extended with information regarding projects (and funders), research communities/infrastructure and related data sources. diff --git a/docs/downloads/beginners-kit.md b/docs/downloads/beginners-kit.md index 5bb8548..9555ee4 100644 --- a/docs/downloads/beginners-kit.md +++ b/docs/downloads/beginners-kit.md @@ -2,5 +2,11 @@ sidebar_position: 2 --- -# Beginners kit +# Beginner's kit +The large size of the OpenAIRE Research Graph is a major impediment for beginners to familiarise with the underlying data model and explore its contents. +Working with the Graph in its full size typically requires access to a huge distributed computing infrastructure which cannot be easily accessible to everyone. +[The OpenAIRE Beginner’s Kit]( https://doi.org/10.5281/zenodo.7490192) aims to address this issue. It consists of two components: + +* A subset of the Graph composed of the research products published between 2022-06-29 and 2022-12-29, all the entities connected to them and the respective relationships. +* A Zeppelin notebook that demonstrates how you can use PySpark to analyse the Graph and get answers to some interesting research questions. \ No newline at end of file diff --git a/docs/downloads/full-graph.md b/docs/downloads/full-graph.md index 97ddbfa..82409a9 100644 --- a/docs/downloads/full-graph.md +++ b/docs/downloads/full-graph.md @@ -10,18 +10,18 @@ You can download the full OpenAIRE Research Graph Dump as well as its schema fro Schema: https://doi.org/10.5281/zenodo.4238938 -The schema used to dump this dataset mirrors the one described in the [Data Model](../data-model). +The schema used to dump this dataset mirrors the one described in the [Data Model](/data-model). This dataset is licensed under a Creative Commons Attribution 4.0 International License. It is composed of several files so that you can download the parts you are interested into. The files are named after the entity they store (i.e. publication, dataset). Each file is at most 10GB and it is a tar archive containing gz files, each with one json per line. ## How to acknowledge this work -Open Science services are open and transparent and survive thanks to your active support and to the visibility and reward they gather. If you use one of the [OpenAIRE Graph dumps](https://doi.org/10.5281/zenodo.3516917) for your research, please provide a proper citation following the recommendation that you find on the dump's Zenodo page or as provided below. +Open Science services are open and transparent and survive thanks to your active support and to the visibility and reward they gather. If you use one of the [OpenAIRE Research Graph dumps](https://doi.org/10.5281/zenodo.3516917) for your research, please provide a proper citation following the recommendation that you find on the dump's Zenodo page or as provided below. :::note How to cite -Manghi P., Atzori C., Bardi A., Baglioni M., Schirrwagen J., Dimitropoulos H., La Bruzzo S., Foufoulas I., Mannocci A., Horst M., Czerniak A., Kiatropoulou K., Kokogiannaki A., De Bonis M., Artini M., Ottonello E., Lempesis A., Ioannidis A., Manola N., Principe P. (2022). "OpenAIRE Research Graph Dump", *Dataset*, Zenodo. [doi:10.5281/zenodo.3516917](https://doi.org/10.5281/zenodo.3516917) ([BibTex](/bibtex/OpenAIRE_Research_Graph_dump.bib)) +Manghi P., Atzori C., Bardi A., Baglioni M., Schirrwagen J., Dimitropoulos H., La Bruzzo S., Foufoulas I., Mannocci A., Horst M., Czerniak A., Iatropoulou K., Kokogiannaki A., De Bonis M., Artini M., Lempesis A., Ioannidis A., Manola N., Principe P., Vergoulis T., Chatzopoulos S., Pierrakos D. (2022). "OpenAIRE Research Graph Dump", *Dataset*, Zenodo. [doi:10.5281/zenodo.3516917](https://doi.org/10.5281/zenodo.3516917) ([BibTex](/bibtex/OpenAIRE_Research_Graph_dump.bib)) ::: Please also consider citing [other relevant research products](/publications#relevant-research-products) that can be of interest. @@ -31,18 +31,18 @@ Also consider adding one of the following badges to your service with the approp
- - Openaire badge + + Openaire badge
- - Openaire badge + + Openaire badge
- - Openaire badge + + Openaire badge
diff --git a/docs/downloads/subgraphs.md b/docs/downloads/subgraphs.md index cf5aeb4..6636536 100644 --- a/docs/downloads/subgraphs.md +++ b/docs/downloads/subgraphs.md @@ -10,9 +10,9 @@ This page lists all alternative dumps currently available. ## The OpenAIRE COVID-19 dump - Dataset: https://doi.org/10.5281/zenodo.6638745 + Dataset: https://doi.org/10.5281/zenodo.3980490 - Schema: https://doi.org/10.5281/zenodo.6372977 + Schema: https://doi.org/10.5281/zenodo.3974225 This dataset is licensed under a Creative Commons Attribution 4.0 International License. It contains metadata records of publications, research data, software and projects on the topic of Corona Virus and COVID-19. @@ -21,31 +21,31 @@ The dump consists of a tar archive containing gzip files with one json per line. ## The dump of funded products - Dataset: https://doi.org/10.5281/zenodo.6634431 + Dataset: https://doi.org/10.5281/zenodo.4559725 - Schema: https://doi.org/10.5281/zenodo.6372977 + Schema: https://doi.org/10.5281/zenodo.3974225 This dataset is licensed under a Creative Commons Attribution 4.0 International License. It contains metadata records of research products (research literature, data, software, other types of research products) with funding -information available in the OpenAIRE Graph. Records are grouped by funder in a dedicated archive file. Each tar archive contains +information available in the OpenAIRE Research Graph. Records are grouped by funder in a dedicated archive file. Each tar archive contains gzip files, each with one json record per line. The model of this dump differs from the one of the whole graph. Please refer [here](#alternative-sub-graph-data-model) for details on the data model of this dump. ## The dump of delta projects - Dataset: https://doi.org/10.5281/zenodo.7119633 + Dataset: https://doi.org/10.5281/zenodo.6419021 Schema: https://doi.org/10.5281/zenodo.4238938 This dataset is licensed under a Creative Commons Attribution 4.0 International License. - It contains the metadata records of projects collected by OpenAIRE in a given time frame. Usually one deposition of collected projects is done for each release of the OpenAIRE Graph + It contains the metadata records of projects collected by OpenAIRE in a given time frame. Usually one deposition of collected projects is done for each release of the OpenAIRE Research Graph The deposition is one tar archive containing gzip files, each with one json record per line. ## The dumps about research communities, initiatives and infrastructures - Dataset: https://doi.org/10.5281/zenodo.6638478 + Dataset: https://doi.org/10.5281/zenodo.3974604 - Schema: https://doi.org/10.5281/zenodo.6372977 + Schema: https://doi.org/10.5281/zenodo.3974225 This dataset is licensed under a Creative Commons Attribution 4.0 International License. The dataset contains one file per community/initiative/infrastructure collaborating with OpenAIRE. Check out also their community gateways on @@ -57,7 +57,7 @@ Please refer [here](#alternative-sub-graph-data-model) for details on the data m ## Alternative sub-graph data model - It should be noted that the dumps for research communities, infrastructures, and products related to projects do not strictly follow the main data model of the OpenAIRE Graph. In particular, they differ in the following: + It should be noted that the dumps for research communities, infrastructures, and products related to projects do not strictly follow the main data model of the OpenAIRE Research Graph. In particular, they differ in the following: * only research products are dumped (no relations, and entities different from results) * the dumped results are extended with information that can be inferred in the whole dump namely: diff --git a/docs/intro.md b/docs/intro.md index feaaca3..95b1b40 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -6,12 +6,12 @@ sidebar_position: 1 # Overview -The OpenAIRE Graph is one of the largest open scholarly record collections worldwide, key in fostering Open Science and establishing its practices in the daily research activities. +The OpenAIRE Research Graph is one of the largest open scholarly record collections worldwide, key in fostering Open Science and establishing its practices in the daily research activities. Conceived as a public and transparent good, populated out of data sources trusted by scientists, the Graph aims at bringing discovery, monitoring, and assessment of science back in the hands of the scientific community. Imagine a vast collection of research products all linked together, contextualised and openly available. For the past years OpenAIRE has been working to gather this valuable record. It is a massive collection of metadata and links between scientific products such as articles, datasets, software, and other research products, entities like organisations, funders, funding streams, projects, communities, and data sources. -As of today, the OpenAIRE Graph aggregates hundreds of millions of metadata records (and links among them) from multiple data sources trusted by scientists, including: +As of today, the OpenAIRE Research Graph aggregates hundreds of millions of metadata records (and links among them) from multiple data sources trusted by scientists, including: * Repositories registered in OpenDOAR or re3data.org (soon FAIRSharing.org) * Open Access journals registered in DOAJ diff --git a/docs/license.md b/docs/license.md index 86ddff5..e9d730c 100644 --- a/docs/license.md +++ b/docs/license.md @@ -4,5 +4,5 @@ sidebar_position: 11 # License -OpenAIRE Graph is available for download and re-use as CC-BY (due to some input sources whose license is CC-BY). Parts of the graphs can be re-used as CC-0. +OpenAIRE Research Graph is available for download and re-use as CC-BY (due to some input sources whose license is CC-BY). Parts of the graphs can be re-used as CC-0. diff --git a/docs/publications.md b/docs/publications.md index 974a69b..1874590 100644 --- a/docs/publications.md +++ b/docs/publications.md @@ -4,11 +4,11 @@ sidebar_position: 7 # Relevant publications -Open Science services are open and transparent and survive thanks to your active support and to the visibility and reward they gather. If you use one of the [OpenAIRE Graph dumps](https://doi.org/10.5281/zenodo.3516917) for your research, please provide a proper citation following the recommendation that you find on the dump's Zenodo page or as provided below. +Open Science services are open and transparent and survive thanks to your active support and to the visibility and reward they gather. If you use one of the [OpenAIRE Research Graph dumps](https://doi.org/10.5281/zenodo.3516917) for your research, please provide a proper citation following the recommendation that you find on the dump's Zenodo page or as provided below. :::note How to cite -Manghi P., Atzori C., Bardi A., Baglioni M., Schirrwagen J., Dimitropoulos H., La Bruzzo S., Foufoulas I., Mannocci A., Horst M., Czerniak A., Kiatropoulou K., Kokogiannaki A., De Bonis M., Artini M., Ottonello E., Lempesis A., Ioannidis A., Manola N., Principe P. (2022). "OpenAIRE Research Graph Dump", *Dataset*, Zenodo. [doi:10.5281/zenodo.3516917](https://doi.org/10.5281/zenodo.3516917) ([BibTex](/bibtex/OpenAIRE_Research_Graph_dump.bib)) +Manghi P., Atzori C., Bardi A., Baglioni M., Schirrwagen J., Dimitropoulos H., La Bruzzo S., Foufoulas I., Mannocci A., Horst M., Czerniak A., Iatropoulou K., Kokogiannaki A., De Bonis M., Artini M., Lempesis A., Ioannidis A., Manola N., Principe P., Vergoulis T., Chatzopoulos S., Pierrakos D. (2022). "OpenAIRE Research Graph Dump", *Dataset*, Zenodo. [doi:10.5281/zenodo.3516917](https://doi.org/10.5281/zenodo.3516917) ([BibTex](/bibtex/OpenAIRE_Research_Graph_dump.bib)) ::: ## Other relevant research products @@ -27,7 +27,7 @@ Mannocci A., Manghi P. (2016). "DataQ: a data flow quality monitoring system for ### Deduplication -Vichos K., De Bonis M., Kanellos I., Chatzopoulos S., Atzori C., Manola N., Manghi P., Vergoulis T. (2022). "A preliminary assessment of the article deduplication algorithm used for the OpenAIRE Graph", In Italian Research Conference on Digital Libraries (IRCDL), Padua, Italy, CEUR-WS Proceedings. [http://ceur-ws.org/Vol-3160](http://ceur-ws.org/Vol-3160/) +Vichos K., De Bonis M., Kanellos I., Chatzopoulos S., Atzori C., Manola N., Manghi P., Vergoulis T. (2022). "A preliminary assessment of the article deduplication algorithm used for the OpenAIRE Research Graph", In Italian Research Conference on Digital Libraries (IRCDL), Padua, Italy, CEUR-WS Proceedings. [http://ceur-ws.org/Vol-3160](http://ceur-ws.org/Vol-3160/) De Bonis M., Manghi P., Atzori C. (2022). "FDup: a framework for general-purpose and efficient entity deduplication of record collections", PeerJ Computer Science, 8, e1058. [https://peerj.com/articles/cs-1058](https://peerj.com/articles/cs-1058) diff --git a/docusaurus.config.js b/docusaurus.config.js index 2edc9a5..3254a5c 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -5,13 +5,23 @@ const lightCodeTheme = require('prism-react-renderer/themes/github'); const darkCodeTheme = require('prism-react-renderer/themes/dracula'); const math = require('remark-math'); const katex = require('rehype-katex'); +const dotenv = require('dotenv'); + +// load env variables (see .env file) +const env = dotenv.config(); +if (env.error) { + throw env.error; +} + +console.info("ENV VARIABLES:"); +console.info(env.parsed); /** @type {import('@docusaurus/types').Config} */ const config = { title: 'OpenAIRE Research Graph Documentation', tagline: 'Open Access Infrastructure for Research in Europe', - url: 'http://snf-23385.ok-kno.grnetcloud.net', - baseUrl: '/', // serve the website at route + url: process.env.URL, + baseUrl: process.env.BASE_URL, // serve the website at route onBrokenLinks: 'throw', onBrokenMarkdownLinks: 'warn', favicon: 'img/favicon.ico', @@ -28,7 +38,19 @@ const config = { defaultLocale: 'en', locales: ['en'], }, - + themes: [ + [ + require.resolve("@easyops-cn/docusaurus-search-local"), + /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */ + ({ + language: ["en"], + indexBlog: false, + highlightSearchTermsOnTargetPage: true, + searchBarShortcutHint: false, + docsRouteBasePath: "/", + }), + ], + ], presets: [ [ 'classic', @@ -106,65 +128,7 @@ const config = { ], }, footer: { - style: 'dark', - links: [ - { - title: 'Docs', - items: [ - { - label: 'Research Graph', - to: '/', - }, - ], - }, - { - title: 'Dashboards', - items: [ - { - label: 'Explore', - href: 'https://explore.openaire.eu/', - }, - { - label: 'Provide', - href: 'https://provide.openaire.eu/', - }, - { - label: 'Connect', - href: 'https://connect.openaire.eu/', - }, - { - label: 'Monitor', - href: 'https://monitor.openaire.eu/', - }, - { - label: 'Develop', - href: 'https://graph.openaire.eu/', - }, - ], - }, - { - title: 'Community', - items: [ - { - label: 'Facebook', - href: 'http://www.facebook.com/groups/openaire/' - }, - { - label: 'Linkedin', - href: 'https://www.linkedin.com/company/openaire-eu/', - }, - { - label: 'Twitter', - href: 'https://twitter.com/OpenAIRE_eu', - }, - { - label: 'Youtube', - href: 'https://www.youtube.com/channel/UChFYqizc-S6asNjQSoWuwjw', - }, - ], - }, - - ], + style: 'light', copyright: `Copyright © ${new Date().getFullYear()} OpenAIRE`, }, colorMode: { diff --git a/package-lock.json b/package-lock.json index 7203b12..4a2576f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,8 +10,10 @@ "dependencies": { "@docusaurus/core": "^2.2.0", "@docusaurus/preset-classic": "^2.2.0", + "@easyops-cn/docusaurus-search-local": "^0.33.6", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", + "dotenv": "^16.0.3", "hast-util-is-element": "^1.1.0", "prism-react-renderer": "^1.3.5", "react": "^17.0.2", @@ -20,7 +22,7 @@ "remark-math": "^3.0.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^2.1.0" + "@docusaurus/module-type-aliases": "^2.2.0" }, "engines": { "node": ">=16.14" @@ -2554,6 +2556,46 @@ "node": ">=16.14" } }, + "node_modules/@easyops-cn/autocomplete.js": { + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@easyops-cn/autocomplete.js/-/autocomplete.js-0.38.1.tgz", + "integrity": "sha512-drg76jS6syilOUmVNkyo1c7ZEBPcPuK+aJA7AksM5ZIIbV57DMHCywiCr+uHyv8BE5jUTU98j/H7gVrkHrWW3Q==", + "dependencies": { + "cssesc": "^3.0.0", + "immediate": "^3.2.3" + } + }, + "node_modules/@easyops-cn/docusaurus-search-local": { + "version": "0.33.6", + "resolved": "https://registry.npmjs.org/@easyops-cn/docusaurus-search-local/-/docusaurus-search-local-0.33.6.tgz", + "integrity": "sha512-3UqsJ42akhHDSlW9SravWQF5ZUI5VEKlzt50djbRRjDdJGefe1v9FpBKVdqHtPPFefcJoagtpfK4/R3dtDeEhw==", + "dependencies": { + "@docusaurus/plugin-content-docs": "^2.0.0-rc.1", + "@docusaurus/theme-translations": "^2.0.0-rc.1", + "@docusaurus/utils": "^2.0.0-rc.1", + "@docusaurus/utils-common": "^2.0.0-rc.1", + "@docusaurus/utils-validation": "^2.0.0-rc.1", + "@easyops-cn/autocomplete.js": "^0.38.1", + "@node-rs/jieba": "^1.6.0", + "cheerio": "^1.0.0-rc.3", + "clsx": "^1.1.1", + "debug": "^4.2.0", + "fs-extra": "^10.0.0", + "klaw-sync": "^6.0.0", + "lunr": "^2.3.9", + "lunr-languages": "^1.4.0", + "mark.js": "^8.11.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "@docusaurus/theme-common": "^2.0.0-rc.1", + "react": "^16.14.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.14.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -2761,6 +2803,228 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/@node-rs/jieba": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba/-/jieba-1.6.1.tgz", + "integrity": "sha512-pISKu8NIYKRvZp7mhYZYA8VCjJMqTsCe+mQcFFnAi3GNJsijGjef2peMFeDcvP72X8MsnNeYeg3rHkAybtefyQ==", + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "optionalDependencies": { + "@node-rs/jieba-android-arm-eabi": "1.6.1", + "@node-rs/jieba-android-arm64": "1.6.1", + "@node-rs/jieba-darwin-arm64": "1.6.1", + "@node-rs/jieba-darwin-x64": "1.6.1", + "@node-rs/jieba-freebsd-x64": "1.6.1", + "@node-rs/jieba-linux-arm-gnueabihf": "1.6.1", + "@node-rs/jieba-linux-arm64-gnu": "1.6.1", + "@node-rs/jieba-linux-arm64-musl": "1.6.1", + "@node-rs/jieba-linux-x64-gnu": "1.6.1", + "@node-rs/jieba-linux-x64-musl": "1.6.1", + "@node-rs/jieba-win32-arm64-msvc": "1.6.1", + "@node-rs/jieba-win32-ia32-msvc": "1.6.1", + "@node-rs/jieba-win32-x64-msvc": "1.6.1" + } + }, + "node_modules/@node-rs/jieba-android-arm-eabi": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm-eabi/-/jieba-android-arm-eabi-1.6.1.tgz", + "integrity": "sha512-R1YQfsPr7sK3Tq1sM0//6lNAGJK9RnMT0ShITT+7EJYr5OufUBb38lf/mRhrLxR0NF1pycEsMjdCAwrWrHd8rA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-android-arm64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm64/-/jieba-android-arm64-1.6.1.tgz", + "integrity": "sha512-hBRbj2uLmRFYDw2lWppTAPoyjeXkBKUT84h4fHUQj7CMU94Gc1IWkE4ocCqhvUhbaUXlCpocS9mB0/fc2641bw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-darwin-arm64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.6.1.tgz", + "integrity": "sha512-GeoDe7XVTF6z8JUtD98QvwudsMaHV5EBXs5uO43SobeIkShH3Nujq5gLMD5kWoJXTxDrTgJe4wT42EwUaBEH2Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-darwin-x64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-x64/-/jieba-darwin-x64-1.6.1.tgz", + "integrity": "sha512-ENHYIS8b8JdMaUXEm0f8Y3+sHXu2UdukG1D/XGUNx+q5cn07HbwIg6L0tlGhE8dw4AhqoWHsExVaZ241Igh4iA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-freebsd-x64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-freebsd-x64/-/jieba-freebsd-x64-1.6.1.tgz", + "integrity": "sha512-chwB/9edtxqS8Jm3j4RMaJjH9AlXmijUgKv02oMw36e77HKpko+tENUN25Vrn/9GKsKGqIPeXpmCjeXCN1HVQA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-linux-arm-gnueabihf": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm-gnueabihf/-/jieba-linux-arm-gnueabihf-1.6.1.tgz", + "integrity": "sha512-tsb5fMGj4p8bHGfkf7bJ+HE2jxaixLTp3YnGg5D+kp8+HQRq8cp3ScG5cn8cq0phnJS/zfAp8rVfWInDagzKKQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-linux-arm64-gnu": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-gnu/-/jieba-linux-arm64-gnu-1.6.1.tgz", + "integrity": "sha512-bSInORkJFfeZNR+i4rFoSZGbwkQtQlnZ0XfT/noTK9JUBDYErqQZPFjoaYAU45NWTk7p6Zkg30SuV1NTdWLaPw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-linux-arm64-musl": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-musl/-/jieba-linux-arm64-musl-1.6.1.tgz", + "integrity": "sha512-qphL6xM7owfU8Hsh7GX73SDr/iApbnc+35mSLxbibAfCQnY89+WcBeWUUOSGM/Ov3VFaq4pyVlDFj0YjR01W2w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-linux-x64-gnu": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-gnu/-/jieba-linux-x64-gnu-1.6.1.tgz", + "integrity": "sha512-f6hhlrbi2wel0xZG7m3Wvksimt9MSu1f3aYO2Kwavf4qjMRZqJzLz9HlCJAal6AXB9Qgg+685P+gftsWve47qw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-linux-x64-musl": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-musl/-/jieba-linux-x64-musl-1.6.1.tgz", + "integrity": "sha512-cTVcdR6zWqpnmdEUyWEII9zfE5lTeWN53TbiOPx8TCA+291/31Vqd7GA8YEPndUO8qgCx5uShSDFStBAEIhYNQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-win32-arm64-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-arm64-msvc/-/jieba-win32-arm64-msvc-1.6.1.tgz", + "integrity": "sha512-YuOTrjHazDraXcGXRHgPQ53nyJuH8QtTCngYKjAzxsdt8uN+txb1AY69OLMLBBZqLTOwY9dgcW70vGiLQMCTeg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-win32-ia32-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-ia32-msvc/-/jieba-win32-ia32-msvc-1.6.1.tgz", + "integrity": "sha512-4+E843ImGpVlZ+LlT9E/13NHmmUg3UHQx419D6fFMorJUUQuK4cZJfE1z4tCgcrbV8S5Wew5LIFywlJeJLu0LQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@node-rs/jieba-win32-x64-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-x64-msvc/-/jieba-win32-x64-msvc-1.6.1.tgz", + "integrity": "sha512-veXNwm2VlseOzl7vaC7A/nZ4okp5/6edN7/Atj6mXnUbze/m/my5Rv5zUcW3U1D9VElnQ3srCHCa5vXljJuk6g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -5422,6 +5686,14 @@ "node": ">=8" } }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, "node_modules/duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -6905,6 +7177,11 @@ "node": ">=14.0.0" } }, + "node_modules/immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, "node_modules/immer": { "version": "9.0.15", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", @@ -7461,6 +7738,14 @@ "node": ">=0.10.0" } }, + "node_modules/klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "dependencies": { + "graceful-fs": "^4.1.11" + } + }, "node_modules/kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -7609,6 +7894,16 @@ "node": ">=10" } }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, + "node_modules/lunr-languages": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.10.0.tgz", + "integrity": "sha512-BBjKKcwrieJlzwwc9M5H/MRXGJ2qyOSDx/NXYiwkuKjiLOOoouh0WsDzeqcLoUWcX31y7i8sb8IgsZKObdUCkw==" + }, "node_modules/make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -7631,6 +7926,11 @@ "semver": "bin/semver.js" } }, + "node_modules/mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + }, "node_modules/markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", @@ -14232,6 +14532,38 @@ "tslib": "^2.4.0" } }, + "@easyops-cn/autocomplete.js": { + "version": "0.38.1", + "resolved": "https://registry.npmjs.org/@easyops-cn/autocomplete.js/-/autocomplete.js-0.38.1.tgz", + "integrity": "sha512-drg76jS6syilOUmVNkyo1c7ZEBPcPuK+aJA7AksM5ZIIbV57DMHCywiCr+uHyv8BE5jUTU98j/H7gVrkHrWW3Q==", + "requires": { + "cssesc": "^3.0.0", + "immediate": "^3.2.3" + } + }, + "@easyops-cn/docusaurus-search-local": { + "version": "0.33.6", + "resolved": "https://registry.npmjs.org/@easyops-cn/docusaurus-search-local/-/docusaurus-search-local-0.33.6.tgz", + "integrity": "sha512-3UqsJ42akhHDSlW9SravWQF5ZUI5VEKlzt50djbRRjDdJGefe1v9FpBKVdqHtPPFefcJoagtpfK4/R3dtDeEhw==", + "requires": { + "@docusaurus/plugin-content-docs": "^2.0.0-rc.1", + "@docusaurus/theme-translations": "^2.0.0-rc.1", + "@docusaurus/utils": "^2.0.0-rc.1", + "@docusaurus/utils-common": "^2.0.0-rc.1", + "@docusaurus/utils-validation": "^2.0.0-rc.1", + "@easyops-cn/autocomplete.js": "^0.38.1", + "@node-rs/jieba": "^1.6.0", + "cheerio": "^1.0.0-rc.3", + "clsx": "^1.1.1", + "debug": "^4.2.0", + "fs-extra": "^10.0.0", + "klaw-sync": "^6.0.0", + "lunr": "^2.3.9", + "lunr-languages": "^1.4.0", + "mark.js": "^8.11.1", + "tslib": "^2.4.0" + } + }, "@hapi/hoek": { "version": "9.3.0", "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.3.0.tgz", @@ -14397,6 +14729,104 @@ "resolved": "https://registry.npmjs.org/@mdx-js/util/-/util-1.6.22.tgz", "integrity": "sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==" }, + "@node-rs/jieba": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba/-/jieba-1.6.1.tgz", + "integrity": "sha512-pISKu8NIYKRvZp7mhYZYA8VCjJMqTsCe+mQcFFnAi3GNJsijGjef2peMFeDcvP72X8MsnNeYeg3rHkAybtefyQ==", + "requires": { + "@node-rs/jieba-android-arm-eabi": "1.6.1", + "@node-rs/jieba-android-arm64": "1.6.1", + "@node-rs/jieba-darwin-arm64": "1.6.1", + "@node-rs/jieba-darwin-x64": "1.6.1", + "@node-rs/jieba-freebsd-x64": "1.6.1", + "@node-rs/jieba-linux-arm-gnueabihf": "1.6.1", + "@node-rs/jieba-linux-arm64-gnu": "1.6.1", + "@node-rs/jieba-linux-arm64-musl": "1.6.1", + "@node-rs/jieba-linux-x64-gnu": "1.6.1", + "@node-rs/jieba-linux-x64-musl": "1.6.1", + "@node-rs/jieba-win32-arm64-msvc": "1.6.1", + "@node-rs/jieba-win32-ia32-msvc": "1.6.1", + "@node-rs/jieba-win32-x64-msvc": "1.6.1" + } + }, + "@node-rs/jieba-android-arm-eabi": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm-eabi/-/jieba-android-arm-eabi-1.6.1.tgz", + "integrity": "sha512-R1YQfsPr7sK3Tq1sM0//6lNAGJK9RnMT0ShITT+7EJYr5OufUBb38lf/mRhrLxR0NF1pycEsMjdCAwrWrHd8rA==", + "optional": true + }, + "@node-rs/jieba-android-arm64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-android-arm64/-/jieba-android-arm64-1.6.1.tgz", + "integrity": "sha512-hBRbj2uLmRFYDw2lWppTAPoyjeXkBKUT84h4fHUQj7CMU94Gc1IWkE4ocCqhvUhbaUXlCpocS9mB0/fc2641bw==", + "optional": true + }, + "@node-rs/jieba-darwin-arm64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-arm64/-/jieba-darwin-arm64-1.6.1.tgz", + "integrity": "sha512-GeoDe7XVTF6z8JUtD98QvwudsMaHV5EBXs5uO43SobeIkShH3Nujq5gLMD5kWoJXTxDrTgJe4wT42EwUaBEH2Q==", + "optional": true + }, + "@node-rs/jieba-darwin-x64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-darwin-x64/-/jieba-darwin-x64-1.6.1.tgz", + "integrity": "sha512-ENHYIS8b8JdMaUXEm0f8Y3+sHXu2UdukG1D/XGUNx+q5cn07HbwIg6L0tlGhE8dw4AhqoWHsExVaZ241Igh4iA==", + "optional": true + }, + "@node-rs/jieba-freebsd-x64": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-freebsd-x64/-/jieba-freebsd-x64-1.6.1.tgz", + "integrity": "sha512-chwB/9edtxqS8Jm3j4RMaJjH9AlXmijUgKv02oMw36e77HKpko+tENUN25Vrn/9GKsKGqIPeXpmCjeXCN1HVQA==", + "optional": true + }, + "@node-rs/jieba-linux-arm-gnueabihf": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm-gnueabihf/-/jieba-linux-arm-gnueabihf-1.6.1.tgz", + "integrity": "sha512-tsb5fMGj4p8bHGfkf7bJ+HE2jxaixLTp3YnGg5D+kp8+HQRq8cp3ScG5cn8cq0phnJS/zfAp8rVfWInDagzKKQ==", + "optional": true + }, + "@node-rs/jieba-linux-arm64-gnu": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-gnu/-/jieba-linux-arm64-gnu-1.6.1.tgz", + "integrity": "sha512-bSInORkJFfeZNR+i4rFoSZGbwkQtQlnZ0XfT/noTK9JUBDYErqQZPFjoaYAU45NWTk7p6Zkg30SuV1NTdWLaPw==", + "optional": true + }, + "@node-rs/jieba-linux-arm64-musl": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-arm64-musl/-/jieba-linux-arm64-musl-1.6.1.tgz", + "integrity": "sha512-qphL6xM7owfU8Hsh7GX73SDr/iApbnc+35mSLxbibAfCQnY89+WcBeWUUOSGM/Ov3VFaq4pyVlDFj0YjR01W2w==", + "optional": true + }, + "@node-rs/jieba-linux-x64-gnu": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-gnu/-/jieba-linux-x64-gnu-1.6.1.tgz", + "integrity": "sha512-f6hhlrbi2wel0xZG7m3Wvksimt9MSu1f3aYO2Kwavf4qjMRZqJzLz9HlCJAal6AXB9Qgg+685P+gftsWve47qw==", + "optional": true + }, + "@node-rs/jieba-linux-x64-musl": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-linux-x64-musl/-/jieba-linux-x64-musl-1.6.1.tgz", + "integrity": "sha512-cTVcdR6zWqpnmdEUyWEII9zfE5lTeWN53TbiOPx8TCA+291/31Vqd7GA8YEPndUO8qgCx5uShSDFStBAEIhYNQ==", + "optional": true + }, + "@node-rs/jieba-win32-arm64-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-arm64-msvc/-/jieba-win32-arm64-msvc-1.6.1.tgz", + "integrity": "sha512-YuOTrjHazDraXcGXRHgPQ53nyJuH8QtTCngYKjAzxsdt8uN+txb1AY69OLMLBBZqLTOwY9dgcW70vGiLQMCTeg==", + "optional": true + }, + "@node-rs/jieba-win32-ia32-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-ia32-msvc/-/jieba-win32-ia32-msvc-1.6.1.tgz", + "integrity": "sha512-4+E843ImGpVlZ+LlT9E/13NHmmUg3UHQx419D6fFMorJUUQuK4cZJfE1z4tCgcrbV8S5Wew5LIFywlJeJLu0LQ==", + "optional": true + }, + "@node-rs/jieba-win32-x64-msvc": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@node-rs/jieba-win32-x64-msvc/-/jieba-win32-x64-msvc-1.6.1.tgz", + "integrity": "sha512-veXNwm2VlseOzl7vaC7A/nZ4okp5/6edN7/Atj6mXnUbze/m/my5Rv5zUcW3U1D9VElnQ3srCHCa5vXljJuk6g==", + "optional": true + }, "@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -16363,6 +16793,11 @@ } } }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, "duplexer": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", @@ -17456,6 +17891,11 @@ "queue": "6.0.2" } }, + "immediate": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz", + "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==" + }, "immer": { "version": "9.0.15", "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz", @@ -17830,6 +18270,14 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, + "klaw-sync": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", + "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", + "requires": { + "graceful-fs": "^4.1.11" + } + }, "kleur": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", @@ -17945,6 +18393,16 @@ "yallist": "^4.0.0" } }, + "lunr": { + "version": "2.3.9", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==" + }, + "lunr-languages": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/lunr-languages/-/lunr-languages-1.10.0.tgz", + "integrity": "sha512-BBjKKcwrieJlzwwc9M5H/MRXGJ2qyOSDx/NXYiwkuKjiLOOoouh0WsDzeqcLoUWcX31y7i8sb8IgsZKObdUCkw==" + }, "make-dir": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", @@ -17960,6 +18418,11 @@ } } }, + "mark.js": { + "version": "8.11.1", + "resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz", + "integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==" + }, "markdown-escapes": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/markdown-escapes/-/markdown-escapes-1.0.4.tgz", diff --git a/package.json b/package.json index e022bb7..8afe308 100644 --- a/package.json +++ b/package.json @@ -16,8 +16,10 @@ "dependencies": { "@docusaurus/core": "^2.2.0", "@docusaurus/preset-classic": "^2.2.0", + "@easyops-cn/docusaurus-search-local": "^0.33.6", "@mdx-js/react": "^1.6.22", "clsx": "^1.2.1", + "dotenv": "^16.0.3", "hast-util-is-element": "^1.1.0", "prism-react-renderer": "^1.3.5", "react": "^17.0.2", @@ -26,7 +28,7 @@ "remark-math": "^3.0.1" }, "devDependencies": { - "@docusaurus/module-type-aliases": "^2.1.0" + "@docusaurus/module-type-aliases": "^2.2.0" }, "browserslist": { "production": [ diff --git a/release.properties b/release.properties index 1326652..dd216a4 100644 --- a/release.properties +++ b/release.properties @@ -1,8 +1,8 @@ #The name of the tag -tag_name=1.0 +tag_name=1.1 # A description of the tag -tag_description=1.0 is our 1st tag +tag_description=1.1 is our 1st tag #The release name -release_name=release-1.0 +release_name=release-1.1 #The release description -release_description=this is the release 1.0 \ No newline at end of file +release_description=this is the release 1.1 \ No newline at end of file diff --git a/sidebars.js b/sidebars.js index aadca39..9063729 100644 --- a/sidebars.js +++ b/sidebars.js @@ -29,7 +29,7 @@ const sidebars = { label: "Entities", link: { type: 'generated-index', - description: 'The main entities of the OpenAIRE Graph are listed below.' + description: 'The main entities of the OpenAIRE Research Graph are listed below.' }, items: [ { type: 'doc', id: 'data-model/entities/result' }, @@ -66,7 +66,7 @@ const sidebars = { }, { type: 'category', - label: "Data provision", + label: "Graph production workflow", link: {type: 'doc', id: 'data-provision/data-provision'}, items: [ { @@ -74,12 +74,46 @@ const sidebars = { label: "Aggregation", link: {type: 'doc', id: 'data-provision/aggregation/aggregation'}, items: [ - { type: 'doc', id: 'data-provision/aggregation/doiboost', label: 'DOIBoost' }, - { type: 'doc', id: 'data-provision/aggregation/pubmed' }, - { type: 'doc', id: 'data-provision/aggregation/datacite' }, - { type: 'doc', id: 'data-provision/aggregation/ebi', label: 'EMBL-EBI' }, + { + type: 'doc', + label: "OpenAIRE compatible sources", + id: 'data-provision/aggregation/compatible-sources', + }, + { + type: 'category', + label: "Non-compatible sources", + link: { type: 'generated-index' }, + items: [ + { type: 'doc', id: 'data-provision/aggregation/non-compatible-sources/doiboost', label: 'DOIBoost' }, + { type: 'doc', id: 'data-provision/aggregation/non-compatible-sources/pubmed' }, + { type: 'doc', id: 'data-provision/aggregation/non-compatible-sources/datacite' }, + { type: 'doc', id: 'data-provision/aggregation/non-compatible-sources/ebi', label: 'EMBL-EBI' }, + ] + } ] }, + { + type: 'doc', + id: 'data-provision/merge-by-id' + }, + { + type: 'category', + label: "Enrichment by mining", + link: { + type: 'generated-index', + description: 'The OpenAIRE Research Graph is enriched using the different Text and Data Mining (TDM) algorithms that are grouped in the following categories.' + }, + items: [ + { type: 'doc', id: 'data-provision/enrichment-by-mining/affiliation_matching' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/citation_matching' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/classifies' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/documents_similarity' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/acks' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/cites' }, + { type: 'doc', id: 'data-provision/enrichment-by-mining/metadata_extraction' }, + ] + }, + { type: 'doc', id: 'data-provision/cleaning' }, { type: 'category', label: "Deduplication", @@ -90,39 +124,34 @@ const sidebars = { ] }, { - type: 'category', - label: "Enrichment", - link: { - type: 'generated-index', - description: 'The OpenAIRE Graph is enriched using the different processes that we describe in this section.' + type: 'category', + label: "Deduction & propagation", + link: { + type: 'generated-index' , + description: 'The OpenAIRE Research Graph is further enriched by the deduction and propagation processes descibed in this section.' + }, items: [ - { - type: 'category', - label: "Mining", - link: { - type: 'generated-index', - description: 'The Text and Data Mining (TDM) algorithms used for enriching the OpenAIRE Graph are grouped in the following main categories:' - }, - items: [ - { type: 'doc', id: 'data-provision/enrichment/affiliation_matching' }, - { type: 'doc', id: 'data-provision/enrichment/citation_matching' }, - { type: 'doc', id: 'data-provision/enrichment/classifies' }, - { type: 'doc', id: 'data-provision/enrichment/documents_similarity' }, - { type: 'doc', id: 'data-provision/enrichment/acks' }, - - { type: 'doc', id: 'data-provision/enrichment/cites' }, - - { type: 'doc', id: 'data-provision/enrichment/metadata_extraction' }, - ] - }, - { type: 'doc', id: 'data-provision/enrichment/bulk-tagging' }, - { type: 'doc', id: 'data-provision/enrichment/propagation' }, - { type: 'doc', id: 'data-provision/enrichment/impact-scores' }, + { type: 'doc', id: 'data-provision/deduction-and-propagation/bulk-tagging' }, + { type: 'doc', id: 'data-provision/deduction-and-propagation/propagation' }, ] }, - { type: 'doc', id: 'data-provision/post-cleaning' }, + { + type: 'category', + label: "Indicators ingestion", + link: { + type: 'generated-index' , + description: 'In this step, the following types of indicators are ingested in the OpenAIRE Research Graph.' + + }, + items: [ + { type: 'doc', id: 'data-provision/indicators-ingestion/impact-scores' }, + { type: 'doc', id: 'data-provision/indicators-ingestion/usage-counts' }, + ] + }, + { type: 'doc', id: 'data-provision/finalisation' }, { type: 'doc', id: 'data-provision/indexing' }, + { type: 'doc', id: 'data-provision/stats' } ] }, { @@ -135,10 +164,10 @@ const sidebars = { id: 'publications', label: "Relevant publications" }, - { - type: 'doc', - id: 'faq' - }, + // { + // type: 'doc', + // id: 'faq' + // }, { type: 'doc', id: 'license' @@ -147,6 +176,11 @@ const sidebars = { type: 'doc', id: 'changelog' }, + { + type: "link", + label: "Helpdesk", + href: "https://graph.openaire.eu/support" + }, ] }; diff --git a/src/css/custom.css b/src/css/custom.css index 14bc00e..b6455c2 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -61,3 +61,10 @@ background-color: #c6c6c6; } +.footer { + background-color: var(--ifm-navbar-background-color); + padding-bottom: 2em; + padding-top: 1em; + height: var(--ifm-navbar-height); +} + diff --git a/static/bibtex/OpenAIRE_Research_Graph_dump.bib b/static/bibtex/OpenAIRE_Research_Graph_dump.bib index 2bd491d..5bfc9d2 100644 --- a/static/bibtex/OpenAIRE_Research_Graph_dump.bib +++ b/static/bibtex/OpenAIRE_Research_Graph_dump.bib @@ -1,4 +1,4 @@ -@dataset{manghi_paolo_2022_6616871, +@dataset{manghi_paolo_2022_7488618, author = {Manghi, Paolo and Atzori, Claudio and Bardi, Alessia and @@ -10,24 +10,26 @@ Mannocci, Andrea and Horst, Marek and Czerniak, Andreas and - Kiatropoulou, Katerina and + Iatropoulou, Katerina and Kokogiannaki, Argiro and De Bonis, Michele and Artini, Michele and - Ottonello, Enrico and Lempesis, Antonis and Ioannidis, Alexandros and Manola, Natalia and - Principe, Pedro}, + Principe, Pedro and + Vergoulis, Thanasis and + Chatzopoulos, Serafeim and + Pierrakos, Dimitris}, title = {OpenAIRE Research Graph Dump}, - month = jun, + month = dec, year = 2022, note = {{A new version of this dataset is published every 6 months. The content available on the OpenAIRE EXPLORE and CONNECT portals might be more up-to- date with respect to the data you find here.}}, publisher = {Zenodo}, - version = {4.1}, - doi = {10.5281/zenodo.6616871}, - url = {https://doi.org/10.5281/zenodo.6616871} + version = {5.0.0}, + doi = {10.5281/zenodo.7488618}, + url = {https://doi.org/10.5281/zenodo.7488618} } \ No newline at end of file diff --git a/static/img/docs/architecture.png b/static/img/docs/architecture.png deleted file mode 100644 index 9e174db..0000000 Binary files a/static/img/docs/architecture.png and /dev/null differ