[Graph | Trunk]: Create Team and References pages. Change about architecture images

git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-graph-portal/trunk@60866 d315682c-612b-4755-9ff5-7f18f6832af3
This commit is contained in:
Konstantinos Triantafyllou 2021-04-15 14:39:34 +00:00
parent 96ef88671b
commit a362ddb8af
44 changed files with 721 additions and 527 deletions

View File

@ -79,33 +79,32 @@
<div class="uk-flex uk-flex-center uk-inline uk-margin-medium-top">
<img [src]="'assets/graph-assets/about/architecture/'+architectureImage"
class="uk-width-4-5 architecture-image">
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 27%; top: 48%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 27%; top: 51.5%"
(click)="changeTab(0)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'aggregation_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'aggregation_hover.png'"></action-point>
</a>
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 47%; top: 48%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 47%; top: 51.5%"
(click)="changeTab(1)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'deduplication_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'deduplication_hover.png'"></action-point>
</a>
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 58%; top: 48%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 58%; top: 51.5%"
(click)="changeTab(2)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'enrichment_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'enrichment_hover.png'"></action-point>
</a>
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 70%; top: 48%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 70%; top: 51.5%"
(click)="changeTab(3)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'post_cleaning_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'post_cleaning_hover.png'"></action-point>
</a>
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 76%; top: 32%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 75%; top: 35%;"
(click)="changeTab(4)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'indexing_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'indexing_hover.png'"></action-point>
</a>
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 76%; top: 72%"
<a class="uk-position-absolute uk-transform-center uk-padding" style="left: 75%; top: 72%"
(click)="changeTab(5)" routerLink="/about" fragment="tabs_card"
(mouseenter)="architectureImage = 'stats_analysis_hover.png'" (mouseleave)="architectureImage = 'gray.png'">
<action-point [class.uk-invisible]="architectureImage == 'stats_analysis_hover.png'"></action-point>
@ -122,16 +121,13 @@
<li><a>Indexing</a></li>
<li><a>Stats Analysis</a></li>
</ul>
<ul class="uk-switcher uk-margin">
<li>
<!-- uk-grid-->
<div class=" uk-margin-large-top uk-text-small">
<!-- <div class="uk-width-3-5@m">-->
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/aggregation.png" alt="Aggregation">
<div
[class]="'uk-margin-bottom uk-margin-medium-right '+(aggregationReadMore ? '' : 'lines-18 multi-line-ellipsis')">
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small lines-18"
[class.multi-line-ellipsis]="!aggregationReadMore">
<div>
OpenAIRE collects metadata records from a variety of content providers as described in
<a href="https://www.openaire.eu/aggregation-and-content-provision-workflows" target="_blank">https://www.openaire.eu/aggregation-and-content-provision-workflows</a>.
@ -139,65 +135,66 @@
OpenAIRE aggregates metadata records describing objects of the research life-cycle from content
providers compliant to the
<a href="https://guidelines.openaire.eu" target="_blank">OpenAIRE guidelines</a>
and from entity registries (i.e. data sources offering authoritative lists of entities, like OpenDOAR,
and from entity registries (i.e. data sources offering authoritative lists of entities, like
OpenDOAR,
re3data, DOAJ, and funder databases).
After collection, metadata are transformed according to the OpenAIRE internal metadata model, which is
After collection, metadata are transformed according to the OpenAIRE internal metadata model, which
is
used to generate the final OpenAIRE Research Graph that you can access from the OpenAIRE portal and
the
APIs.
<br><br>
The transformation process includes the application of cleaning functions whose goal is to ensure that
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
<a href="http://api.openaire.eu/vocabularies" target="_blank">http://api.openaire.eu/vocabularies</a>.
<a href="http://api.openaire.eu/vocabularies"
target="_blank">http://api.openaire.eu/vocabularies</a>.
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.
Also, the OpenAIRE Research Graph is extended with other relevant scholarly communication sources that
are too big to be integrated via the “normal” aggregation mechanism: DOIBoost (which merges Crossref,
ORCID, Microsoft Academic Graph, and Unpaywall), and ScholeXplorer, one of the Scholix hubs offering a
Also, the OpenAIRE Research Graph is extended with other relevant scholarly communication sources
that
are too big to be integrated via the “normal” aggregation mechanism: DOIBoost (which merges
Crossref,
ORCID, Microsoft Academic Graph, and Unpaywall), and ScholeXplorer, one of the Scholix hubs offering
a
large set of links between research literature and data.
</div>
</div>
<div *ngIf="!aggregationReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="aggregationReadMore = true">
<a class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
<div *ngIf="!aggregationReadMore" class="uk-text-center clickable">
<a (click)="aggregationReadMore = true" class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
</div>
<div *ngIf="aggregationReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="aggregationReadMore = false">
<a class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
<div *ngIf="aggregationReadMore" class="uk-text-center clickable">
<a (click)="aggregationReadMore = false" routerLink="./" fragment="tabs_card" class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/aggregation.png">-->
<!-- </div>-->
</div>
</li>
<li>
<div class="uk-grid">
<!-- <div class="uk-width-3-5@m">-->
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small">
<div class="uk-margin-bottom uk-text-small">
<ul class="uk-subnav button-tab" uk-switcher>
<li><a>Clustering</a></li>
<li><a>Matching & Election</a></li>
</ul>
<ul class="uk-switcher uk-margin align-list">
<li>
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/deduplication.svg" alt="Deduplication">
<div
[class]="'uk-margin-bottom uk-margin-medium-right uk-text-small '+(dedupClusteringReadMore ? '' : 'lines-18 multi-line-ellipsis')">
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small lines-18"
[class.multi-line-ellipsis]="!dedupClusteringReadMore">
<div>
<div>
Clustering is a common heuristics used to overcome the N x N complexity required to match all
Clustering is a common heuristics used to overcome the N x N complexity required to match
all
pairs of objects to identify the equivalent ones.
The challenge is to identify a clustering function that maximizes the chance of comparing only
The challenge is to identify a clustering function that maximizes the chance of comparing
only
records that may lead to a match, while minimizing the number of records that will not be
matched while being equivalent.
Since the equivalence function is to some level tolerant to minimal errors (e.g. switching of
Since the equivalence function is to some level tolerant to minimal errors (e.g. switching
of
characters in the title, or minimal difference in letters), we need this function to be not
too
precise (e.g. a hash of the title), but also not too flexible (e.g. random ngrams of the
@ -207,7 +204,6 @@
different versions and no clustering function will ever bring them into the same cluster.
To match these requirements OpenAIRE clustering for products works with two functions:
</div>
<ul class="portal-circle">
<li>
<div>DOI: the function generates the DOI when this is provided as part of the record
@ -233,7 +229,8 @@
</ul>
<div>
To give an idea, this configuration generates around 77Mi blocks, which we limited to 200
records each (only 15K blocks are affected by the cut), and entails 260Bi matches. Matches in
records each (only 15K blocks are affected by the cut), and entails 260Bi matches. Matches
in
a
block are performed using a “sliding window” set to 80 records. The records are sorted
lexicographically on a normalized version of their titles. The 1st record is matched against
@ -242,20 +239,19 @@
</div>
</div>
</div>
<div *ngIf="!dedupClusteringReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="dedupClusteringReadMore = true">
<a class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
<div *ngIf="!dedupClusteringReadMore" class="uk-text-center clickable">
<a (click)="dedupClusteringReadMore = true" class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
</div>
<div *ngIf="dedupClusteringReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="dedupClusteringReadMore = false">
<a class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
<div *ngIf="dedupClusteringReadMore" class="uk-text-center clickable">
<a (click)="dedupClusteringReadMore = false;" routerLink="./" fragment="tabs_card" class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
</div>
</li>
<li>
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/deduplication.svg" alt="Deduplication">
<div
[class]="'uk-margin-bottom uk-margin-medium-right uk-text-small '+(dedupMatchingAndElectionReadMore ? '' : 'lines-18 multi-line-ellipsis')">
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small lines-18"
[class.multi-line-ellipsis]="!dedupMatchingAndElectionReadMore">
<div>
<div>
Once the clusters have been built, the algorithm proceeds with the comparisons.
@ -305,7 +301,8 @@
The titles of the two records are normalised and compared for similarity by applying
the
Levenstein distance algorithm.
The algorithm returns a number in the range [0,1], where 0 means “very different” and
The algorithm returns a number in the range [0,1], where 0 means “very different”
and
1
means “equal”.
If the distance is greater than or equal 0,99 the two records are identified as
@ -314,7 +311,8 @@
</li>
<li>
<div>Dates are not regarded for equivalence matching because different versions of the
same records should be merged and may be published on different dates, e.g. pre-print
same records should be merged and may be published on different dates, e.g.
pre-print
and published version of an article.
</div>
</li>
@ -322,9 +320,11 @@
</li>
</ul>
<div>
Once the equivalence relationships between pairs of records are set, the groups of equivalent
Once the equivalence relationships between pairs of records are set, the groups of
equivalent
records are obtained (transitive closure, i.e. “mesh”).
From such sets a new representative object is obtained, which inherits all properties from the
From such sets a new representative object is obtained, which inherits all properties from
the
merged records and keeps track of their provenance.
The ID of the record is obtained by appending the prefix “dedup_” to the MD5 of the first ID
(given their lexicographical ordering).
@ -334,176 +334,138 @@
</div>
</div>
</div>
<div *ngIf="!dedupMatchingAndElectionReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="dedupMatchingAndElectionReadMore = true">
<a class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
<div *ngIf="!dedupMatchingAndElectionReadMore" class="uk-text-center clickable">
<a (click)="dedupMatchingAndElectionReadMore = true" class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
</div>
<div *ngIf="dedupMatchingAndElectionReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="dedupMatchingAndElectionReadMore = false">
<a class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
<div *ngIf="dedupMatchingAndElectionReadMore" class="uk-text-center clickable">
<a (click)="dedupMatchingAndElectionReadMore = false" routerLink="./" fragment="tabs_card" class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
</div>
</li>
</ul>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/deduplication.svg">-->
<!-- </div>-->
</div>
</li>
<li>
<div class="uk-grid">
<!-- <div class="uk-width-3-5@m">-->
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small">
<div class="uk-margin-bottom uk-text-small">
<ul class="uk-subnav button-tab uk-grid uk-grid-small" uk-switcher>
<li><a>General</a></li>
<li><a>Mining</a></li>
<li><a>Bulk tagging/ Deduction</a></li>
<li><a>Propagation</a></li>
</ul>
<ul class="uk-switcher uk-margin">
<li>
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/enrichment.svg" alt="Enrichment">
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small">
<p>
The aggregation processes are continuously running and apply vocabularies as they are in a given
moment of time.
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.
<br><br>
In addition, the integration of ScholeXplorer and DOIBooost 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.
The output of the final cleansing step is the final version of the OpenAIRE Research Graph.
</p>
</div>
</li>
<li>
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/enrichment.svg" alt="Enrichment">
<div
[class]="'uk-margin-bottom uk-margin-medium-right uk-text-small '+(enrichmentMiningReadMore ? '' : 'lines-18 multi-line-ellipsis')">
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small lines-18"
[class.multi-line-ellipsis]="!enrichmentMiningReadMore">
<div>
<div>
The OpenAIRE Research Graph is enriched by links mined by OpenAIREs full-text mining
algorithms
that scan the plaintexts of publications for funding information, references to datasets,
software URIs, accession numbers of bioetities, and EPO patent mentions.
Custom mining modules also link research objects to specific research communities, initiatives
and infrastructures.
In addition, other inference modules provide content-based document classification, document
similarity, citation matching, and author affiliation matching.
<br><br>
<span class="portal-color">Project mining</span>
in OpenAIRE text mines the full-texts of publications in order to extract matches to funding
project codes/IDs.
The mining algorithm works by utilising
(i) the grant identifier, and
(ii) the project acronym (if available) of each project.
The mining algorithm:
(1) Preprocesses/normalizes the full-texts using several functions, which depend on the
characteristics of each funder (i.e., the format of the grant identifiers), such as stopword
and/or punctuation removal, tokenization, stemming, converting to lowercase; then
(2) String matching of grant identifiers against the normalized text is done using database
techniques; and
(3) The results are validated and cleaned using the context near the match by looking at the
context around the matched ID for relevant metadata and positive or negative words/phrases, in
order to calculate a confidence value for each publication-->project link.
A confidence threshold is set to optimise high accuracy while minimising false positives, such
as matches with page or report numbers, post/zip codes, parts of telephone numbers, DOIs or
URLs, accession numbers.
The algorithm also applies rules for disambiguating results, as different funders can share
identical project IDs; for example, grant number 633172 could refer to H2020 project EuroMix
but
also to Australian-funded NHMRC project “Brain activity (EEG) analysis and brain imaging
techniques to measure the neurobiological effects of sleep apnea”.
Project mining works very well and was the first Text & Data Mining (TDM) service of OpenAIRE.
Performance results vary from funder to funder but precision is higher than 98% for all
funders
and 99.5% for EC projects.
Recall is higher than 95% (99% for EC projects), when projects are properly acknowledged using
project/grant IDs.
<br><br>
<span class="portal-color">Dataset extraction</span>
runs on publications full-texts as described in “High pass text-filtering for Citation
matching”, TPDL 2017[1].
In particular, we search for citations to datasets using their DOIs, titles and other metadata
(i.e., dates, creator names, publishers, etc.).
We extract parts of the text which look like citations and search for datasets using database
join and pattern matching techniques.
Based on the experiments described in the paper, precision of the dataset extraction module is
98.5% and recall is 97.4% but it is also probably overestimated since it does not take into
account corruptions that may take place during pdf to text extraction.
It is calculated on the extracted full-texts of small samples from PubMed and arXiv.
<br><br>
<span class="portal-color">Software extraction</span>
runs also on parts of the text which look like citations.
We search the citations for links to software in open software repositories, specifically
github, sourceforge, bitbucket and the google code archive.
After that, we search for links that are included in Software Heritage (SH,
https://www.softwareheritage.org) and return the permanent URL that SH provides for each
software project.
We also enrich this content with user names, titles and descriptions of the software projects
using web mining techniques.
Since software mining is based on URL matching, our precision is 100% (we return a software
link
only if we find it in the text and there is no need to disambiguate).
As for recall rate, this is not calculable for this mining task.
Although we apply all the necessary normalizations to the URLs in order to overcome usual
issues
(e.g., http or https, existence of www or not, lower/upper case), we do not calculate cases
where a software is mentioned using its name and not by a link from the supported software
repositories.
<br><br>
<span class="portal-color">For the extraction of bio-entities</span>, we focus on Protein Data
Bank (PDB) entries.
We have downloaded the database with PDB codes and we update it regularly.
We search through the whole publications full-text for references to PDB codes.
We apply disambiguation rules (e.g., there are PDB codes that are the same as antibody codes
or
other issues) so that we return valid results.
Current precision is 98%.
Although it's risky to mention recall rates since these are usually overestimated, we have
calculated a recall rate of 98% using small samples from pubmed publications.
Moreover, our technique is able to identify about 30% more links to proteins than the ones
that
are tagged in Pubmed xmls.
<br><br>
<span class="portal-color">Other text-mining modules</span> include mining for links to EPO
patents, or custom mining modules for linking research objects to specific research
communities,
initiatives and infrastructures, e.g. COVID-19 mining module.
Apart from text-mining modules, OpenAIRE also provides a document classification service that
employs analysis of free text stemming from the abstracts of the publications.
The purpose of applying a document classification module is to assign a scientific text one or
more predefined content classes.
In OpenAIRE, the currently used taxonomies are arXiv, MeSH (Medical Subject Headings), ACM and
DDC (Dewey Decimal Classification, or Dewey Decimal System).
<br><br>
<hr>
[1] Foufoulas, Y., Stamatogiannakis, L., Dimitropoulos, H., & Ioannidis, Y. (2017, September).
High-Pass Text Filtering for Citation Matching.
In International Conference on Theory and Practice of Digital Libraries (pp. 355-366).
Springer,
Cham.
</div>
The OpenAIRE Research Graph is enriched by links mined by OpenAIREs full-text mining
algorithms
that scan the plaintexts of publications for funding information, references to datasets,
software URIs, accession numbers of bioetities, and EPO patent mentions.
Custom mining modules also link research objects to specific research communities, initiatives
and infrastructures.
In addition, other inference modules provide content-based document classification, document
similarity, citation matching, and author affiliation matching.
<br><br>
<span class="portal-color">Project mining</span>
in OpenAIRE text mines the full-texts of publications in order to extract matches to funding
project codes/IDs.
The mining algorithm works by utilising
(i) the grant identifier, and
(ii) the project acronym (if available) of each project.
The mining algorithm:
(1) Preprocesses/normalizes the full-texts using several functions, which depend on the
characteristics of each funder (i.e., the format of the grant identifiers), such as stopword
and/or punctuation removal, tokenization, stemming, converting to lowercase; then
(2) String matching of grant identifiers against the normalized text is done using database
techniques; and
(3) The results are validated and cleaned using the context near the match by looking at the
context around the matched ID for relevant metadata and positive or negative words/phrases, in
order to calculate a confidence value for each publication-->project link.
A confidence threshold is set to optimise high accuracy while minimising false positives, such
as matches with page or report numbers, post/zip codes, parts of telephone numbers, DOIs or
URLs, accession numbers.
The algorithm also applies rules for disambiguating results, as different funders can share
identical project IDs; for example, grant number 633172 could refer to H2020 project EuroMix
but
also to Australian-funded NHMRC project “Brain activity (EEG) analysis and brain imaging
techniques to measure the neurobiological effects of sleep apnea”.
Project mining works very well and was the first Text & Data Mining (TDM) service of OpenAIRE.
Performance results vary from funder to funder but precision is higher than 98% for all
funders
and 99.5% for EC projects.
Recall is higher than 95% (99% for EC projects), when projects are properly acknowledged using
project/grant IDs.
<br><br>
<span class="portal-color">Dataset extraction</span>
runs on publications full-texts as described in “High pass text-filtering for Citation
matching”, TPDL 2017[1].
In particular, we search for citations to datasets using their DOIs, titles and other metadata
(i.e., dates, creator names, publishers, etc.).
We extract parts of the text which look like citations and search for datasets using database
join and pattern matching techniques.
Based on the experiments described in the paper, precision of the dataset extraction module is
98.5% and recall is 97.4% but it is also probably overestimated since it does not take into
account corruptions that may take place during pdf to text extraction.
It is calculated on the extracted full-texts of small samples from PubMed and arXiv.
<br><br>
<span class="portal-color">Software extraction</span>
runs also on parts of the text which look like citations.
We search the citations for links to software in open software repositories, specifically
github, sourceforge, bitbucket and the google code archive.
After that, we search for links that are included in Software Heritage (SH,
https://www.softwareheritage.org) and return the permanent URL that SH provides for each
software project.
We also enrich this content with user names, titles and descriptions of the software projects
using web mining techniques.
Since software mining is based on URL matching, our precision is 100% (we return a software
link
only if we find it in the text and there is no need to disambiguate).
As for recall rate, this is not calculable for this mining task.
Although we apply all the necessary normalizations to the URLs in order to overcome usual
issues
(e.g., http or https, existence of www or not, lower/upper case), we do not calculate cases
where a software is mentioned using its name and not by a link from the supported software
repositories.
<br><br>
<span class="portal-color">For the extraction of bio-entities</span>, we focus on Protein Data
Bank (PDB) entries.
We have downloaded the database with PDB codes and we update it regularly.
We search through the whole publications full-text for references to PDB codes.
We apply disambiguation rules (e.g., there are PDB codes that are the same as antibody codes
or
other issues) so that we return valid results.
Current precision is 98%.
Although it's risky to mention recall rates since these are usually overestimated, we have
calculated a recall rate of 98% using small samples from pubmed publications.
Moreover, our technique is able to identify about 30% more links to proteins than the ones
that
are tagged in Pubmed xmls.
<br><br>
<span class="portal-color">Other text-mining modules</span> include mining for links to EPO
patents, or custom mining modules for linking research objects to specific research
communities,
initiatives and infrastructures, e.g. COVID-19 mining module.
Apart from text-mining modules, OpenAIRE also provides a document classification service that
employs analysis of free text stemming from the abstracts of the publications.
The purpose of applying a document classification module is to assign a scientific text one or
more predefined content classes.
In OpenAIRE, the currently used taxonomies are arXiv, MeSH (Medical Subject Headings), ACM and
DDC (Dewey Decimal Classification, or Dewey Decimal System).
<br><br>
<hr>
[1] Foufoulas, Y., Stamatogiannakis, L., Dimitropoulos, H., & Ioannidis, Y. (2017, September).
High-Pass Text Filtering for Citation Matching.
In International Conference on Theory and Practice of Digital Libraries (pp. 355-366).
Springer,
Cham.
</div>
</div>
<div *ngIf="!enrichmentMiningReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="enrichmentMiningReadMore = true">
<a class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
<div *ngIf="!enrichmentMiningReadMore" class="uk-text-center clickable">
<a (click)="enrichmentMiningReadMore = true" class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
</div>
<div *ngIf="enrichmentMiningReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="enrichmentMiningReadMore = false">
<a class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
<div *ngIf="enrichmentMiningReadMore" class="uk-text-center clickable">
<a (click)="enrichmentMiningReadMore = false" routerLink="./" fragment="tabs_card" class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
</div>
</li>
<li>
@ -521,7 +483,8 @@
<li>Zenodo community (16K results tagged)</li>
<li>the data source it comes from (250K results tagged)</li>
</ul>
The list of subjects, Zenodo communities and data sources used to enrich the products are defined
The list of subjects, Zenodo communities and data sources used to enrich the products are
defined
by
the managers of the community gateway or infrastructure monitoring dashboard associated with the
RC/RI.
@ -530,11 +493,11 @@
<li>
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/enrichment.svg" alt="Enrichment">
<div
[class]="'uk-margin-bottom uk-margin-medium-right uk-text-small '+(enrichmentPropagationReadMore ? '' : 'lines-18 multi-line-ellipsis')">
<div>
<div class="uk-margin-bottom uk-margin-medium-right uk-text-small lines-18"
[class.multi-line-ellipsis]="!enrichmentPropagationReadMore">
<div>
This process “propagates” properties and links from one product to another if between the two
This process “propagates” properties and links from one product to another if between the
two
there is a “strong” semantic relationship.
<br><br>
As of September 2020, the following procedures are in place:
@ -549,13 +512,16 @@
by”
a dataset D.
Dataset D will get the link to project P.
The relationships considered for this procedure are “isSupplementedBy” and “supplements”.
The relationships considered for this procedure are “isSupplementedBy” and
“supplements”.
</li>
<li>
Propagation of related community/infrastructure/initiative from organizations to products
Propagation of related community/infrastructure/initiative from organizations to
products
via affiliation relationships: e.g. a publication with an author affiliated with
organization O.
The manager of the community gateway C declared that the outputs of O are all relevant for
The manager of the community gateway C declared that the outputs of O are all relevant
for
his/her community C.
The publication is tagged as relevant for C.
</li>
@ -563,7 +529,8 @@
Propagation of related community/infrastructure/initiative to related products: e.g.
publication associated to community C is supplemented by a dataset D.
Dataset D will get the association to C.
The relationships considered for this procedure are “isSupplementedBy” and “supplements”.
The relationships considered for this procedure are “isSupplementedBy” and
“supplements”.
</li>
<li>
Propagation of ORCID identifiers to related products, if the products have the same
@ -573,53 +540,45 @@
the same authors as the publication. Authors of D are enriched with the ORCIDs available
in
the publication.
The relationships considered for this procedure are “isSupplementedBy” and “supplements”.
The relationships considered for this procedure are “isSupplementedBy” and
“supplements”.
</li>
</ul>
</div>
</div>
</div>
<div *ngIf="!enrichmentPropagationReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="enrichmentPropagationReadMore = true">
<a class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
<div *ngIf="!enrichmentPropagationReadMore" class="uk-text-center clickable">
<a (click)="enrichmentPropagationReadMore = true" class="custom-explore-toggle">Read more<span uk-icon="chevron-down"></span></a>
</div>
<div *ngIf="enrichmentPropagationReadMore" class="uk-width-3-5@m uk-text-center clickable"
(click)="enrichmentPropagationReadMore = false">
<a class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
<div *ngIf="enrichmentPropagationReadMore" class="uk-text-center clickable">
<a (click)="enrichmentPropagationReadMore = false" routerLink="./" fragment="tabs_card" class="custom-explore-toggle">Read less<span uk-icon="chevron-up"></span></a>
</div>
</li>
</ul>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/enrichment.svg">-->
<!-- </div>-->
</div>
</li>
<li>
<div class="uk-text-small uk-margin-large-top">
<!-- <div class="uk-width-3-5@m">-->
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/post_cleaning.svg" alt="Post Cleaning">
<div class="uk-margin-bottom uk-margin-medium-right">
<p>
The aggregation processes are continuously running and apply vocabularies as they are in a given moment of time.
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.
The aggregation processes are continuously running and apply vocabularies as they are in a given
moment of time.
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.
<br><br>
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.
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.
The output of the final cleansing step is the final version of the OpenAIRE Research Graph.
</p>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/post_cleaning.svg">-->
<!-- </div>-->
</div>
</li>
<li>
<div class="uk-text-small uk-margin-large-top">
<!-- <div class="uk-width-3-5@m">-->
<img class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image"
src="assets/graph-assets/about/architecture/indexing.svg" alt="Indexing">
<div class="uk-margin-bottom uk-margin-medium-right">
@ -637,7 +596,8 @@
</li>
<li class="uk-margin-small-bottom">
<span class="portal-color">DSpace & EPrints</span>
repositories can install the OpenAIRE plugin to expose OpenAIRE compliant metadata records via their
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
</li>
@ -647,20 +607,16 @@
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
The user can select the research products from the list and easily compile the continuous
reporting
data of the project.
</li>
</ul>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/indexing.svg">-->
<!-- </div>-->
</div>
</li>
<li>
<div class="uk-text-small uk-margin-large-top">
<!-- <div class="uk-width-3-5@m">-->
<img
class="uk-width-2-5@m uk-align-right@m uk-margin-remove-adjacent tab-image uk-padding-large uk-padding-remove-top uk-padding-remove-horizontal"
src="assets/graph-assets/about/architecture/stats_analysis.svg" alt="Stats Analysis">
@ -670,7 +626,8 @@
producing
the charts for funders, research initiative, infrastructures, and policy makers that you can see on
MONITOR.
Based on the information available on the graph, OpenAIRE provides a set of indicators for monitoring
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
@ -678,10 +635,6 @@
etc.
</p>
</div>
<!-- </div>-->
<!-- <div class="uk-width-expand">-->
<!-- <img src="assets/graph-assets/about/architecture/stats_analysis.svg">-->
<!-- </div>-->
</div>
</li>
</ul>
@ -692,7 +645,7 @@
<ul class="uk-text-small portal-circle">
<li>
<a href="https://aka.ms/msracad" target="_blank">Microsoft Academic Graph</a>
which is made available under the ODC Attribution License.
which is made available under the ODC Attribution License.<br>
For more information on Microsoft Academic Graph please also read
<a href="https://docs.microsoft.com/en-us/academic-services/graph/resources-faq" target="_blank">here</a>.
</li>
@ -700,21 +653,16 @@
<a href="https://www.openaire.eu/aggregation-and-content-provision-workflows" target="_blank">https://www.openaire.eu/aggregation-and-content-provision-workflows</a>
</li>
</ul>
<a class="portal-link uk-icon-link uk-text-small uk-text-bold uk-text-uppercase" routerLink="/resources/references">
See all references <icon name="arrow_right" class="uk-margin-small-left"></icon>
</a>
</div>
</div>
</div>
<div id="metrics" class="uk-container uk-container-large uk-section">
<div class="uk-padding-small">
<h2 class="uk-text-center">Data & Metrics</h2>
<h4 class="uk-text-center uk-margin-medium-top portal-color">Coming soon...</h4>
<!-- <div>-->
<!-- <h3 class="uk-margin-medium-top portal-color">Data</h3>-->
<!-- <div></div>-->
<!-- </div>-->
<!-- <div>-->
<!-- <h3 class="uk-margin-medium-top portal-color">Metrics</h3>-->
<!-- <div></div>-->
<!-- </div>-->
<h2 class="uk-text-center uk-margin-xlarge-bottom">Data & Metrics</h2>
<numbers [backgroundClass]="null"></numbers>
</div>
</div>
<div id="infrastructure" class="uk-container uk-section">
@ -722,31 +670,35 @@
<h2 class="uk-text-center">Infrastructure</h2>
<div>
<div class="uk-flex uk-flex-center uk-grid uk-grid-stack">
<!-- <div>-->
<p class="uk-width-4-5@m uk-padding-small">
The OpenAIRE Research Graph is operated and maintained at the <a
<p class="uk-width-4-5@m uk-padding-small">
The OpenAIRE Research Graph is operated and maintained at the <a
href="https://icm.edu.pl/en/centre-of-technology/" target="_blank">ICM cutting-edge Technology centre</a>
with the facilities and staff guaranteeing robust operation of the whole system.
Okeanos SuperComputer hosting the graph consists of 26016 cores in total providing 1082 Tflops/s.
Whole setup is energy efficient with 1.554 Gflops/Watts Power Efficiency resulting in 160th place on the "Top500 by energy-eficiency" list (as of 2019).
</p>
<img class="infrastructure-image uk-margin-top uk-margin-bottom" src="assets/graph-assets/about/infrastructure.png">
<p class="uk-width-4-5@m uk-padding-small">
ICM supports the continuous operation of the infrastructure including data aggregation, deduplication, inference and provision ensuring seamless 24/7 system uptime and availability.
System administration activities cover hardware maintenance and provisioning of the new computational resources, providing High Availability solutions to address resilience to failures by service-level redundancy and Load Balancing to distribute workloads uniformly across servers.
The most crucial parts of the persisted graph are covered with backups along with well defined restore procedures.
All the monitoring activities rely on an aggregated system-level monitoring accessible via various dashboards giving the better overview of system stability and potential requirements for system elements extension.
System level monitoring is supplemented with monitoring availability of all the publicly accessible endpoints.
Hence, the offer of the public API of OpenAIRE to third parties, is of high-standards.
</p>
<p class="uk-width-4-5@m uk-padding-small">
All the maintenance operations undertaken by experienced system administrators are founded on well established routines and emergency maintenance procedures.
</p>
<!-- The OpenAIRE graph operates based on a vast variety of hardware and software. As of December 2019, the-->
<!-- hardware infrastructure is the following:-->
<!-- </p>-->
<!-- </div>-->
with the facilities and staff guaranteeing robust operation of the whole system.
Okeanos SuperComputer hosting the graph consists of 26016 cores in total providing 1082 Tflops/s.
Whole setup is energy efficient with 1.554 Gflops/Watts Power Efficiency resulting in 160th place on the
"Top500 by energy-eficiency" list (as of 2019).
</p>
<img class="infrastructure-image uk-margin-top uk-margin-bottom"
src="assets/graph-assets/about/infrastructure.png">
<p class="uk-width-4-5@m uk-padding-small">
ICM supports the continuous operation of the infrastructure including data aggregation, deduplication,
inference and provision ensuring seamless 24/7 system uptime and availability.
System administration activities cover hardware maintenance and provisioning of the new computational
resources, providing High Availability solutions to address resilience to failures by service-level
redundancy and Load Balancing to distribute workloads uniformly across servers.
The most crucial parts of the persisted graph are covered with backups along with well defined restore
procedures.
All the monitoring activities rely on an aggregated system-level monitoring accessible via various
dashboards giving the better overview of system stability and potential requirements for system elements
extension.
System level monitoring is supplemented with monitoring availability of all the publicly accessible
endpoints.
Hence, the offer of the public API of OpenAIRE to third parties, is of high-standards.
</p>
<p class="uk-width-4-5@m uk-padding-small">
All the maintenance operations undertaken by experienced system administrators are founded on well
established routines and emergency maintenance procedures.
</p>
</div>
</div>
</div>
@ -756,11 +708,6 @@
<h2 class="uk-text-center">Team</h2>
<div>
<div class="uk-margin-bottom">
<!-- <div class="uk-flex uk-flex-middle uk-grid" uk-grid="">-->
<!-- <div class="uk-text-center uk-width-1-1@s uk-width-1-3@m uk-first-column">-->
<!-- <img src="assets/graph-assets/about/team.svg">-->
<!-- </div>-->
<img class="uk-align-center uk-align-left@m uk-margin-remove-adjacent"
src="assets/graph-assets/about/team.svg" alt="Team">
@ -768,14 +715,12 @@
<div class="uk-margin-medium-bottom">
Key team members contributing to the Research Graph
</div>
<div>
<a class="uk-button portal-button" target="_blank" href="https://www.openaire.eu/research-graph-team">
<div><a class="uk-button portal-button" routerLink="./team">
Meet the team
<icon name="arrow_right" ratio="0.8" class="space"></icon>
</a>
</div>
</div>
<!-- </div>-->
</div>
</div>
</div>

View File

@ -55,15 +55,6 @@ export class AboutComponent implements OnInit {
this.subs.push(this._piwikService.trackView(this.properties, this.title).subscribe());
}
}
goTo(id: string) {
const yOffset = -100;
const element = document.getElementById(id);
if(element) {
const y = element.getBoundingClientRect().top + window.pageYOffset + yOffset;
window.scrollTo({top: y, behavior: 'smooth'});
}
}
changeTab(index: number) {
UIkit.switcher(this.tabs.nativeElement).show(index);

View File

@ -9,18 +9,22 @@ import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {arrow_right} from "../openaireLibrary/utils/icons/icons";
import {Schema2jsonldModule} from '../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module';
import {NumbersModule} from '../openaireLibrary/sharedComponents/numbers/numbers.module';
import {TeamComponent} from './team.component';
@NgModule({
imports: [
CommonModule,
RouterModule.forChild([{
path: '', component: AboutComponent
}]),
RouterModule.forChild([
{path: '', component: AboutComponent},
{path: 'team', component: TeamComponent},
]),
BreadcrumbsModule,
IconsModule,
Schema2jsonldModule
Schema2jsonldModule,
NumbersModule
],
declarations: [AboutComponent, ActionPointComponent],
declarations: [AboutComponent, ActionPointComponent, TeamComponent],
exports: [AboutComponent]
})
export class AboutModule {

View File

@ -7,12 +7,12 @@ import {animate, state, style, transition, trigger} from "@angular/animations";
<div class="uk-position-relative" style="width: 15px; height: 15px;">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15" fill="none">
<circle cx="7.5" cy="7.5" r="7.5" fill="#ee2540"/>
<circle cx="7.5" cy="7.5" r="7.5" fill="var(--portal-main-color)"/>
</svg>
</div>
<div class="uk-position-top-left" [@move]="state" (@move.done)="onEnd($event)">
<svg width="15" height="15" viewBox="0 0 15 15" fill="none">
<circle cx="7.4" cy="6.6" r="5" stroke="#ee2540" stroke-width="2.5" fill="none" />
<circle cx="7.5" cy="6.5" r="5" stroke="var(--portal-main-color)" stroke-width="2.5" fill="none" />
</svg>
</div>
</div>

View File

@ -1,6 +0,0 @@
export const faqs = [
/* {
question: 'Test',
answer: 'Test'
}*/
];

View File

@ -0,0 +1,32 @@
.uk-card .uk-card-flip-inner .front,
.uk-card .uk-card-flip-inner .back {
border-radius: 5px;
box-shadow: 0 2px 5px #0000001a;
border: 1px solid #E0E0E0;
font-size: 14px;
font-family: "Roboto", sans-serif;
line-height: 19px;
color: rgba(26, 26, 26, 0.8);
}
.uk-card:hover .uk-card-flip-inner .front,
.uk-card:hover .uk-card-flip-inner .back {
box-shadow: 0 6px 15px #0000001A;
}
.uk-card .front img,
.uk-card .back img {
width: 150px;
height: 150px;
border-radius: 50%;
object-fit: cover;
}
.uk-card .back img {
width: 100px;
height: 100px;
}
.uk-card .uk-card-flip-inner .uk-text-muted {
color: rgba(26, 26, 26, 0.6);
}

View File

@ -0,0 +1,85 @@
import {Component} from '@angular/core';
import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component';
import {member, team} from './team';
@Component({
selector: 'team',
template: `
<div>
<div class="uk-section">
<div class="uk-margin-large-left uk-margin-medium-bottom">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-container">
<h2 class="uk-text-center">Meet The Team</h2>
<div class="uk-padding-small">
<div class="uk-grid uk-child-width-1-3@m uk-child-width-1-2@s uk-child-width-1-1 uk-margin-large-top" uk-grid>
<div *ngFor="let member of team;" class="uk-card uk-card-flip" [class.uk-active]="member.active === true">
<div class="uk-card-flip-inner">
<div class="front">
<div class="uk-padding">
<div class="uk-text-center">
<img [src]="'assets/graph-assets/about/team/' + member.photo">
<div class="uk-margin-medium-top role">
<h6 class="portal-color">{{member.name}}</h6>
<div class="uk-text-muted">
{{member.role}}
</div>
</div>
</div>
</div>
<div class="uk-position-bottom-center uk-margin-bottom">
<a class="portal-link" (click)="member.active = true">Learn more</a>
</div>
</div>
<div class="back">
<div class="uk-padding">
<div class="uk-text-center">
<img [src]="'assets/graph-assets/about/team/' + member.photo">
<div class="uk-margin-medium-top">
<h6 class="uk-text-center portal-color">{{member.name}}</h6>
</div>
</div>
<div class="uk-margin-small-bottom">
<span class="uk-text-bold">Role: </span> {{member.role}}
</div>
<div class="uk-margin-small-bottom">
<span class="uk-text-bold">Affiliation: </span> {{member.affiliation}}
</div>
<div>
<span class="uk-text-bold">Country: </span> {{member.country}}
</div>
<!-- <div>
<span class="uk-text-bold">Responsibilities: </span> {{member.responsibilities}}
</div>-->
</div>
<div class="uk-position-bottom-center uk-margin-bottom">
<a class="portal-link" (click)="member.active = false">Back</a>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
`,
styleUrls: ['team.component.css']
})
export class TeamComponent {
public team: member[] = team;
public breadcrumbs: Breadcrumb[] = [
{
name: 'home',
route: '/'
},
{
name: 'about',
route: '/about'
},
{
name: 'Team'
}
];
}

135
src/app/about/team.ts Normal file
View File

@ -0,0 +1,135 @@
export interface member {
name: string,
role: string,
affiliation: string,
country: string,
responsibilities: string,
photo: string,
active?: boolean
}
export const team: member[] = [
{
name: 'Alessia Bardi',
role: 'Researcher / Product Manager of the OpenAIRE Research Community Dashboard (CONNECT)',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities:
'Responsible for the design and operation of the pipeline for the materialisation and data quality evaluation of the graph\n' +
'Responsible for the integration of content for the communities using OpenAIRE CONNECT services.',
photo: 'alessia.jpg'
},
{
name: 'Amelie Bäcker',
role: 'Librarian',
affiliation: 'Bielefeld University Library',
country: 'Germany',
responsibilities: 'Metadata integration (standard cases), helpdesk support (OpenAIRE Guidelines, metadata integration).',
photo: 'amelie.jpg'
},
{
name: 'Andrea Dell Amico',
role: 'Τechnical Team - Systems Administrator',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Working on the computing and storage infrastructure on the CNR side, maintaining the Hadoop and ElasticSearch clusters.',
photo: 'dell_amico.jpg'
},
{
name: 'Andrea Mannocci',
role: 'Researcher/Data scientist',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Working on data analysis and quality of data.',
photo: 'mannocci.jpg'
},
{
name: 'Andreas Czerniak',
role: 'OpenAIRE Project Officer',
affiliation: 'Bielefeld University Library',
country: 'Germany',
responsibilities: 'Responsible with the UniBI team for the aggregation (collection and transformation) of metadata.',
photo: 'czerniak.jpg'
},
{
name: 'Claudio Atzori',
role: 'Software & Data Engineer / Data quality',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities:
'Responsible for the design of graph processing pipeline, glueing the different stages together, from the content aggregation, to the end of the supply chain at the indexing stage.',
photo: 'claudio.jpg'
},
{
name: 'Eleni Zacharia-Lamprou',
role: 'Software Engineer - Postdoctoral Researcher',
affiliation: 'Athena Research Center (ARC)',
country: 'Greece',
responsibilities: 'Implementation of Text and Data Mining (TDM) modules, used in the graph Enrichment phase.',
photo: 'eleni.jpg'
},
{
name: 'Enrico Ottonello',
role: 'Technical Team',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Data engineering, aggregation, data curation along the graph enrichment steps.',
photo: 'enrico.jpg'
},
{
name: 'Harry Dimitropoulos',
role: 'Senior Scientific Associate',
affiliation: 'Athena Research Center (ARC)',
country: 'Greece',
responsibilities: 'Responsible for the Text and Data Mining (TDM) modules used in the graph Enrichment phase.',
photo: 'dimitropoulos.jpg'
},
{
name: 'Lampros Smyrnaios',
role: 'Software & Data Engineer / Research Assistant',
affiliation: 'Athena Research Center (ARC)',
country: 'Greece',
responsibilities: 'Development of a software to extract the full-texts from publications\' web-pages. These full-texts are used by the Text and Data Mining (TDM) modules. Implementation of Text and Data Mining (TDM) modules, used in the graph Enrichment phase.',
photo: 'lampros.jpg'
},
{
name: 'Michele De Bonis',
role: 'Technical Team',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Responsible for the deduplication phase and the creation of algorithms to identify groups of data into the graph.',
photo: 'de_bonis.jpg'
},
{
name: 'Miriam Baglioni',
role: 'Researcher / Software & Data Engineer / Data quality',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Responsible for the graph enrichment steps not related to mining, and to the production of the graph dumps.',
photo: 'miriam.jpeg'
},
{
name: 'Paolo Manghi',
role: 'Chief Technical Officer',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Responsible for the design and roadmapping of the OpenAIRE infrastructure services, their operation, evolution, and interaction with third-parties.',
photo: 'paolo.png'
},
{
name: 'Sandro La Bruzzo',
role: 'Technical Team',
affiliation: 'Institute of Information Science and Technologies, Italian National Research Council',
country: 'Italy',
responsibilities: 'Responsible for the graph enrichment steps including the generation of DOIBoost.',
photo: 'sandro.jpg'
},
{
name: 'Yannis Foufoulas',
role: 'Software Engineer / Researcher',
affiliation: 'Athena Research Center (ARC)',
country: 'Greece',
responsibilities: 'Implementation of Text and Data Mining (TDM) modules used in the graph Enrichment phase.',
photo: 'yiannis.jpg'
}
]

View File

@ -64,18 +64,13 @@ export class AppComponent implements OnInit, OnDestroy {
{
rootItem: new MenuItem("resources", "Resources", "", "/resources", false, [], null, {}),
items: [
// new MenuItem("api", "API", "", "/resources", false, [], null, {}),
// new MenuItem("schema", "Metadata Schema", "", "/resources", false, [], null, {}, null, "schema"),
// new MenuItem("sources", "Sources", "", "/resources", false, [], null, {}, null, "sources"),
new MenuItem("api", "API", "", "/resources", false, [], null, {}),
new MenuItem("references", "References", "", "/resources/references", false, [], null, {})
]
},
{
rootItem: new MenuItem("contact", "Support", "", "/support", false, [], null, {}),
items: [
// new MenuItem("contact", "Contact", "", "/support", false, [], null, {}),
// new MenuItem("documentation", "Documentation", "", "/support", false, [], null, {}, null, "documentation"),
// new MenuItem("faq", "FAQs", "", "/support", false, [], null, {}, null, "faq"),
]
items: []
}
];
if(!isHome) {

View File

@ -83,9 +83,9 @@
<div class="uk-margin-top">
<div class="target uk-text-center" style="">
<a class="uk-link uk-button uk-text-capitalize uk-text-small"
href="https://subugoe.github.io/scholcomm_analytics/posts/oaire_graph_2020/"
href="https://www.openaire.eu/factsheet-research-graph/view-document"
target="_blank">
How to
Support Material
<icon name="arrow_right" class="space"></icon>
</a>
</div>

View File

@ -51,10 +51,6 @@
animation-duration: 1.5s;
}
.numbers-background {
background: transparent url('assets/graph-assets/home/5.svg') repeat-x center bottom;
}
.fade-out {
visibility: hidden;
opacity: 0;

View File

@ -115,6 +115,24 @@
</div>
</div>
</div>
<div>
Explore
</div>
<div id="cases">
<div class="uk-section uk-container uk-container-large">
<div class="uk-padding-small">
<div class="uk-text-center">
<h2 class="uk-margin-remove-bottom">Use Cases</h2>
<h6 class="uk-margin-small-top">Brief presentations of our success stories</h6>
</div>
<div class="uk-grid uk-child-width-1-3@m uk-child-width-1-1" uk-grid>
<div class="">
</div>
</div>
</div>
</div>
</div>
<div>
<div class="services">
<div class="uk-section uk-container uk-container-large">
@ -285,88 +303,10 @@
<h2 class="uk-text-center">
We believe in <span class="uk-text-bold">Numbers</span>
</h2>
<div class="uk-margin-large-top uk-container uk-margin-bottom uk-text-center">
<div class="uk-grid uk-child-width-1-3@m">
<div *ngIf="fundersSize">
<h3>
<a href="https://explore.openaire.eu/search/find/projects" target="_blank" class="uk-text-bold number">
{{fundersSize.number|number}}<span class="number-size">{{fundersSize.size}}</span>
</a>
</h3>
<span class="uk-text-uppercase uk-text-large">Funders</span>
</div>
<div *ngIf="datasourcesSize">
<h3>
<a href="https://explore.openaire.eu/search/find/dataproviders" target="_blank"
class="uk-text-bold number">
{{datasourcesSize.number|number}}<span class="number-size">{{datasourcesSize.size}}</span>
</a>
</h3>
<span class="uk-text-uppercase uk-text-large">Content providers</span>
</div>
<div *ngIf="projectsSize">
<h3>
<a href="https://explore.openaire.eu/search/find/projects" target="_blank" class="uk-text-bold number">
{{projectsSize.number|number}}<span class="number-size">{{projectsSize.size}}</span>
</a>
</h3>
<span class="uk-text-uppercase uk-text-large">Projects</span>
</div>
</div>
</div>
<div class="numbers-background uk-section">
<div class="uk-container">
<div class="uk-grid uk-margin-auto-left uk-margin-auto-right uk-grid-large" uk-grid>
<div *ngIf="publicationsSize" class="uk-width-1-2@m uk-flex uk-flex-center">
<div class="number-width">
<a href="https://explore.openaire.eu/search/find/research-outcomes?type=publications&qf=false"
target="_blank" class="number uk-text-bold uk-margin-bottom">{{publicationsSize.count|number}} </a>
<div class="uk-text-uppercase uk-flex uk-flex-middle">
<icon name="book" ratio="1.5" [flex]="true" class="uk-margin-right"
customClass="uk-text-secondary"></icon>
<span>publications</span>
</div>
</div>
</div>
<div *ngIf="datasetsSize" class="uk-width-1-2@m uk-flex uk-flex-center">
<div class="number-width">
<a href="https://explore.openaire.eu/search/find/research-outcomes?type=datasets&qf=false"
target="_blank" class="number uk-text-bold uk-margin-bottom">{{datasetsSize.count|number}} </a>
<div class="uk-text-uppercase uk-flex uk-flex-middle">
<icon name="database" ratio="1.5" [flex]="true" class="uk-margin-right"
customClass="uk-text-secondary"></icon>
<span>research data</span>
</div>
</div>
</div>
<div *ngIf="softwareSize" class="uk-width-1-2@m uk-flex uk-flex-center">
<div class="number-width">
<a href="https://explore.openaire.eu/search/find/research-outcomes?type=software&qf=false"
target="_blank" class="number uk-text-bold uk-margin-bottom">{{softwareSize.count|number}} </a>
<div class="uk-text-uppercase uk-flex uk-flex-middle">
<icon name="cog" ratio="1.5" [flex]="true" class="uk-margin-right"
customClass="uk-text-secondary"></icon>
<span>software</span>
</div>
</div>
</div>
<div *ngIf="otherSize" class="uk-width-1-2@m uk-flex uk-flex-center">
<div class="number-width">
<a href="https://explore.openaire.eu/search/find/research-outcomes?type=other&qf=false"
target="_blank" class="number uk-text-bold uk-margin-bottom">{{otherSize.count|number}} </a>
<div class="uk-text-uppercase uk-flex uk-flex-middle">
<icon name="earth" ratio="1.5" [flex]="true" class="uk-margin-right"
customClass="uk-text-secondary"></icon>
<span>other research products</span>
</div>
</div>
</div>
</div>
</div>
<numbers></numbers>
</div>
</div>
</div>
</div>
<div>
<div class="uk-section uk-container">
<div class="uk-padding-small">

View File

@ -27,15 +27,6 @@ import {portals} from "./portals";
})
export class HomeComponent {
public pageTitle = "OpenAIRE - Research Graph";
public publicationsSize: any = null;
public datasetsSize: any = null;
public datasetsLinkedSize: any = null;
public softwareLinkedSize: any = null;
public softwareSize: any = null;
public otherSize: any = null;
public fundersSize: any = null;
public projectsSize: any = null;
public datasourcesSize: any = null;
public portals: any[] = portals;
public state: number = 0;
public properties: EnvProperties = properties;
@ -45,11 +36,6 @@ export class HomeComponent {
constructor(
private route: ActivatedRoute,
private _router: Router,
private _searchResearchResultsService: SearchResearchResultsService,
private _searchDataprovidersService: SearchDataprovidersService,
private _searchProjectsService: SearchProjectsService,
private _searchOrganizationsService: SearchOrganizationsService,
private _refineFieldResultsService: RefineFieldResultsService,
private location: Location, private _piwikService: PiwikService,
private config: ConfigurationService, private _meta: Meta, private _title: Title, private seoService: SEOService
) {
@ -70,7 +56,6 @@ export class HomeComponent {
if (this.properties.enablePiwikTrack && (typeof document !== 'undefined')) {
this.subs.push(this._piwikService.trackView(this.properties, this.pageTitle).subscribe());
}
this.getNumbers();
this.animation();
}
}
@ -105,101 +90,4 @@ export class HomeComponent {
});
this.state = 0;
}
private getNumbers() {
this.subs.push(this._searchResearchResultsService.numOfSearchResults("publication", "", this.properties).subscribe(
data => {
if (data && data > 0) {
this.publicationsSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of publications", err);
}
));
this.subs.push(this._searchResearchResultsService.numOfSearchResults("dataset", "", this.properties).subscribe(
data => {
if (data && data > 0) {
this.datasetsSize = NumberUtils.roundNumber(data);
}
},
err => {
//console.log(err);
this.handleError("Error getting number of research data", err);
}
));
this.subs.push(this._searchResearchResultsService.numOfSearchResultsLinkedToPub("dataset", this.properties).subscribe(
data => {
if (data && data > 0) {
this.datasetsLinkedSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of linkedresearch data", err);
}
));
this.subs.push(this._searchResearchResultsService.numOfSearchResults("software", "", this.properties).subscribe(
data => {
if (data && data > 0) {
this.softwareSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of software data", err);
}
));
this.subs.push(this._searchResearchResultsService.numOfSearchResultsLinkedToPub("software", this.properties).subscribe(
data => {
if (data && data > 0) {
this.softwareLinkedSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of linked software", err);
}
));
this.subs.push(this._searchResearchResultsService.numOfSearchResults("other", "", this.properties).subscribe(
data => {
if (data && data > 0) {
this.otherSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of software data", err);
}
));
this.subs.push(this._refineFieldResultsService.getRefineFieldsResultsByEntityName(["funder"], "project", this.properties).subscribe(
data => {
if (data[0] && data[0] > 0) {
this.projectsSize = NumberUtils.roundNumber(data[0]);
}
if (data[1].length > 0 && data[1][0].filterId == "funder" && data[1][0].values) {
this.fundersSize = NumberUtils.roundNumber(data[1][0].values.length);
}
},
err => {
this.handleError("Error getting 'funder' field results of projects", err);
})
);
this.subs.push(this._searchDataprovidersService.numOfSearchDataproviders("", this.properties).subscribe(
data => {
if (data && data > 0) {
this.datasourcesSize = NumberUtils.roundNumber(data);
}
},
err => {
this.handleError("Error getting number of content providers", err);
}
));
}
private handleError(message: string, error) {
console.error("Home Page: " + message, error);
}
}

View File

@ -25,6 +25,7 @@ import {QuickSelectionsModule} from "../openaireLibrary/searchPages/searchUtils/
import {IconsService} from "../openaireLibrary/utils/icons/icons.service";
import {arrow_right, book, cog, database, earth} from "../openaireLibrary/utils/icons/icons";
import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
import {NumbersModule} from '../openaireLibrary/sharedComponents/numbers/numbers.module';
@NgModule({
imports: [
@ -32,14 +33,12 @@ import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
RouterModule.forChild([{
path: '', component: HomeComponent,
}]),
RefineFieldResultsServiceModule,
DataProvidersServiceModule, SearchResearchResultsServiceModule,
ProjectsServiceModule, OrganizationsServiceModule,
SearchFormModule,
PiwikServiceModule,
HelperModule,
ErrorMessagesModule,
SEOServiceModule, OtherPortalsModule, EntitiesSelectionModule, QuickSelectionsModule, IconsModule
SEOServiceModule, OtherPortalsModule, EntitiesSelectionModule, QuickSelectionsModule, IconsModule, NumbersModule
],
declarations: [
HomeComponent
@ -53,6 +52,6 @@ import {IconsModule} from "../openaireLibrary/utils/icons/icons.module";
})
export class HomeModule {
constructor(private iconsService: IconsService) {
this.iconsService.registerIcons([arrow_right, book, database, cog, earth])
this.iconsService.registerIcons([arrow_right])
}
}

View File

@ -0,0 +1,178 @@
import {Component} from '@angular/core';
import {Breadcrumb} from '../openaireLibrary/utils/breadcrumbs/breadcrumbs.component';
@Component({
selector: 'references',
template: `
<div>
<div class="uk-section">
<div class="uk-margin-large-left uk-margin-medium-bottom">
<breadcrumbs [breadcrumbs]="breadcrumbs"></breadcrumbs>
</div>
<div class="uk-container">
<h2 class="uk-text-center">How to cite the graph</h2>
<div class="uk-padding-small">
<ul class="portal-circle">
<li>If you use one of the <a href="https://zenodo.org/record/4201546" target="_blank">dumps of the OpenAIRE Research Graph</a>,
please cite it following the recommendation that you find on the Zenodo page.
</li>
<li><span class="uk-text-bold">All datasets and software</span> are available in our Zenodo community for the OpenAIRE
Research graph: <a href="https://zenodo.org/communities/openaire-research-graph" target="_blank">https://zenodo.org/communities/openaire-research-graph</a>
</li>
</ul>
</div>
</div>
</div>
<div class="uk-container uk-section">
<h2 class="uk-text-center">References</h2>
<div class="uk-padding-small">
This document gathers the bibliographic references relative to the implementation of the OpenAIRE graph processing pipeline, as
well as the indications on how to cite the graph results.
</div>
</div>
<div class="uk-container uk-section">
<h2 class="uk-text-center">References on the graph pipeline</h2>
<div class="uk-padding-small">
<div class="uk-padding-large uk-padding-remove-horizontal">
<h3 class="portal-color">Aggregation system</h3>
<ul class="portal-circle uk-margin-medium-top">
<li>Manghi, P., Artini, M., Atzori, C., Bardi, A., Mannocci, A., La Bruzzo, S., Candela, L., Castelli, D. and Pagano, P.
(2014), The D-NET software toolkit: A framework for the realization, maintenance, and operation of aggregative
infrastructures, Program: electronic library and information systems, Vol. 48 No. 4, pp. 322-354.
<a href="https://doi.org/10.1108/PROG-08-2013-0045" target="_blank">https://doi.org/10.1108/PROG-08-2013-0045</a>
</li>
<li>
Michele Artini, Claudio Atzori, Alessia Bardi, Sandro La Bruzzo, Paolo Manghi, & Andrea Mannocci. (2016, November 24). The
D-NET software toolkit: dnet-basic-aggregator (Version 1.3.0). Zenodo.
<a href="http://doi.org/10.5281/zenodo.168362" target="_blank">http://doi.org/10.5281/zenodo.168362</a>
</li>
<li>Atzori, C., Bardi, A., Manghi, P., & Mannocci, A. (2017, January). The OpenAIRE workflows for data management. In Italian
Research Conference on Digital Libraries (pp. 95-107). Springer, Cham.
</li>
<li>
Mannocci, A., & Manghi, P. (2016, September). DataQ: a data flow quality monitoring system for aggregative data
infrastructures. In International Conference on Theory and Practice of Digital Libraries (pp. 357-369). Springer, Cham.
</li>
</ul>
</div>
<div class="uk-margin-large-bottom">
<h3 class="portal-color">Deduplication</h3>
<ul class="portal-circle uk-margin-medium-top">
<li>Claudio Atzori, & Paolo Manghi. (2017, February 17). gdup: a big graph entity deduplication system (Version 4.0.5).
Zenodo. <a href="http://doi.org/10.5281/zenodo.4302081" target="_blank">http://doi.org/10.5281/zenodo.4302081</a>,
<a href="https://code-repo.d4science.org/D-Net/dnet-dedup/releases" target="_blank">https://code-repo.d4science.org/D-Net/dnet-dedup/releases</a>
</li>
<li>
Manghi, Paolo, Marko Mikulicic, and Claudio Atzori. "De-duplication of aggregation authority files." International Journal
of Metadata, Semantics and Ontologies 7.2 (2012): 114-130. 10.1504/IJMSO.2012.050014.
</li>
<li>Manghi, P., Atzori, C., De Bonis, M., & Bardi, A. (2020). Entity deduplication in big data graphs for scholarly
communication. Data Technologies and Applications. 10.1108/DTA-09-2019-0163.
</li>
<li>
Atzori, C., Manghi, P., & Bardi, A. (2018, December). GDup: de-duplication of scholarly communication big graphs. In 2018
IEEE/ACM 5th International Conference on Big Data Computing Applications and Technologies (BDCAT) (pp. 142-151). IEEE.
10.1109/BDCAT.2018.00025.
</li>
<li>
Atzori, Claudio. "GDup: an Integrated, Scalable Big Graph Deduplication System." (2016). 10.5281/zenodo.1454880.
</li>
</ul>
</div>
<div class="uk-margin-large-bottom">
<h3 class="portal-color">Mining</h3>
<ul class="portal-circle uk-margin-medium-top">
<li>M. Kobos, Ł. Bolikowski, M. Horst, P. Manghi, N. Manola, J. Schirrwagen, Information inference in scholarly communication
infrastructures: the OpenAIREplus project experience, Procedia Computer Science 38, 92-99,
<a href="http://dx.doi.org/10.1016/j.procs.2014.10.016" target="_blank">http://dx.doi.org/10.1016/j.procs.2014.10.016</a>
</li>
<li>
Tkaczyk, D., Szostek, P., Fedoryszak, M. et al. CERMINE: automatic extraction of structured metadata from scientific
literature. IJDAR 18, 317335 (2015). <a href="https://doi.org/10.1007/s10032-015-0249-8" target="_blank">https://doi.org/10.1007/s10032-015-0249-8</a>
</li>
<li>Giannakopoulos T., Foufoulas Y., Dimitropoulos H., Manola N. (2019) Interactive Text Analysis and Information
Extraction. In: Manghi P., Candela L., Silvello G. (eds) Digital Libraries: Supporting Open Science. IRCDL 2019.
Communications in Computer and Information Science, vol 988. Springer, Cham.
<a href="https://doi.org/10.1007/978-3-030-11226-4_27" target="_blank">https://doi.org/10.1007/978-3-030-11226-4_27</a>
</li>
<li>
Foufoulas Y., Stamatogiannakis L., Dimitropoulos H., Ioannidis Y. (2017) High-Pass Text Filtering for Citation Matching.
In: Kamps J., Tsakonas G., Manolopoulos Y., Iliadis L., Karydis I. (eds) Research and Advanced Technology for Digital
Libraries. TPDL 2017. Lecture Notes in Computer Science, vol 10450. Springer, Cham.
<a href="https://doi.org/10.1007/978-3-319-67008-9_28" target="_blank">https://doi.org/10.1007/978-3-319-67008-9_28</a>
</li>
<li>
T. Giannakopoulos, I. Foufoulas, E. Stamatogiannakis, H. Dimitropoulos, N. Manola, and Y. Ioannidis. 2015. Visual-Based
Classification of Figures from Scientific Literature. In Proceedings of the 24th International Conference on World Wide Web
(WWW '15 Companion). Association for Computing Machinery, New York, NY, USA, 10591060.
DOI: <a href="https://doi.org/10.1145/2740908.2742024" target="_blank">https://doi.org/10.1145/2740908.2742024</a>
</li>
<li>Giannakopoulos, T., Foufoulas, I., Stamatogiannakis, E., Dimitropoulos, H., Manola, N., & Ioannidis, Y. (2014).
Discovering and Visualizing Interdisciplinary Content Classes in Scientific Publications. D-Lib Mag., Volume 20, Number
11/12. <a href="https://doi.org/10.1045/november14-giannakopoulos" target="_blank">https://doi.org/10.1045/november14-giannakopoulos</a>
</li>
<li>Giannakopoulos T., Stamatogiannakis E., Foufoulas I., Dimitropoulos H., Manola N., Ioannidis Y. (2014) Content
Visualization of Scientific Corpora Using an Extensible Relational Database Implementation. In: Bolikowski Ł., Casarosa V.,
Goodale P., Houssos N., Manghi P., Schirrwagen J. (eds) Theory and Practice of Digital Libraries -- TPDL 2013 Selected
Workshops. TPDL 2013. Communications in Computer and Information Science, vol 416. Springer, Cham.
<a href="https://doi.org/10.1007/978-3-319-08425-1_10" target="_blank">https://doi.org/10.1007/978-3-319-08425-1_10</a>,
also in: <a
href="https://books.google.gr/books?hl=en&lr=&id=EVMqBAAAQBAJ&oi=fnd&pg=PA101&dq=info:SJ9N406OYsEJ:scholar.google.com&ots=z-eB4d3wkv&sig=rEc-V3CBqcOD6gja6p5wLVHq4jc&redir_esc=y#v=onepage&q&f=false"
target="_blank">Google Books</a>
</li>
<li>Giannakopoulos T., Dimitropoulos H., Metaxas O., Manola N., Ioannidis Y. (2013) Supervised Content Visualization of
Scientific Publications: A Case Study on the ArXiv Dataset. In: Kłopotek M.A., Koronacki J., Marciniak M., Mykowiecka A.,
Wierzchoń S.T. (eds) Language Processing and Intelligent Information Systems. IIS 2013. Lecture Notes in Computer Science,
vol 7912. Springer, Berlin, Heidelberg. <a href="https://doi.org/10.1007/978-3-642-38634-3_23" target="_blank">https://doi.org/10.1007/978-3-642-38634-3_23</a>
</li>
<li>Y. Chronis, Y. Foufoulas, V. Nikolopoulos, A. Papadopoulos, L. Stamatogiannakis, C. Svingos, Y. E. Ioannidis, "A
Relational Approach to Complex Dataflows", in Workshop Proceedings of the EDBT/ICDT 2016 (MEDAL 2016) Joint Conference
(March 15, 2016, Bordeaux, France) on CEUR-WS.org (ISSN 1613-0073): <a href="http://ceur-ws.org/Vol-1558/paper45.pdf"
target="_blank">http://ceur-ws.org/Vol-1558/paper45.pdf</a>
</li>
</ul>
</div>
<div class="uk-margin-large-bottom">
<h3 class="portal-color">Portals</h3>
<ul class="portal-circle uk-margin-medium-top">
<li>Baglioni M. et al. (2019) The OpenAIRE Research Community Dashboard: On Blending Scientific Workflows and Scientific
Publishing. In: Doucet A., Isaac A., Golub K., Aalberg T., Jatowt A. (eds) Digital Libraries for Open Knowledge. TPDL 2019.
Lecture Notes in Computer Science, vol 11799. Springer, Cham.
<a href="http://doi-org-443.webvpn.fjmu.edu.cn/10.1007/978-3-030-30760-8_5" target="_blank">http://doi-org-443.webvpn.fjmu.edu.cn/10.1007/978-3-030-30760-8_5</a>
(Open Access version at
<a href="https://doi.org/10.5281/zenodo.3467104" target="_blank">https://doi.org/10.5281/zenodo.3467104</a>).
</li>
</ul>
</div>
<div class="uk-margin-large-bottom">
<h3 class="portal-color">Broker Service</h3>
<ul class="portal-circle uk-margin-medium-top">
<li>Artini, M., Atzori, C., Bardi, A., La Bruzzo, S., Manghi, P., & Mannocci, A. (2015). The OpenAIRE literature broker
service for institutional repositories. D-Lib Magazine, 21(11/12), 1.
</li>
<li>Manghi, P., Atzori, C., Bardi, A., La Bruzzo, S., & Artini, M. (2016, February). Realizing a Scalable and History-Aware
Literature Broker Service for OpenAIRE. In Italian Research Conference on Digital Libraries (pp. 92-103). Springer, Cham.
</li>
</ul>
</div>
</div>
</div>
</div>
`,
styleUrls: ['references.component.css']
})
export class ReferencesComponent {
public breadcrumbs: Breadcrumb[] = [
{
name: 'home',
route: '/'
},
{
name: 'Resources',
route: '/resources'
},
{
name: 'References'
}
];
}

View File

@ -17,11 +17,11 @@
<ul class="portal-circle">
<li>
How to access the Graph (SLA and Terms of Use)<br>
<a href="http://develop.openaire.eu/" target="_blank">http://develop.openaire.eu/</a>
<a href="https://develop.openaire.eu" target="_blank">https://develop.openaire.eu</a>
</li>
<li>
Metadata (APIs and dumps)<br>
<a href="http://develop.openaire.eu/graph-dumps.html" target="_blank">http://develop.openaire.eu/graph-dumps.html</a>
<a href="https://develop.openaire.eu/graph-dumps.html" target="_blank">https://develop.openaire.eu/graph-dumps.html</a>
</li>
</ul>
</div>

View File

@ -5,17 +5,19 @@ import {RouterModule} from "@angular/router";
import {ResourcesComponent} from "./resources.component";
import {BreadcrumbsModule} from "../openaireLibrary/utils/breadcrumbs/breadcrumbs.module";
import {Schema2jsonldModule} from '../openaireLibrary/sharedComponents/schema2jsonld/schema2jsonld.module';
import {ReferencesComponent} from './references.component';
@NgModule({
imports: [
CommonModule,
RouterModule.forChild([{
path: '', component: ResourcesComponent
}]),
RouterModule.forChild([
{path: '', component: ResourcesComponent},
{path: 'references', component: ReferencesComponent}
]),
BreadcrumbsModule,
Schema2jsonldModule
],
declarations: [ResourcesComponent],
declarations: [ResourcesComponent, ReferencesComponent],
exports: [ResourcesComponent]
})
export class ResourcesModule {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 531 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 737 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 451 KiB

After

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 443 KiB

After

Width:  |  Height:  |  Size: 671 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 KiB

After

Width:  |  Height:  |  Size: 649 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 453 KiB

After

Width:  |  Height:  |  Size: 668 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 674 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

After

Width:  |  Height:  |  Size: 664 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 413 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 504 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View File

@ -6,7 +6,13 @@
<url>
<loc>https://graph.openaire.eu/about</loc>
</url>
<url>
<loc>https://graph.openaire.eu/about/team</loc>
</url>
<url>
<loc>https://graph.openaire.eu/resources</loc>
</url>
<url>
<loc>https://graph.openaire.eu/resources/references</loc>
</url>
</urlset>

View File

@ -21,7 +21,7 @@
main {
min-height: calc(100vh - 100px);
line-height: 30px;
line-height: 25px;
letter-spacing: 0.16px;
font-size: 16px;
font-family: "Open Sans", sans-serif;
@ -39,7 +39,7 @@ main {
/* Unordered list*/
ul.portal-circle {
list-style: none;
padding-left: 20px;
padding-left: 30px;
}
ul.portal-circle li {
@ -146,6 +146,10 @@ ul.uk-text-small.portal-circle li:before {
border-color: #eeeeee !important;
}
.numbers-background {
background: transparent url('assets/graph-assets/home/5.svg') repeat-x center bottom;
}
.number {
color: #1a1a1a;
}