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))