diff --git a/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/bioschema/model/BioSchemaProtein.java b/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/bioschema/model/BioSchemaProtein.java
index 8b71520b9..4e99f19d7 100644
--- a/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/bioschema/model/BioSchemaProtein.java
+++ b/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/bioschema/model/BioSchemaProtein.java
@@ -57,7 +57,7 @@ public class BioSchemaProtein {
@JsonProperty("https://schema.org/sameAs")
private List sameAs;
@JsonProperty("https://schema.org/hasSequenceAnnotation")
- private Link hasSequenceAnnotation;
+ private List hasSequenceAnnotation;
@JsonProperty("https://schema.org/additionalProperty")
private List sequenceAnnotation;
@JsonProperty("https://schema.org/value")
@@ -202,11 +202,11 @@ public class BioSchemaProtein {
this.mainEntityOfPage = mainEntityOfPage;
}
- public Link getHasSequenceAnnotation() {
+ public List getHasSequenceAnnotation() {
return hasSequenceAnnotation;
}
- public void setHasSequenceAnnotation(Link hasSequenceAnnotation) {
+ public void setHasSequenceAnnotation(List hasSequenceAnnotation) {
this.hasSequenceAnnotation = hasSequenceAnnotation;
}
diff --git a/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/utils/RDFConverter.java b/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/utils/RDFConverter.java
index f284d49df..86b9ffd86 100644
--- a/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/utils/RDFConverter.java
+++ b/dhp-workflows/dhp-rdfconverter/src/main/java/eu/dnetlib/dhp/rdfconverter/utils/RDFConverter.java
@@ -173,6 +173,8 @@ public class RDFConverter {
log.error("Identifier not found", e.getMessage());
}
+ mainTitles.add(" " + entry.getName() + " ");
+
dataciteProtein.setId(proteinId);
bioschemaProteins.put(entry.getId(), entry);
dataciteProteins.add(dataciteProtein);
@@ -211,8 +213,22 @@ public class RDFConverter {
.stream()
.filter(bioProtein -> Objects.nonNull(bioProtein.getValue().getHasSequenceAnnotation()))
.forEach(bioProtein -> {
- sequenceAnnotations
- .get(bioProtein.getValue().getHasSequenceAnnotation().getId())
+ List seqAnnIds = bioProtein
+ .getValue()
+ .getHasSequenceAnnotation()
+ .stream()
+ .map(s -> s.getId())
+ .collect(Collectors.toList());
+ List propertyIds = sequenceAnnotations
+ .entrySet()
+ .stream()
+ .filter(s -> seqAnnIds.contains(s.getKey()))
+ .flatMap(s -> {
+ return s.getValue().stream();
+ })
+ .collect(Collectors.toList());
+
+ propertyIds
.stream()
.map(propertyId -> propertyValues.get(propertyId.getId()))
.filter(term -> Objects.nonNull(term))