Compare commits

..

42 Commits

Author SHA1 Message Date
Claudio Atzori 14365d7ea2 [maven-release-plugin] prepare for next development iteration 2024-09-24 11:17:01 +02:00
Claudio Atzori 0b3ae130e2 [maven-release-plugin] prepare release dhp-schemas-8.0.0 2024-09-24 11:16:58 +02:00
Claudio Atzori dc20c3b54c Merge pull request 'raw affiliation string' (#40) from raw_affiliations into master
Reviewed-on: #40
2024-09-24 11:16:33 +02:00
Claudio Atzori f8f5381221 Renamed to 2024-09-24 11:14:00 +02:00
Claudio Atzori 02abe33b46 updated solr.Person model, using string to model the Year field. 2024-09-24 11:03:45 +02:00
Claudio Atzori 8c2665a706 [maven-release-plugin] prepare for next development iteration 2024-07-31 10:28:35 +02:00
Claudio Atzori 06db0239cf [maven-release-plugin] prepare release dhp-schemas-7.0.2 2024-07-31 10:28:32 +02:00
Claudio Atzori fd6ec5e58f Person entity: use int instead of java.time.Year as this is susceptible to errors in spark 2024-07-31 10:27:58 +02:00
Claudio Atzori 9d296a48c6 [maven-release-plugin] prepare for next development iteration 2024-07-29 10:56:20 +02:00
Claudio Atzori fbfc413d85 [maven-release-plugin] prepare release dhp-schemas-7.0.1 2024-07-29 10:56:16 +02:00
Claudio Atzori 40c20d9e33 Merge pull request 'Person entity model refinements' (#39) from person_entity into master
Reviewed-on: #39
2024-07-29 10:55:23 +02:00
Claudio Atzori f6063714cc removed person Pid type, relying on the List of StructuredProperty defined in the common OafEntity superclass 2024-07-29 10:18:49 +02:00
Claudio Atzori 0720af9c2c bumped pom version 2024-07-29 10:15:47 +02:00
Claudio Atzori 3654959f03 adjusting the person record definition 2024-07-29 10:15:12 +02:00
Claudio Atzori 81fda4a9b8 [maven-release-plugin] prepare for next development iteration 2024-07-17 11:52:19 +02:00
Claudio Atzori 1c66476cb9 [maven-release-plugin] prepare release dhp-schemas-7.0.0 2024-07-17 11:52:15 +02:00
Claudio Atzori ec1f471eb1 bumped version to 7.0.0 2024-07-17 11:51:51 +02:00
Claudio Atzori a6bc90b90e Merge pull request 'Person entity' (#37) from person_entity into master
Reviewed-on: #37
2024-07-17 11:50:38 +02:00
Claudio Atzori f4a16cee52 updated changelog 2024-07-17 11:50:27 +02:00
Claudio Atzori 2dae7d8675 Merge branch 'master' into person_entity 2024-07-17 11:46:38 +02:00
Claudio Atzori 1e8e4c9bec bumped version 2024-07-17 11:45:45 +02:00
Claudio Atzori 59b942b2a8 minor 2024-07-17 11:44:54 +02:00
Miriam Baglioni 50d4db8b04 [Person] removed the extentions to Oaf for atomicAction serializer and deserializer 2024-07-03 15:44:35 +02:00
Miriam Baglioni bcbcba399d [Person] - 2024-07-03 14:10:30 +02:00
Claudio Atzori fe961af8c1 updated JSON payloads to consider the ExternalReferences 2024-06-28 12:37:36 +02:00
Claudio Atzori 14fe99d2c5 [maven-release-plugin] prepare for next development iteration 2024-06-25 09:50:41 +02:00
Claudio Atzori 18f82d0a3b [maven-release-plugin] prepare release dhp-schemas-6.1.3 2024-06-25 09:50:37 +02:00
Claudio Atzori d8d0409e4c updated changelog 2024-06-25 09:49:40 +02:00
Claudio Atzori c46c235c83 Merge pull request 'Align Solr JSON records to the explore portal requirements' (#38) from solr_json_model into master
Reviewed-on: #38
2024-06-24 14:51:49 +02:00
Claudio Atzori b03a9f497d cleanup 2024-06-12 16:38:13 +02:00
Claudio Atzori a620d3ff21 added person entity to the Solr record model 2024-06-12 16:37:21 +02:00
Claudio Atzori 7bd21aa475 added Person.originalId 2024-06-12 16:36:48 +02:00
Claudio Atzori 7aed048eec added person entity to the internal graph model 2024-06-12 16:03:51 +02:00
Claudio Atzori 642f535498 Merge branch 'org_type' 2024-06-12 15:06:53 +02:00
Claudio Atzori eb7dcf6f11 OrganizationType must be public 2024-06-12 15:06:30 +02:00
Giambattista Bloisi 2dc10b8afe Change visibility of Organization.OrganizationType from package level to public to allow users call getOrganizationType and setOrganizationType 2024-06-11 18:11:12 +02:00
Claudio Atzori 9eaad49a2e Merge pull request 'Organizations types' (#32) from org_type into master
Reviewed-on: #32
2024-05-22 11:44:44 +02:00
Claudio Atzori 055afdc5fc Merge branch 'master' into org_type 2024-05-22 11:33:07 +02:00
Claudio Atzori cf3135ac5a [maven-release-plugin] prepare for next development iteration 2024-05-14 12:32:12 +02:00
Claudio Atzori 2502d512d1 [maven-release-plugin] prepare release dhp-schemas-6.1.2 2024-05-14 12:32:05 +02:00
Claudio Atzori 3531ac7f66 Merge pull request 'project.oamandatepublications' (#33) from solr_json_model into master
Reviewed-on: #33
2024-05-14 12:27:21 +02:00
Claudio Atzori 97df2e3c48 adding typology to organizations 2024-05-09 12:16:29 +02:00
40 changed files with 479 additions and 102 deletions

View File

@ -4,10 +4,13 @@
| **Version** | **Changes** | **Readiness** | | **Version** | **Changes** | **Readiness** |
|-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------| |-------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|
| 6.1.1 | [Graph model] </br> <ul><li>Introduced constants used in the DOIBoost dismission.</li></ul> | beta | | 8.0.0 | [Graph model] </br> <ul><li>Renamed `Result.author.affiliation` to `rawAffiliationString`. Updated Solr JSON payload model classes</li></ul> | beta |
| 6.1.0 | [Graph model] </br> <ul><li>Introduced model classes to provide a JSON representation of records embedding information from the related entities.</li></ul> | beta | | 7.0.0 | [Graph model] </br> <ul><li>Introduced Person entity and its relations: authorship, coauthorship, affiliation</li><li>Updated Solr JSON payload model classes</li></ul> | production |
| 5.17.3 | [Graph model] </br> <ul><li>added result level textual field to store the transformative agreement information.</li></ul> | beta | | 6.1.3 | [Graph model] </br> <ul><li>Updated Solr JSON payload model classes</li></ul> | production |
| 4.17.3 | [Graph model] </br> <ul><li>moved context at the level of the entity. </li></ul> | beta | | 6.1.1 | [Graph model] </br> <ul><li>Introduced constants used in the DOIBoost dismission.</li></ul> | production |
| 6.1.0 | [Graph model] </br> <ul><li>Introduced model classes to provide a JSON representation of records embedding information from the related entities.</li></ul> | production |
| 5.17.3 | [Graph model] </br> <ul><li>added result level textual field to store the transformative agreement information.</li></ul> | production |
| 4.17.3 | [Graph model] </br> <ul><li>moved context at the level of the entity. </li></ul> | production |
| 4.17.2 | [Graph model] </br> <ul><li>added InstaceTypeMapping field on the instance level.</li><li>new result level fields to support the activities in the Irish tender `isGreen`, `openAccessColor`, `isInDiamondJournal`, `publiclyFunded`</li><ul> | production | | 4.17.2 | [Graph model] </br> <ul><li>added InstaceTypeMapping field on the instance level.</li><li>new result level fields to support the activities in the Irish tender `isGreen`, `openAccessColor`, `isInDiamondJournal`, `publiclyFunded`</li><ul> | production |
| 3.17.1 | [Graph model] </br> <ul><li>added fulltext field on the instance level.</li><li>added extra organization specific PID types</li><ul> | production | | 3.17.1 | [Graph model] </br> <ul><li>added fulltext field on the instance level.</li><li>added extra organization specific PID types</li><ul> | production |
| 3.16.0 | [Graph model] </br> <ul><li>added entity level measures.</li><ul> | production | | 3.16.0 | [Graph model] </br> <ul><li>added entity level measures.</li><ul> | production |

View File

@ -5,7 +5,7 @@
<groupId>eu.dnetlib.dhp</groupId> <groupId>eu.dnetlib.dhp</groupId>
<artifactId>dhp-schemas</artifactId> <artifactId>dhp-schemas</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>6.1.3-SNAPSHOT</version> <version>8.0.1-SNAPSHOT</version>
<licenses> <licenses>
<license> <license>

View File

@ -25,7 +25,7 @@ public class AtomicActionDeserializer<T extends Oaf> extends JsonDeserializer<At
try { try {
final Class<T> clazz = (Class<T>) Class.forName(classTag); final Class<T> clazz = (Class<T>) Class.forName(classTag);
final T oaf = mapper.readValue(payload.toString(), clazz); final T oaf = mapper.readValue(payload.toString(), clazz);
return new AtomicAction(clazz, oaf); return new AtomicAction<>(clazz, oaf);
} catch (ClassNotFoundException e) { } catch (ClassNotFoundException e) {
throw new IOException(e); throw new IOException(e);
} }

View File

@ -1,11 +1,9 @@
package eu.dnetlib.dhp.schema.common; package eu.dnetlib.dhp.schema.common;
import eu.dnetlib.dhp.schema.oaf.OafEntity;
/** Actual entity types in the Graph */ /** Actual entity types in the Graph */
public enum EntityType { public enum EntityType {
publication, dataset, otherresearchproduct, software, datasource, organization, project; publication, dataset, otherresearchproduct, software, datasource, organization, project, person;
/** /**
* Resolves the EntityType, given the relative class name * Resolves the EntityType, given the relative class name
@ -14,7 +12,7 @@ public enum EntityType {
* @param <T> actual OafEntity subclass * @param <T> actual OafEntity subclass
* @return the EntityType associated to the given class * @return the EntityType associated to the given class
*/ */
public static <T extends OafEntity> EntityType fromClass(Class<T> clazz) { public static <T> EntityType fromClass(Class<T> clazz) {
return EntityType.valueOf(clazz.getSimpleName().toLowerCase()); return EntityType.valueOf(clazz.getSimpleName().toLowerCase());
} }

View File

@ -3,5 +3,5 @@ package eu.dnetlib.dhp.schema.common;
/** Main entity types in the Graph */ /** Main entity types in the Graph */
public enum MainEntityType { public enum MainEntityType {
result, datasource, organization, project result, datasource, organization, project, person
} }

View File

@ -190,6 +190,23 @@ public class ModelConstants {
public static final String UNKNOWN = "UNKNOWN"; public static final String UNKNOWN = "UNKNOWN";
public static final String NOT_AVAILABLE = "not available"; public static final String NOT_AVAILABLE = "not available";
public static final String RESULT_PERSON_RELTYPE = "resultPerson"; // relType
public static final String RESULT_PERSON_SUBRELTYPE = "authorship"; // subreltype
public static final String RESULT_PERSON_HASAUTHORED = "hasAuthored"; // relclass
public static final String PERSON_PERSON_RELTYPE = "personPerson"; // relType
public static final String PERSON_PERSON_SUBRELTYPE = "coAuthorship"; // subreltype
public static final String PERSON_PERSON_HASCOAUTHORED = "hasCoAuthor"; // relclass
public static final String PROJECT_PERSON_RELTYPE = "projectPerson"; // relType
public static final String PROJECT_PERSON_SUBRELTYPE = "participation"; // subreltype
public static final String PROJECT_PERSON_PARTICIPATES = "participatesToProject"; // relclass
// author affiliations are intended to be characterised by a start and an end date
public static final String ORG_PERSON_RELTYPE = "organizationPerson"; // relType
public static final String ORG_PERSON_SUBRELTYPE = "affiliation"; // subreltype
public static final String ORG_PERSON_PARTICIPATES = "isAffiliatedWith"; // relclass
public static final Qualifier PUBLICATION_DEFAULT_RESULTTYPE = qualifier( public static final Qualifier PUBLICATION_DEFAULT_RESULTTYPE = qualifier(
PUBLICATION_RESULTTYPE_CLASSID, PUBLICATION_RESULTTYPE_CLASSID, PUBLICATION_RESULTTYPE_CLASSID, PUBLICATION_RESULTTYPE_CLASSID,
DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES); DNET_RESULT_TYPOLOGIES, DNET_RESULT_TYPOLOGIES);

View File

@ -36,6 +36,7 @@ public class ModelSupport {
entityMapping.put(EntityType.datasource, MainEntityType.datasource); entityMapping.put(EntityType.datasource, MainEntityType.datasource);
entityMapping.put(EntityType.organization, MainEntityType.organization); entityMapping.put(EntityType.organization, MainEntityType.organization);
entityMapping.put(EntityType.project, MainEntityType.project); entityMapping.put(EntityType.project, MainEntityType.project);
entityMapping.put(EntityType.person, MainEntityType.person);
} }
/** /**
@ -51,6 +52,7 @@ public class ModelSupport {
entityTypes.put(EntityType.otherresearchproduct, OtherResearchProduct.class); entityTypes.put(EntityType.otherresearchproduct, OtherResearchProduct.class);
entityTypes.put(EntityType.software, Software.class); entityTypes.put(EntityType.software, Software.class);
entityTypes.put(EntityType.publication, Publication.class); entityTypes.put(EntityType.publication, Publication.class);
entityTypes.put(EntityType.person, Person.class);
} }
public static final Map<String, Class> oafTypes = Maps.newHashMap(); public static final Map<String, Class> oafTypes = Maps.newHashMap();
@ -64,6 +66,7 @@ public class ModelSupport {
oafTypes.put("software", Software.class); oafTypes.put("software", Software.class);
oafTypes.put("publication", Publication.class); oafTypes.put("publication", Publication.class);
oafTypes.put("relation", Relation.class); oafTypes.put("relation", Relation.class);
oafTypes.put("person", Person.class);
} }
public static final Map<Class, String> idPrefixMap = Maps.newHashMap(); public static final Map<Class, String> idPrefixMap = Maps.newHashMap();
@ -76,6 +79,7 @@ public class ModelSupport {
idPrefixMap.put(OtherResearchProduct.class, "50"); idPrefixMap.put(OtherResearchProduct.class, "50");
idPrefixMap.put(Software.class, "50"); idPrefixMap.put(Software.class, "50");
idPrefixMap.put(Publication.class, "50"); idPrefixMap.put(Publication.class, "50");
idPrefixMap.put(Person.class, "30");
} }
public static final Map<String, String> entityIdPrefix = Maps.newHashMap(); public static final Map<String, String> entityIdPrefix = Maps.newHashMap();
@ -85,6 +89,7 @@ public class ModelSupport {
entityIdPrefix.put("organization", "20"); entityIdPrefix.put("organization", "20");
entityIdPrefix.put("project", "40"); entityIdPrefix.put("project", "40");
entityIdPrefix.put("result", "50"); entityIdPrefix.put("result", "50");
entityIdPrefix.put("person", "30");
} }
public static final Map<String, String> idPrefixEntity = Maps.newHashMap(); public static final Map<String, String> idPrefixEntity = Maps.newHashMap();
@ -92,6 +97,7 @@ public class ModelSupport {
static { static {
idPrefixEntity.put("10", "datasource"); idPrefixEntity.put("10", "datasource");
idPrefixEntity.put("20", "organization"); idPrefixEntity.put("20", "organization");
idPrefixEntity.put("30", "person");
idPrefixEntity.put("40", "project"); idPrefixEntity.put("40", "project");
idPrefixEntity.put("50", "result"); idPrefixEntity.put("50", "result");
} }
@ -206,7 +212,7 @@ public class ModelSupport {
private ModelSupport() { private ModelSupport() {
} }
public static <E extends OafEntity> String getIdPrefix(Class<E> clazz) { public static <E> String getIdPrefix(Class<E> clazz) {
return idPrefixMap.get(clazz); return idPrefixMap.get(clazz);
} }

View File

@ -1,15 +1,13 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.util.Objects;
import java.util.Optional;
/** /**
* This class models the access rights of research products. * This class models the access rights of research products.
*/ */
public class AccessRight extends Qualifier { public class AccessRight extends Qualifier {
private static final long serialVersionUID = -8945177777173510134L; private static final long serialVersionUID = -8945177777173510134L;
private OpenAccessRoute openAccessRoute; private OpenAccessRoute openAccessRoute;
public OpenAccessRoute getOpenAccessRoute() { public OpenAccessRoute getOpenAccessRoute() {

View File

@ -7,6 +7,7 @@ import java.util.*;
public class Author implements Serializable { public class Author implements Serializable {
private static final long serialVersionUID = 1625492739044457437L; private static final long serialVersionUID = 1625492739044457437L;
private String fullname; private String fullname;
private String name; private String name;
@ -18,7 +19,7 @@ public class Author implements Serializable {
private List<StructuredProperty> pid; private List<StructuredProperty> pid;
private List<Field<String>> affiliation; private List<String> rawAffiliationString;
public String getFullname() { public String getFullname() {
return fullname; return fullname;
@ -60,12 +61,11 @@ public class Author implements Serializable {
this.pid = pid; this.pid = pid;
} }
public List<Field<String>> getAffiliation() { public List<String> getRawAffiliationString() {
return affiliation; return rawAffiliationString;
} }
public void setAffiliation(List<Field<String>> affiliation) { public void setRawAffiliationString(List<String> rawAffiliationString) {
this.affiliation = affiliation; this.rawAffiliationString = rawAffiliationString;
} }
} }

View File

@ -3,7 +3,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class Context implements Serializable { public class Context implements Serializable {

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class DataInfo implements Serializable { public class DataInfo implements Serializable {

View File

@ -1,12 +1,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
/** /**
* Describes a reference to the EOSC Interoperability Framework (IF) Guidelines * Describes a reference to the EOSC Interoperability Framework (IF) Guidelines

View File

@ -3,7 +3,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Objects;
public class ExternalReference implements Serializable { public class ExternalReference implements Serializable {

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class ExtraInfo implements Serializable { public class ExtraInfo implements Serializable {

View File

@ -2,11 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
public class GeoLocation implements Serializable { public class GeoLocation implements Serializable {

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
/** /**
* To store information about the classification for the project. The classification depends on the programme. For example * To store information about the classification for the project. The classification depends on the programme. For example

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
/** /**
* To store information about the ec programme for the project. It has the following parameters: * To store information about the ec programme for the project. It has the following parameters:

View File

@ -3,9 +3,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import java.util.Optional;
import com.google.common.base.Joiner;
public class Instance implements Serializable { public class Instance implements Serializable {

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class Journal implements Serializable { public class Journal implements Serializable {

View File

@ -2,13 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
import java.util.Optional;
import org.apache.commons.lang3.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.google.common.base.Joiner;
public class KeyValue implements Serializable { public class KeyValue implements Serializable {

View File

@ -4,8 +4,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import com.google.common.base.Objects;
/** /**
* Represent a measure, must be further described by a system available resource providing name and descriptions. * Represent a measure, must be further described by a system available resource providing name and descriptions.
*/ */

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class OAIProvenance implements Serializable { public class OAIProvenance implements Serializable {

View File

@ -2,12 +2,7 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public abstract class Oaf implements Serializable { public abstract class Oaf implements Serializable {

View File

@ -3,7 +3,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
public abstract class OafEntity extends Oaf implements Serializable { public abstract class OafEntity extends Oaf implements Serializable {

View File

@ -6,6 +6,10 @@ import java.util.List;
public class Organization extends OafEntity implements Serializable { public class Organization extends OafEntity implements Serializable {
public enum OrganizationType {
Archive, Company, Education, Facility, Government, Healthcare, Nonprofit, Other, Unknown
}
private static final long serialVersionUID = -9048723860770504113L; private static final long serialVersionUID = -9048723860770504113L;
private Field<String> legalshortname; private Field<String> legalshortname;
@ -40,6 +44,8 @@ public class Organization extends OafEntity implements Serializable {
private Qualifier country; private Qualifier country;
private OrganizationType organizationType;
public Field<String> getLegalshortname() { public Field<String> getLegalshortname() {
return legalshortname; return legalshortname;
} }
@ -169,4 +175,11 @@ public class Organization extends OafEntity implements Serializable {
this.country = country; this.country = country;
} }
public OrganizationType getOrganizationType() {
return organizationType;
}
public void setOrganizationType(OrganizationType organizationType) {
this.organizationType = organizationType;
}
} }

View File

@ -2,7 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
public class OriginDescription implements Serializable { public class OriginDescription implements Serializable {

View File

@ -0,0 +1,72 @@
package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable;
import java.util.List;
public class Person extends OafEntity implements Serializable {
private static final long serialVersionUID = -2366333710489222265L;
private String givenName;
private String familyName;
private List<String> alternativeNames;
private String biography;
private List<PersonTopic> subject;
private Boolean consent;
public Person() {
}
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
public List<String> getAlternativeNames() {
return alternativeNames;
}
public void setAlternativeNames(List<String> alternativeNames) {
this.alternativeNames = alternativeNames;
}
public String getBiography() {
return biography;
}
public void setBiography(String biography) {
this.biography = biography;
}
public List<PersonTopic> getSubject() {
return subject;
}
public void setSubject(List<PersonTopic> subject) {
this.subject = subject;
}
public Boolean getConsent() {
return consent;
}
public void setConsent(Boolean consent) {
this.consent = consent;
}
}

View File

@ -0,0 +1,51 @@
package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable;
public class PersonTopic implements Serializable {
private static final long serialVersionUID = 102011326860637199L;
private String value;
private String schema;
private int fromYear;
private int toYear;
public PersonTopic() {
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public int getFromYear() {
return fromYear;
}
public void setFromYear(int fromYear) {
this.fromYear = fromYear;
}
public int getToYear() {
return toYear;
}
public void setToYear(int toYear) {
this.toYear = toYear;
}
}

View File

@ -4,8 +4,6 @@ package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.List; import java.util.List;
import org.apache.commons.lang3.StringUtils;
public class Project extends OafEntity implements Serializable { public class Project extends OafEntity implements Serializable {
private static final long serialVersionUID = 5783959097903529424L; private static final long serialVersionUID = 5783959097903529424L;

View File

@ -2,12 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
import java.util.Optional;
import org.apache.commons.lang3.builder.EqualsBuilder;
import com.google.common.base.Joiner;
public class Qualifier implements Serializable { public class Qualifier implements Serializable {
private static final long serialVersionUID = 6632548656644563076L; private static final long serialVersionUID = 6632548656644563076L;

View File

@ -1,15 +1,10 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import static com.google.common.base.Preconditions.checkArgument;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import eu.dnetlib.dhp.schema.common.ModelSupport;
/** /**
* Relation models any edge between two nodes in the OpenAIRE graph. It has a source id and a target id pointing to * Relation models any edge between two nodes in the OpenAIRE graph. It has a source id and a target id pointing to
* graph node identifiers and it is further characterised by the semantic of the link through the fields relType, * graph node identifiers and it is further characterised by the semantic of the link through the fields relType,

View File

@ -2,12 +2,6 @@
package eu.dnetlib.dhp.schema.oaf; package eu.dnetlib.dhp.schema.oaf;
import java.io.Serializable; import java.io.Serializable;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.apache.commons.lang3.StringUtils;
public class StructuredProperty implements Serializable { public class StructuredProperty implements Serializable {

View File

@ -0,0 +1,100 @@
package eu.dnetlib.dhp.schema.solr;
import java.io.Serializable;
import java.util.List;
public class ExternalReference implements Serializable {
private static final long serialVersionUID = 781487309068059180L;
// source
private String sitename;
// title
private String label;
// alternative labels
private List<String> alternateLabel;
// text()
private String url;
// type
private CodeLabel qualifier;
// site internal identifier
private String refidentifier;
// maps the oaf:reference/@query attribute
private String query;
public static ExternalReference newInstance(String sitename, String label, List<String> alternateLabel, String url, CodeLabel qualifier, String refidentifier, String query) {
final ExternalReference e = new ExternalReference();
e.setSitename(sitename);
e.setLabel(label);
e.setAlternateLabel(alternateLabel);
e.setUrl(url);
e.setQualifier(qualifier);
e.setRefidentifier(refidentifier);
e.setQuery(query);
return e;
}
public String getSitename() {
return sitename;
}
public void setSitename(String sitename) {
this.sitename = sitename;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public List<String> getAlternateLabel() {
return alternateLabel;
}
public void setAlternateLabel(List<String> alternateLabel) {
this.alternateLabel = alternateLabel;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public CodeLabel getQualifier() {
return qualifier;
}
public void setQualifier(CodeLabel qualifier) {
this.qualifier = qualifier;
}
public String getRefidentifier() {
return refidentifier;
}
public void setRefidentifier(String refidentifier) {
this.refidentifier = refidentifier;
}
public String getQuery() {
return query;
}
public void setQuery(String query) {
this.query = query;
}
}

View File

@ -1,10 +0,0 @@
package eu.dnetlib.dhp.schema.solr;
import java.io.Serializable;
public class ExtraInfo implements Serializable {
private static final long serialVersionUID = -6627854860189757709L;
//TODO define me!
}

View File

@ -0,0 +1,113 @@
package eu.dnetlib.dhp.schema.solr;
import java.io.Serializable;
import java.util.List;
public class Person implements Serializable {
private static final long serialVersionUID = 3923041787040187202L;
private String givenName;
private String familyName;
private List<String> alternativeNames;
private String biography;
private List<PersonTopic> subject;
/**
* The Measures.
*/
private List<Measure> indicator;
/**
* The Context.
*/
private List<Context> context;
private Boolean consent;
public static Person newInstance(String givenName, String familyName, List<String> alternativeNames, String biography, List<PersonTopic> subject, List<Measure> indicator, List<Context> context, Boolean consent) {
final Person p = new Person();
p.setGivenName(givenName);
p.setFamilyName(familyName);
p.setAlternativeNames(alternativeNames);
p.setBiography(biography);
p.setSubject(subject);
p.setIndicator(indicator);
p.setContext(context);
p.setConsent(consent);
return p;
}
public Person() {
}
public String getGivenName() {
return givenName;
}
public void setGivenName(String givenName) {
this.givenName = givenName;
}
public String getFamilyName() {
return familyName;
}
public void setFamilyName(String familyName) {
this.familyName = familyName;
}
public List<String> getAlternativeNames() {
return alternativeNames;
}
public void setAlternativeNames(List<String> alternativeNames) {
this.alternativeNames = alternativeNames;
}
public String getBiography() {
return biography;
}
public void setBiography(String biography) {
this.biography = biography;
}
public List<PersonTopic> getSubject() {
return subject;
}
public void setSubject(List<PersonTopic> subject) {
this.subject = subject;
}
public List<Measure> getIndicator() {
return indicator;
}
public void setIndicator(List<Measure> indicator) {
this.indicator = indicator;
}
public List<Context> getContext() {
return context;
}
public void setContext(List<Context> context) {
this.context = context;
}
public Boolean getConsent() {
return consent;
}
public void setConsent(Boolean consent) {
this.consent = consent;
}
}

View File

@ -0,0 +1,61 @@
package eu.dnetlib.dhp.schema.solr;
import java.io.Serializable;
import java.time.Year;
public class PersonTopic implements Serializable {
private static final long serialVersionUID = 6866697695308782412L;
private String value;
private String schema;
private String fromYear;
private String toYear;
public static PersonTopic newInstance(String value, String schema, String fromYear, String toYear) {
final PersonTopic personTopic = new PersonTopic();
personTopic.setValue(value);
personTopic.setSchema(schema);
personTopic.setFromYear(fromYear);
personTopic.setToYear(toYear);
return personTopic;
}
public PersonTopic() {
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public String getFromYear() {
return fromYear;
}
public void setFromYear(String fromYear) {
this.fromYear = fromYear;
}
public String getToYear() {
return toYear;
}
public void setToYear(String toYear) {
this.toYear = toYear;
}
}

View File

@ -9,6 +9,7 @@ public enum RecordType implements Serializable {
software, software,
datasource, datasource,
organization, organization,
project; project,
person;
} }

View File

@ -155,6 +155,8 @@ public class Result implements Serializable {
private String transformativeAgreement; private String transformativeAgreement;
private List<ExternalReference> externalReference;
/** /**
* Each instance is one specific materialisation or version of the result. For example, you can have one result with * Each instance is one specific materialisation or version of the result. For example, you can have one result with
* three instance: one is the pre-print, one is the post-print, one is te published version * three instance: one is the pre-print, one is the post-print, one is te published version
@ -417,6 +419,14 @@ public class Result implements Serializable {
this.transformativeAgreement = transformativeAgreement; this.transformativeAgreement = transformativeAgreement;
} }
public List<ExternalReference> getExternalReference() {
return externalReference;
}
public void setExternalReference(List<ExternalReference> externalReference) {
this.externalReference = externalReference;
}
public List<Instance> getInstance() { public List<Instance> getInstance() {
return instance; return instance;
} }

View File

@ -20,8 +20,6 @@ public class SolrRecord implements Serializable {
private List<Measure> measures; private List<Measure> measures;
private List<ExtraInfo> extraInfo;
private Result result; private Result result;
private Datasource datasource; private Datasource datasource;
@ -30,6 +28,8 @@ public class SolrRecord implements Serializable {
private Organization organization; private Organization organization;
private Person person;
private List<RelatedRecord> links; private List<RelatedRecord> links;
public SolrRecordHeader getHeader() { public SolrRecordHeader getHeader() {
@ -72,14 +72,6 @@ public class SolrRecord implements Serializable {
this.measures = measures; this.measures = measures;
} }
public List<ExtraInfo> getExtraInfo() {
return extraInfo;
}
public void setExtraInfo(List<ExtraInfo> extraInfo) {
this.extraInfo = extraInfo;
}
public Result getResult() { public Result getResult() {
return result; return result;
} }
@ -112,6 +104,14 @@ public class SolrRecord implements Serializable {
this.organization = organization; this.organization = organization;
} }
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public List<RelatedRecord> getLinks() { public List<RelatedRecord> getLinks() {
return links; return links;
} }

View File

@ -1,11 +1,12 @@
package eu.dnetlib.dhp.schema.solr; package eu.dnetlib.dhp.schema.solr;
import com.fasterxml.jackson.databind.ObjectMapper; import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import java.io.IOException; import java.io.IOException;
import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test;
import com.fasterxml.jackson.databind.ObjectMapper;
public class TestJsonSerialization { public class TestJsonSerialization {