From 0b9abd577f029ff8bdd7065b3538c7808f59db85 Mon Sep 17 00:00:00 2001 From: Stig Norland Date: Mon, 21 Oct 2024 11:53:00 +0200 Subject: [PATCH 1/2] SCIENTIFIC_VALUE_OF_CHILD -> SCIENTIFIC_VALUE_OF_PARENT (#605) --- .../java/no/unit/nva/search/resource/ResourceParameter.java | 2 +- search-commons/src/test/resources/resource_urls.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/search-commons/src/main/java/no/unit/nva/search/resource/ResourceParameter.java b/search-commons/src/main/java/no/unit/nva/search/resource/ResourceParameter.java index 1284afa24..d3c3cf45e 100644 --- a/search-commons/src/main/java/no/unit/nva/search/resource/ResourceParameter.java +++ b/search-commons/src/main/java/no/unit/nva/search/resource/ResourceParameter.java @@ -225,7 +225,7 @@ public enum ResourceParameter implements ParameterKey { REFERENCE_EXISTS(CUSTOM, ALL_OF, ENTITY_DESCRIPTION_REFERENCE_CONTEXT_REFERENCE), REFERENCED_ID(FUZZY_KEYWORD, ANY_OF, REFERENCE_PUBLICATION_CONTEXT_ID_KEYWORD), SCIENTIFIC_VALUE(KEYWORD, ANY_OF, SCIENTIFIC_LEVEL_SEARCH_FIELD), - SCIENTIFIC_VALUE_OF_CHILD(HAS_PARTS, ANY_OF, SCIENTIFIC_VALUE), + SCIENTIFIC_VALUE_OF_PARENT(PART_OF, ANY_OF, SCIENTIFIC_VALUE), SCIENTIFIC_INDEX_STATUS(KEYWORD, ANY_OF, SCIENTIFIC_INDEX_STATUS_KEYWORD), SCIENTIFIC_INDEX_STATUS_NOT(KEYWORD, NOT_ANY_OF, SCIENTIFIC_INDEX_STATUS_KEYWORD), SCIENTIFIC_REPORT_PERIOD(NUMBER, BETWEEN, SCIENTIFIC_INDEX_YEAR), diff --git a/search-commons/src/test/resources/resource_urls.json b/search-commons/src/test/resources/resource_urls.json index e85f9a461..ac20e9449 100644 --- a/search-commons/src/test/resources/resource_urls.json +++ b/search-commons/src/test/resources/resource_urls.json @@ -186,7 +186,7 @@ "SCIENTIFIC_REPORT_PERIOD_BEFORE=2019": 1, "SCIENTIFIC_REPORT_PERIOD_SINCE=2019": 3, "SCIENTIFIC_VALUE=LevelOne,LevelTwo": 5, - "SCIENTIFIC_VALUE_OF_CHILD=LevelOne,LevelTwo": 0, + "SCIENTIFIC_VALUE_OF_PARENT=LevelOne,LevelTwo": 2, "SCIENTIFIC_VALUE=LevelTwo": 1, "SCOPUS_IDENTIFIER=123455": 1, "SERIES=B24919B5-5DC4-4787-8D84-7922852we373": 1, From b54355a12ec9dbfa22297dfbcba1658964a4abd2 Mon Sep 17 00:00:00 2001 From: Vestad Date: Mon, 21 Oct 2024 15:13:08 +0200 Subject: [PATCH 2/2] exclude contributors for resource search (#595) * rebase * merge * copy contributorPreview to contributor duing search --- .../nva/search/common/ParameterValidator.java | 5 + .../unit/nva/search/resource/Constants.java | 2 +- .../resource/ContributorCopyMutator.java | 23 + .../search/resource/ResourceSearchQuery.java | 6 +- .../java/no/unit/nva/common/Containers.java | 2 +- .../search/resource/ResourceClientTest.java | 26 +- .../test/resources/resource_datasource.json | 1578 ++++++++++++++--- .../nva/search/SearchResourceAuthHandler.java | 4 +- .../nva/search/SearchResourceHandler.java | 15 +- .../nva/search/SearchResourceHandlerTest.java | 20 + .../resources/sample_opensearch_response.json | 64 +- 11 files changed, 1474 insertions(+), 271 deletions(-) create mode 100644 search-commons/src/main/java/no/unit/nva/search/resource/ContributorCopyMutator.java diff --git a/search-commons/src/main/java/no/unit/nva/search/common/ParameterValidator.java b/search-commons/src/main/java/no/unit/nva/search/common/ParameterValidator.java index f997c274e..5c97e410b 100644 --- a/search-commons/src/main/java/no/unit/nva/search/common/ParameterValidator.java +++ b/search-commons/src/main/java/no/unit/nva/search/common/ParameterValidator.java @@ -271,6 +271,11 @@ public final ParameterValidator withDockerHostUri(URI uri) { return this; } + public final ParameterValidator withAlwaysExcludedFields(List excludedFields) { + searchQuery.setAlwaysExcludedFields(excludedFields); + return this; + } + public final ParameterValidator withAlwaysExcludedFields(String... excludedFields) { searchQuery.setAlwaysExcludedFields(List.of(excludedFields)); return this; diff --git a/search-commons/src/main/java/no/unit/nva/search/resource/Constants.java b/search-commons/src/main/java/no/unit/nva/search/resource/Constants.java index 7a9bb82ba..ebdce31c0 100644 --- a/search-commons/src/main/java/no/unit/nva/search/resource/Constants.java +++ b/search-commons/src/main/java/no/unit/nva/search/resource/Constants.java @@ -95,7 +95,7 @@ public final class Constants { public static final String UNIQUE_PUBLICATIONS = "unique_publications"; public static final String CRISTIN_ORGANIZATION_PATH = "/cristin/organization/"; public static final String CRISTIN_PERSON_PATH = "/cristin/person/"; - public static final String EXCLUDED_FIELDS = "joinField"; + public static final List GLOBAL_EXCLUDED_FIELDS = List.of("joinField"); public static final String DEFAULT_RESOURCE_SORT_FIELDS = RELEVANCE_KEY_NAME + COMMA + IDENTIFIER; public static final String IDENTIFIER_KEYWORD = jsonPath(IDENTIFIER, KEYWORD); diff --git a/search-commons/src/main/java/no/unit/nva/search/resource/ContributorCopyMutator.java b/search-commons/src/main/java/no/unit/nva/search/resource/ContributorCopyMutator.java new file mode 100644 index 000000000..97fecaa15 --- /dev/null +++ b/search-commons/src/main/java/no/unit/nva/search/resource/ContributorCopyMutator.java @@ -0,0 +1,23 @@ +package no.unit.nva.search.resource; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.node.ObjectNode; + +import no.unit.nva.search.common.records.JsonNodeMutator; + +public class ContributorCopyMutator implements JsonNodeMutator { + + public static final String CONTRIBUTORS_PREVIEW = "contributorsPreview"; + public static final String ENTITY_DESCRIPTION = "entityDescription"; + public static final String CONTRIBUTORS = "contributors"; + + @Override + public JsonNode transform(JsonNode source) { + var contributorsPreview = source.path(ENTITY_DESCRIPTION).path(CONTRIBUTORS_PREVIEW); + if (!contributorsPreview.isMissingNode()) { + var entityDescription = (ObjectNode) source.path(ENTITY_DESCRIPTION); + entityDescription.put(CONTRIBUTORS, contributorsPreview); + } + return source; + } +} diff --git a/search-commons/src/main/java/no/unit/nva/search/resource/ResourceSearchQuery.java b/search-commons/src/main/java/no/unit/nva/search/resource/ResourceSearchQuery.java index b73d5380d..c84779beb 100644 --- a/search-commons/src/main/java/no/unit/nva/search/resource/ResourceSearchQuery.java +++ b/search-commons/src/main/java/no/unit/nva/search/resource/ResourceSearchQuery.java @@ -18,7 +18,7 @@ import static no.unit.nva.search.resource.Constants.CRISTIN_ORGANIZATION_PATH; import static no.unit.nva.search.resource.Constants.CRISTIN_PERSON_PATH; import static no.unit.nva.search.resource.Constants.DEFAULT_RESOURCE_SORT_FIELDS; -import static no.unit.nva.search.resource.Constants.EXCLUDED_FIELDS; +import static no.unit.nva.search.resource.Constants.GLOBAL_EXCLUDED_FIELDS; import static no.unit.nva.search.resource.Constants.IDENTIFIER_KEYWORD; import static no.unit.nva.search.resource.Constants.RESOURCES_AGGREGATIONS; import static no.unit.nva.search.resource.Constants.STATUS_KEYWORD; @@ -81,7 +81,7 @@ */ @SuppressWarnings("PMD.GodClass") public final class ResourceSearchQuery extends SearchQuery { - + private static final String EXCLUDED_RESOURCE_FIELDS = "entityDescription.contributors"; private final ResourceStreamBuilders streamBuilders; private final ResourceAccessFilter filterBuilder; private final Map additionalQueryParameters = new HashMap<>(); @@ -90,7 +90,7 @@ public final class ResourceSearchQuery extends SearchQuery { private ResourceSearchQuery() { super(); assignStatusImpossibleWhiteList(); - setAlwaysExcludedFields(List.of(EXCLUDED_FIELDS)); + setAlwaysExcludedFields(GLOBAL_EXCLUDED_FIELDS); streamBuilders = new ResourceStreamBuilders(parameters()); filterBuilder = new ResourceAccessFilter(this); } diff --git a/search-commons/src/test/java/no/unit/nva/common/Containers.java b/search-commons/src/test/java/no/unit/nva/common/Containers.java index ed8b37a37..c10f26c28 100644 --- a/search-commons/src/test/java/no/unit/nva/common/Containers.java +++ b/search-commons/src/test/java/no/unit/nva/common/Containers.java @@ -54,7 +54,7 @@ public class Containers { public static IndexingClient indexingClient; public static void setup() throws IOException, InterruptedException { - container.start(); + container.withEnv("indices.query.bool.max_clause_count", "2048").start(); var restClientBuilder = RestClient.builder(HttpHost.create(container.getHttpHostAddress())); var restHighLevelClientWrapper = new RestHighLevelClientWrapper(restClientBuilder); diff --git a/search-commons/src/test/java/no/unit/nva/search/resource/ResourceClientTest.java b/search-commons/src/test/java/no/unit/nva/search/resource/ResourceClientTest.java index 0e1e14951..c60d897c4 100644 --- a/search-commons/src/test/java/no/unit/nva/search/resource/ResourceClientTest.java +++ b/search-commons/src/test/java/no/unit/nva/search/resource/ResourceClientTest.java @@ -42,7 +42,7 @@ import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED; import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED_METADATA; import static no.unit.nva.search.common.enums.PublicationStatus.UNPUBLISHED; -import static no.unit.nva.search.resource.Constants.EXCLUDED_FIELDS; +import static no.unit.nva.search.resource.Constants.GLOBAL_EXCLUDED_FIELDS; import static no.unit.nva.search.resource.ResourceParameter.AGGREGATION; import static no.unit.nva.search.resource.ResourceParameter.EXCLUDE_SUBUNITS; import static no.unit.nva.search.resource.ResourceParameter.FROM; @@ -870,7 +870,7 @@ void searchWithUriReturnsCsvResponse(URI uri) throws ApiGatewayException { ResourceSearchQuery.builder() .fromTestQueryParameters(queryToMapEntries(uri)) .withRequiredParameters(FROM, SIZE, AGGREGATION) - .withAlwaysExcludedFields(EXCLUDED_FIELDS) + .withAlwaysExcludedFields(GLOBAL_EXCLUDED_FIELDS) .withDockerHostUri(URI.create(container.getHttpHostAddress())) .withMediaType(Words.TEXT_CSV) .build() @@ -1046,6 +1046,28 @@ void shouldReturnResourcesWithSubunitsWhenExcludedSubunitsNotProvided() assertThat(pagedSearchResourceDto.hits(), hasSize(2)); } + @Test + void shouldReturnResourcesWithFieldContributorsPreviewAndNotPreview() + throws BadRequestException { + + var response = + ResourceSearchQuery.builder() + .withRequiredParameters(FROM, SIZE, AGGREGATION) + .withDockerHostUri(URI.create(container.getHttpHostAddress())) + .withAlwaysExcludedFields("entityDescription.contributors") + .build() + .withFilter() + .requiredStatus(PUBLISHED, PUBLISHED_METADATA, DELETED) + .apply() + .doSearch(searchClient); + + var pagedSearchResourceDto = response.toPagedResponse(); + + assertThat( + pagedSearchResourceDto.toJsonString(), containsString("\"contributorsPreview\":")); + assertThat(pagedSearchResourceDto.toJsonString(), not(containsString("\"contributors\":"))); + } + @ParameterizedTest @MethodSource("provideValidPageRanges") void shouldFilterByPageCount(int min, int max, int expectedResultCount) diff --git a/search-commons/src/test/resources/resource_datasource.json b/search-commons/src/test/resources/resource_datasource.json index 567f7ee05..1e8543272 100644 --- a/search-commons/src/test/resources/resource_datasource.json +++ b/search-commons/src/test/resources/resource_datasource.json @@ -69,6 +69,55 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/45220004.0.0.0", + "type": "Organization", + "countryCode": "IQ", + "labels": { + "nn": "Al-Iraqia University", + "nb": "Al-Iraqia University", + "en": "Al-Iraqia University" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.1.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Avdeling for kunde og kommunikasjon", + "nb": "Avdeling for kunde og kommunikasjon", + "en": "The Customer and Communication Department" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/1627.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "en": "Norwegian Defence University College", + "nb": "Forsvarets høgskole" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1136254", + "type": "Identity", + "name": "Kjetil Møkkelgjerd", + "orcId": "https://sandbox.orcid.org/0000-0003-4147-3499", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contributorsCount": 1, "mainTitle": "Kjetils ticket test", "language": "http://lexvo.org/id/iso639-3/nor", "publicationDate": { @@ -392,6 +441,45 @@ "sequence": 2 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "verificationStatus": "NotVerified", + "type": "Identity", + "name": "Angela Repanovici" + }, + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Institutt for historiske og klassiske studier", + "en": "Department of Historical and Classical Studies" + } + } + ], + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Ane Landøy" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + } + ], + "contributorsCount": 2, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "Digital Library Idé in a Collaborative Context: Romania and Norway 2003-2012", "publicationDate": { @@ -541,6 +629,55 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/45220004.0.0.0", + "type": "Organization", + "countryCode": "IQ", + "labels": { + "nn": "Al-Iraqia University", + "nb": "Al-Iraqia University", + "en": "Al-Iraqia University" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.1.1", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Avdeling for kunde og kommunikasjon", + "nb": "Avdeling for kunde og kommunikasjon", + "en": "The Customer and Communication Department" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/1627.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "en": "Norwegian Defence University College", + "nb": "Forsvarets høgskole" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/113", + "type": "Identity", + "name": "Kjetil Møkkelgjerd", + "orcId": "https://sandbox.orcid.org/0000-0003-4147-3499", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contributorsCount": 1, "mainTitle": "Kjetils Idé tickét têst", "abstract": "ønsker deg av hjerte ære berømmelse. Har du en ide om hva du skal gjøre med Kjærringen og eller konå", "language": "http://lexvo.org/id/iso639-3/nor", @@ -907,6 +1044,22 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/11111", + "type": "Identity", + "name": "Dieter Issler" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contributorsCount": 1, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "A Simple Model for the Ide Variability of Release Area Size", "publicationDate": { @@ -1040,6 +1193,22 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/11111", + "type": "Identity", + "name": "Dieter Issler" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contributorsCount": 1, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "Idé Outline of a Simple Model of Mixed Snow Avalanches", "publicationDate": { @@ -1161,6 +1330,22 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/11111", + "type": "Identity", + "name": "Dieter Issler" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contributorsCount": 1, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "«Ide APALI» – Avalanche Probability Along Linear Infrastructure", "publicationDate": { @@ -1392,142 +1577,73 @@ "sequence": 10 } ], - "language": "http://lexvo.org/id/iso639-3/eng", - "mainTitle": "Annual Report 2020", - "publicationDate": { - "type": "PublicationDate", - "day": "19", - "month": "03", - "year": "2021" - }, - "reference": { - "type": "Reference", - "publicationContext": { - "type": "Report", - "publisher": { - "type": "UnconfirmedPublisher", - "name": "NGI – Norges Geotekniske institutt", - "valid": true + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Kate Robinson" }, - "series": { - "type": "UnconfirmedSeries", - "title": "NGI-Rapport" + "role": { + "type": "Creator" }, - "seriesNumber": "20200017-02-R" + "sequence": 1 }, - "publicationInstance": { - "type": "ReportResearch", - "pages": { - "type": "MonographPages", - "illustrated": false, - "pages": "26" - } - } - }, - "tags": [ - "Avalanche-RnD", - "Snøskred-FoU" - ] - }, - "handle": "https://hdl.handle.net/11250/3093125", - "identifier": "018b858395d7-02aaf128-dc44-457e-b471-675a952e8cff", - "modelVersion": "0.20.54", - "nviType": "NonNviCandidate", - "publishedDate": "2023-09-29T12:04:08Z", - "publisher": { - "id": "https://api.dev.nva.aws.unit.no/customer/f415cb81-ac56-4244-b31b-25e43dc3027e", - "type": "Organization" - }, - "resourceOwner": { - "owner": "ngi@7452.0.0.0", - "ownerAffiliation": "https://api.dev.nva.aws.unit.no/cristin/organization/7452.0.0.0" - }, - "status": "PUBLISHED", - "joinField": { - "name": "hasParts" - }, - "subjects": [ - "https://nva.unit.no/hrcs/activity/hrcs_ra_4_2", - "https://nva.unit.no/hrcs/category/hrcs_hc_01blo" - ] - }, - { - "type": "Publication", - "publicationContextUris": [], - "@context": "https://api.dev.nva.aws.unit.no/publication/context", - "id": "https://api.dev.nva.aws.unit.no/publication/018b857af565-f63a53df-6c4f-4051-8686-8547f45ef726", - "filesStatus": "hasPublicFiles", - "associatedArtifacts": [ - { - "type": "PublishedFile", - "administrativeAgreement": false, - "identifier": "ae0539fe-0d67-4854-80bc-b2e906b55ee1", - "license": { - "type": "License", - "value": "https://creativecommons.org/licenses/by-nc-nd/4.0", - "name": "CC-NC-ND", - "labels": { - "en": "Creative Commons - Attribution-NonCommercial-NoDerivs", - "nb": "Creative Commons - Navngivelse-IkkeKommersiell-IngenBearbeidelser" - } + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Zhongqiang Liu" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 }, - "mimeType": "application/pdf", - "name": "20200017-03-R.pdf", - "publishedDate": "2023-10-31T11:25:09.861695292Z", - "publisherAuthority": false, - "size": 5659255, - "visibleForNonOwner": true - } - ], - "createdDate": "2023-09-29T12:00:47Z", - "entityDescription": { - "type": "EntityDescription", - "abstract": "During the second year of the project period 2020-2022 of NGIs research project on snow avalanches, Applied Avalanche Research in Norway (AARN), work was conducted in all three work packages (WP 1 – Avalanche formation and release, WP 2 – Avalanche dynamics, WP 3 – Avalanche interaction) and several cross-package topics. The successful avalanche experiment in April 2021 has given us valuable insight into the dynamics of a large avalanche event and showed that the Ryggfonn test site produces the avalanches that are needed for the AARN research. During 2021, the results of the research activities have been published in peer-reviewed journals, summarised in technical notes, and presented online at national and international conferences and seminars. AARN personnel have been actively engaged in educational outreach activities, including as lecturers and student supervisors.", - "alternativeAbstracts": {}, - "contributorsCount" : 8, - "contributors": [ { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Christian Jaedicke" + "name": "Dieter Issler" }, "role": { "type": "Creator" }, - "sequence": 4 + "sequence": 3 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Sean Salazar" + "name": "Ulrik Domaas" }, "role": { "type": "Creator" }, - "sequence": 5 + "sequence": 4 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Dieter Issler" + "name": "Christian Jaedicke" }, "role": { "type": "Creator" }, - "sequence": 3 + "sequence": 5 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Regula Frauenfelder" + "name": "Sean Salazar" }, "role": { "type": "Creator" @@ -1539,57 +1655,58 @@ "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Peter Gauer" + "name": "Regula Frauenfelder" }, "role": { "type": "Creator" }, - "sequence": 8 + "sequence": 7 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Kate Robinson" + "name": "Graham Gilbert" }, "role": { "type": "Creator" }, - "sequence": 1 + "sequence": 8 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Zhongqiang Liu" + "name": "Peter Gauer" }, "role": { "type": "Creator" }, - "sequence": 2 + "sequence": 9 }, { "type": "Contributor", "correspondingAuthor": false, "identity": { "type": "Identity", - "name": "Graham Gilbert" + "name": "Henrik Langeland" }, "role": { "type": "Creator" }, - "sequence": 7 + "sequence": 10 } ], - "language": "http://lexvo.org/id/iso639-3/nor", - "mainTitle": "Annual Report 2021", + "contributorsCount": 10, + "language": "http://lexvo.org/id/iso639-3/eng", + "mainTitle": "Annual Report 2020", "publicationDate": { "type": "PublicationDate", - "day": "08", - "month": "04", - "year": "2022" + "day": "19", + "month": "03", + "year": "2021" }, "reference": { "type": "Reference", @@ -1604,14 +1721,14 @@ "type": "UnconfirmedSeries", "title": "NGI-Rapport" }, - "seriesNumber": "20200017-03-R" + "seriesNumber": "20200017-02-R" }, "publicationInstance": { "type": "ReportResearch", "pages": { "type": "MonographPages", "illustrated": false, - "pages": "38" + "pages": "26" } } }, @@ -1620,11 +1737,11 @@ "Snøskred-FoU" ] }, - "handle": "https://hdl.handle.net/11250/3093123", - "identifier": "018b857af565-f63a53df-6c4f-4051-8686-8547f45ef726", + "handle": "https://hdl.handle.net/11250/3093125", + "identifier": "018b858395d7-02aaf128-dc44-457e-b471-675a952e8cff", "modelVersion": "0.20.54", "nviType": "NonNviCandidate", - "publishedDate": "2023-09-29T12:00:47Z", + "publishedDate": "2023-09-29T12:04:08Z", "publisher": { "id": "https://api.dev.nva.aws.unit.no/customer/f415cb81-ac56-4244-b31b-25e43dc3027e", "type": "Organization" @@ -1636,83 +1753,781 @@ "status": "PUBLISHED", "joinField": { "name": "hasParts" - } + }, + "subjects": [ + "https://nva.unit.no/hrcs/activity/hrcs_ra_4_2", + "https://nva.unit.no/hrcs/category/hrcs_hc_01blo" + ] }, { "type": "Publication", - "publicationContextUris": [ - "https://api.dev.nva.aws.unit.no/publication-channels-v2/publisher/F20577B8-0947-481B-96D4-F5DE9ECF7C5F/2023" - ], + "publicationContextUris": [], "@context": "https://api.dev.nva.aws.unit.no/publication/context", - "id": "https://api.dev.nva.aws.unit.no/publication/018c443840f1-b14a5947-2eae-4d67-9d95-c2e591059942", + "id": "https://api.dev.nva.aws.unit.no/publication/018b857af565-f63a53df-6c4f-4051-8686-8547f45ef726", + "filesStatus": "hasPublicFiles", "associatedArtifacts": [ { - "type": "UnpublishedFile", + "type": "PublishedFile", "administrativeAgreement": false, - "identifier": "3daa758e-1787-4c1e-979a-dae0944ce326", + "identifier": "ae0539fe-0d67-4854-80bc-b2e906b55ee1", "license": { "type": "License", - "value": "https://creativecommons.org/licenses/by/4.0", - "name": "CC-BY", + "value": "https://creativecommons.org/licenses/by-nc-nd/4.0", + "name": "CC-NC-ND", "labels": { - "en": "Creative Commons - Attribution", - "nb": "Creative Commons - Navngivelse" + "en": "Creative Commons - Attribution-NonCommercial-NoDerivs", + "nb": "Creative Commons - Navngivelse-IkkeKommersiell-IngenBearbeidelser" } }, - "mimeType": "image/jpeg", - "name": "osteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloff.jpg", + "mimeType": "application/pdf", + "name": "20200017-03-R.pdf", + "publishedDate": "2023-10-31T11:25:09.861695292Z", "publisherAuthority": false, - "rightsRetentionStrategy": { - "type": "NullRightsRetentionStrategy" + "size": 5659255, + "visibleForNonOwner": true + } + ], + "createdDate": "2023-09-29T12:00:47Z", + "entityDescription": { + "type": "EntityDescription", + "abstract": "During the second year of the project period 2020-2022 of NGIs research project on snow avalanches, Applied Avalanche Research in Norway (AARN), work was conducted in all three work packages (WP 1 – Avalanche formation and release, WP 2 – Avalanche dynamics, WP 3 – Avalanche interaction) and several cross-package topics. The successful avalanche experiment in April 2021 has given us valuable insight into the dynamics of a large avalanche event and showed that the Ryggfonn test site produces the avalanches that are needed for the AARN research. During 2021, the results of the research activities have been published in peer-reviewed journals, summarised in technical notes, and presented online at national and international conferences and seminars. AARN personnel have been actively engaged in educational outreach activities, including as lecturers and student supervisors.", + "alternativeAbstracts": {}, + "contributorsCount" : 8, + "contributors": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Christian Jaedicke" + }, + "role": { + "type": "Creator" + }, + "sequence": 4 }, - "size": 4656, - "visibleForNonOwner": false - }, - { - "type": "PublishedFile", - "administrativeAgreement": false, - "identifier": "92636ec8-d7f6-4a56-850e-cea1cebf4e31", - "license": { - "type": "License", - "value": "https://rightsstatements.org/page/inc/1.0", - "name": "RS-INC", - "labels": { - "nb": "Rights Statements - Utgivers betingelser", - "en": "Rights Statements - In copyright" - } + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Sean Salazar" + }, + "role": { + "type": "Creator" + }, + "sequence": 5 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Dieter Issler" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Regula Frauenfelder" + }, + "role": { + "type": "Creator" + }, + "sequence": 6 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Peter Gauer" + }, + "role": { + "type": "Creator" + }, + "sequence": 8 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Kate Robinson" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Zhongqiang Liu" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Graham Gilbert" + }, + "role": { + "type": "Creator" + }, + "sequence": 7 + } + ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Christian Jaedicke" + }, + "role": { + "type": "Creator" + }, + "sequence": 4 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Sean Salazar" + }, + "role": { + "type": "Creator" + }, + "sequence": 5 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Dieter Issler" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Regula Frauenfelder" + }, + "role": { + "type": "Creator" + }, + "sequence": 6 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Peter Gauer" + }, + "role": { + "type": "Creator" + }, + "sequence": 8 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Kate Robinson" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Zhongqiang Liu" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Graham Gilbert" + }, + "role": { + "type": "Creator" + }, + "sequence": 7 + } + ], + "contributorsCount": 8, + "language": "http://lexvo.org/id/iso639-3/nor", + "mainTitle": "Annual Report 2021", + "publicationDate": { + "type": "PublicationDate", + "day": "08", + "month": "04", + "year": "2022" + }, + "reference": { + "type": "Reference", + "publicationContext": { + "type": "Report", + "publisher": { + "type": "UnconfirmedPublisher", + "name": "NGI – Norges Geotekniske institutt", + "valid": true + }, + "series": { + "type": "UnconfirmedSeries", + "title": "NGI-Rapport" + }, + "seriesNumber": "20200017-03-R" + }, + "publicationInstance": { + "type": "ReportResearch", + "pages": { + "type": "MonographPages", + "illustrated": false, + "pages": "38" + } + } + }, + "tags": [ + "Avalanche-RnD", + "Snøskred-FoU" + ] + }, + "handle": "https://hdl.handle.net/11250/3093123", + "identifier": "018b857af565-f63a53df-6c4f-4051-8686-8547f45ef726", + "modelVersion": "0.20.54", + "nviType": "NonNviCandidate", + "publishedDate": "2023-09-29T12:00:47Z", + "publisher": { + "id": "https://api.dev.nva.aws.unit.no/customer/f415cb81-ac56-4244-b31b-25e43dc3027e", + "type": "Organization" + }, + "resourceOwner": { + "owner": "ngi@7452.0.0.0", + "ownerAffiliation": "https://api.dev.nva.aws.unit.no/cristin/organization/7452.0.0.0" + }, + "status": "PUBLISHED", + "joinField": { + "name": "hasParts" + } + }, + { + "type": "Publication", + "publicationContextUris": [ + "https://api.dev.nva.aws.unit.no/publication-channels-v2/publisher/F20577B8-0947-481B-96D4-F5DE9ECF7C5F/2023" + ], + "@context": "https://api.dev.nva.aws.unit.no/publication/context", + "id": "https://api.dev.nva.aws.unit.no/publication/018c443840f1-b14a5947-2eae-4d67-9d95-c2e591059942", + "associatedArtifacts": [ + { + "type": "UnpublishedFile", + "administrativeAgreement": false, + "identifier": "3daa758e-1787-4c1e-979a-dae0944ce326", + "license": { + "type": "License", + "value": "https://creativecommons.org/licenses/by/4.0", + "name": "CC-BY", + "labels": { + "en": "Creative Commons - Attribution", + "nb": "Creative Commons - Navngivelse" + } + }, + "mimeType": "image/jpeg", + "name": "osteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloffosteloff.jpg", + "publisherAuthority": false, + "rightsRetentionStrategy": { + "type": "NullRightsRetentionStrategy" + }, + "size": 4656, + "visibleForNonOwner": false + }, + { + "type": "PublishedFile", + "administrativeAgreement": false, + "identifier": "92636ec8-d7f6-4a56-850e-cea1cebf4e31", + "license": { + "type": "License", + "value": "https://rightsstatements.org/page/inc/1.0", + "name": "RS-INC", + "labels": { + "nb": "Rights Statements - Utgivers betingelser", + "en": "Rights Statements - In copyright" + } + }, + "mimeType": "image/jpeg", + "name": "osteloff.jpg", + "publishedDate": "2023-12-07T12:22:20.796870348Z", + "publisherAuthority": false, + "rightsRetentionStrategy": { + "type": "NullRightsRetentionStrategy" + }, + "size": 4656, + "visibleForNonOwner": true + } + ], + "contributorOrganizations": [ + "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/45220004.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/194.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/1990.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/185.90.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/1615.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/217.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/209.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/1627.0.0.0", + "https://api.dev.nva.aws.unit.no/cristin/organization/7501.0.0.0" + ], + "createdDate": "2023-12-07T12:19:46.545708225Z", + "entityDescription": { + "type": "EntityDescription", + "alternativeAbstracts": {}, + "contributorsCount" : 11, + "contributors": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/45220004.0.0.0", + "type": "Organization", + "countryCode": "IQ", + "labels": { + "nn": "Al-Iraqia University", + "nb": "Al-Iraqia University", + "en": "Al-Iraqia University" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Avdeling for kunde og kommunikasjon", + "nb": "Avdeling for kunde og kommunikasjon", + "en": "The Customer and Communication Department" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/1627.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Forsvarets høgskole", + "en": "Norwegian Defence University College" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1136254", + "type": "Identity", + "name": "Kjetil Møkkelgjerd", + "orcId": "https://sandbox.orcid.org/0000-0003-4147-3499", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/209.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Høgskolen i Innlandet", + "en": "Inland Norway University of Applied Sciences" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1136918", + "type": "Identity", + "name": "Isar Kristoffer Buzza", + "orcId": "https://sandbox.orcid.org/0000-0003-4999-4483", + "verificationStatus": "Verified" + }, + "role": { + "type": "Supervisor" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Avdeling for kunde og kommunikasjon", + "nb": "Avdeling for kunde og kommunikasjon", + "en": "The Customer and Communication Department" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/7501.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "RURALIS – Institutt for rural- og regionalforskning", + "en": "RURALIS – Institute for Rural and Regional Research" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/1990.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Diakonhjemmet sykehus", + "en": "Diakonhjemmet Hospital" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1128464", + "type": "Identity", + "name": "Terje Hellesvik", + "orcId": "https://sandbox.orcid.org/0000-0002-8617-3281", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/39463", + "type": "Identity", + "name": "Siri Coldevin Vikan", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 4 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Divisjon for forskings- og kunnskapsressursar", + "nb": "Divisjon forsknings- og kunnskapsressurser", + "en": "The Research and Education Resources Division" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/217.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Universitetet i Stavanger", + "en": "University of Stavanger" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/194.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Noregs teknisk-naturvitskaplege universitet", + "nb": "Norges teknisk-naturvitenskapelige universitet", + "en": "Norwegian University of Science and Technology" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/185.90.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Universitetet i Oslo", + "en": "University of Oslo" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/997998", + "type": "Identity", + "name": "Mona Ullah", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 5 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Divisjon for forskings- og kunnskapsressursar", + "nb": "Divisjon forsknings- og kunnskapsressurser", + "en": "The Research and Education Resources Division" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/1615.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Høyskolen Kristiania", + "en": "Kristiania University College" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1136806", + "type": "Identity", + "name": "Ketil Aasarød", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 6 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Divisjon for forskings- og kunnskapsressursar", + "nb": "Divisjon forsknings- og kunnskapsressurser", + "en": "The Research and Education Resources Division" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Unit – Direktoratet for IKT og fellestenester i høgare utdanning og forsking", + "nb": "Unit – Direktoratet for IKT og fellestjenester i høyere utdanning og forskning", + "en": "Unit – The Norwegian Directorate for ICT and Joint Services in Higher Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1306838", + "type": "Identity", + "name": "Anette Olli Siiri", + "orcId": "https://sandbox.orcid.org/0009-0004-4447-9305", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 7 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/217.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Universitetet i Stavanger", + "en": "University of Stavanger" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/42557", + "type": "Identity", + "name": "Jan E. Garshol", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 8 + }, + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Unit – Direktoratet for IKT og fellestenester i høgare utdanning og forsking", + "nb": "Unit – Direktoratet for IKT og fellestjenester i høyere utdanning og forskning", + "en": "Unit – The Norwegian Directorate for ICT and Joint Services in Higher Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/854279", + "type": "Identity", + "name": "Tor Arne Torgersen", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 9 }, - "mimeType": "image/jpeg", - "name": "osteloff.jpg", - "publishedDate": "2023-12-07T12:22:20.796870348Z", - "publisherAuthority": false, - "rightsRetentionStrategy": { - "type": "NullRightsRetentionStrategy" + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/860951", + "type": "Identity", + "name": "Stig Norland", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 10 }, - "size": 4656, - "visibleForNonOwner": true - } - ], - "contributorOrganizations": [ - "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/20754.6.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/45220004.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/194.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/1990.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/185.90.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/1615.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/217.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/209.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/1627.0.0.0", - "https://api.dev.nva.aws.unit.no/cristin/organization/7501.0.0.0" - ], - "createdDate": "2023-12-07T12:19:46.545708225Z", - "entityDescription": { - "type": "EntityDescription", - "alternativeAbstracts": {}, - "contributorsCount" : 11, - "contributors": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", + "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/194.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Noregs teknisk-naturvitskaplege universitet", + "nb": "Norges teknisk-naturvitenskapelige universitet", + "en": "Norwegian University of Science and Technology" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/34322", + "type": "Identity", + "name": "Torbjørn Kvåle", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 11 + } + ], + "contributorsPreview": [ { "type": "Contributor", "affiliations": [ @@ -2083,43 +2898,9 @@ "type": "Creator" }, "sequence": 10 - }, - { - "type": "Contributor", - "affiliations": [ - { - "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0", - "type": "Organization", - "countryCode": "NO", - "labels": { - "nb": "Sikt – Kunnskapssektorens tjenesteleverandør", - "en": "Sikt - Norwegian Agency for Shared Services in Education and Research" - } - }, - { - "id": "https://api.dev.nva.aws.unit.no/cristin/organization/194.0.0.0", - "type": "Organization", - "countryCode": "NO", - "labels": { - "nn": "Noregs teknisk-naturvitskaplege universitet", - "nb": "Norges teknisk-naturvitenskapelige universitet", - "en": "Norwegian University of Science and Technology" - } - } - ], - "correspondingAuthor": false, - "identity": { - "id": "https://api.dev.nva.aws.unit.no/cristin/person/34322", - "type": "Identity", - "name": "Torbjørn Kvåle", - "verificationStatus": "Verified" - }, - "role": { - "type": "Creator" - }, - "sequence": 11 } ], + "contibutorsCount": 11, "mainTitle": "Kjetils masteroppgave", "publicationDate": { "type": "PublicationDate", @@ -2371,6 +3152,21 @@ "sequence": 1 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Peter Gauer" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + } + ], + "contibutorsCount": 1, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "CPT 3 – Quantitative risk assessment: Remarks on the uncertainty in the delimitation of hazard zones based on historical observations", "publicationDate": { @@ -2453,24 +3249,140 @@ "nb": "Rights Statements - Utgivers betingelser" } }, - "mimeType": "application/pdf", - "name": "20200017-01-R.pdf", - "publishedDate": "2023-10-31T11:25:47.865702950Z", - "publisherAuthority": false, - "size": 1234363, - "visibleForNonOwner": true - } - ], - "createdDate": "2023-09-29T11:49:09Z", - "contributorOrganizations": [ - "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0" - ], - "entityDescription": { - "type": "EntityDescription", - "abstract": "Snow avalanches are a significant natural hazard and common phenomenon in Norway. Each year, avalanches result in fatalities, evacuations, and interruptions or damage to infrastructure networks such as roads, railways, and electrical transmission lines. Persistent avalanche hazard in steep terrain is a major factor considered during land-use planning and development. During the snow season, daily or weekly variations in the avalanche danger identified in regional and applied bulletins influence the operation of transportation networks. Applied research on avalanches and their societal impacts has been conducted at the Norwegian Geotechnical Institute (NGI) since 1973. This research has been funded in part by an annual grant from the Norwegian parliament, administered by the Norwegian Water Resources and Energy Directorate (NVE – Norges vassdrags- og energi-direktorat). Recent research activities have improved our understanding of avalanche formation, movement, and impacts. Enhanced knowledge of the individual processes leading to avalanche initiation, avalanche dynamics, and avalanche impacts has been applied to developing tools to help predict avalanche occurrence, runout distance, and impact pressures. While much has been accomplished within the avalanche research community in recent years, many key questions remain. This project plan: (1) presents the research goals for the 2020-2022 period, (2) outlines the projects organization – including potential for external collaboration, and (3) presents the work-package structure and specific research tasks to be undertaken by the applied avalanche research group at NGI over the next three years.", - "alternativeAbstracts": {}, - "contributorsCount" : 7, - "contributors": [ + "mimeType": "application/pdf", + "name": "20200017-01-R.pdf", + "publishedDate": "2023-10-31T11:25:47.865702950Z", + "publisherAuthority": false, + "size": 1234363, + "visibleForNonOwner": true + } + ], + "createdDate": "2023-09-29T11:49:09Z", + "contributorOrganizations": [ + "https://api.dev.nva.aws.unit.no/cristin/organization/20754.0.0.0" + ], + "entityDescription": { + "type": "EntityDescription", + "abstract": "Snow avalanches are a significant natural hazard and common phenomenon in Norway. Each year, avalanches result in fatalities, evacuations, and interruptions or damage to infrastructure networks such as roads, railways, and electrical transmission lines. Persistent avalanche hazard in steep terrain is a major factor considered during land-use planning and development. During the snow season, daily or weekly variations in the avalanche danger identified in regional and applied bulletins influence the operation of transportation networks. Applied research on avalanches and their societal impacts has been conducted at the Norwegian Geotechnical Institute (NGI) since 1973. This research has been funded in part by an annual grant from the Norwegian parliament, administered by the Norwegian Water Resources and Energy Directorate (NVE – Norges vassdrags- og energi-direktorat). Recent research activities have improved our understanding of avalanche formation, movement, and impacts. Enhanced knowledge of the individual processes leading to avalanche initiation, avalanche dynamics, and avalanche impacts has been applied to developing tools to help predict avalanche occurrence, runout distance, and impact pressures. While much has been accomplished within the avalanche research community in recent years, many key questions remain. This project plan: (1) presents the research goals for the 2020-2022 period, (2) outlines the projects organization – including potential for external collaboration, and (3) presents the work-package structure and specific research tasks to be undertaken by the applied avalanche research group at NGI over the next three years.", + "alternativeAbstracts": {}, + "contributorsCount" : 7, + "contributors": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Divisjon for forskings- og kunnskapsressursar", + "nb": "Divisjon forsknings- og kunnskapsressurser", + "en": "The Research and Education Resources Division" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Unit – Direktoratet for IKT og fellestenester i høgare utdanning og forsking", + "nb": "Unit – Direktoratet for IKT og fellestjenester i høyere utdanning og forskning", + "en": "Unit – The Norwegian Directorate for ICT and Joint Services in Higher Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1306838", + "type": "Identity", + "name": "Anette Olli Siiri", + "orcId": "https://sandbox.orcid.org/0009-0004-4447-9305", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 7 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Regula Frauenfelder", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 5 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Kjersti Gisnås", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Peter Gauer", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 6 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Dieter Issler", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Christian Jaedicke", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Sean Salazar" + }, + "role": { + "type": "Creator" + }, + "sequence": 4 + } + ], + "contributorsPreview": [ { "type": "Contributor", "affiliations": [ @@ -2586,6 +3498,7 @@ "sequence": 4 } ], + "contributorsCount": 7, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "Research Plan 2020–2022", "publicationDate": { @@ -2676,7 +3589,34 @@ "type": "EntityDescription", "abstract": "NGI is operating the avalanche test site at Ryggfonn in Stryn municipality, Vestland county, western Norway (61.969°N, 7.275°E) since early 1980s. In addition to the field work and data collection in frame work of WP2, necessary repairs and updating of the data acquisition system at the Ryggfonn avalanche test site were carried out under this task. This is to ensure that the site is ready for the winter season 2020/2021.", "alternativeAbstracts": {}, - "contributorsCount" : 2, + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Peter Gauer", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Henrik Langeland", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + } + ], "contributors": [ { "type": "Contributor", @@ -2705,6 +3645,7 @@ "sequence": 2 } ], + "contributorsCount": 2, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "WP 2 – Full-scale experiments at Ryggfonn Ryggfonn avalanche observations 2019/2020", "publicationDate": { @@ -2862,6 +3803,59 @@ "sequence": 4 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Sondre Gjengedal", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Pål Drevland Jakobsen", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Amund Bruland", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Eivind Grøv" + }, + "role": { + "type": "Creator" + }, + "sequence": 4 + } + ], "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "Validity of the NTNU Prediction Model for D&B Tunnelling", "publicationDate": { @@ -2883,6 +3877,7 @@ } } }, + "contributorsCount": 4, "handle": "https://hdl.handle.net/11250/3097894", "identifier": "018b857d48b0-cbcc81bf-0feb-4058-bf0a-8254b02b4cbd", "modelVersion": "0.20.54", @@ -3271,6 +4266,85 @@ "sequence": 2 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "affiliations": [ + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20754.2.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Divisjon for forskings- og kunnskapsressursar", + "nb": "Divisjon forsknings- og kunnskapsressurser", + "en": "The Research and Education Resources Division" + } + }, + { + "id": "https://api.dev.nva.aws.unit.no/cristin/organization/20202.0.0.0", + "type": "Organization", + "countryCode": "NO", + "labels": { + "nn": "Unit – Direktoratet for IKT og fellestenester i høgare utdanning og forsking", + "nb": "Unit – Direktoratet for IKT og fellestjenester i høyere utdanning og forskning", + "en": "Unit – The Norwegian Directorate for ICT and Joint Services in Higher Education and Research" + } + } + ], + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/1306838", + "type": "Identity", + "name": "Anette Olli Siiri", + "orcId": "https://sandbox.orcid.org/0009-0004-4447-9305", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 7 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Mats Johan Kahlström", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Eivind Stein", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Jenny Langford", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + } + ], + "contributorsCount": 4, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "Time series modelling: applications for groundwater control in urban tunnelling", "publicationDate": { @@ -3634,6 +4708,50 @@ "sequence": 3 } ], + "contributorsPreview": [ + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/326210", + "type": "Identity", + "name": "Knut Johannessen Ims", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 1 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "id": "https://api.dev.nva.aws.unit.no/cristin/person/326249", + "type": "Identity", + "name": "Lars Jacob Tynes Pedersen", + "verificationStatus": "Verified" + }, + "role": { + "type": "Creator" + }, + "sequence": 2 + }, + { + "type": "Contributor", + "correspondingAuthor": false, + "identity": { + "type": "Identity", + "name": "Søren Wenstøp", + "verificationStatus": "NotVerified" + }, + "role": { + "type": "Creator" + }, + "sequence": 3 + } + ], + "contributorsCount": 3, "language": "http://lexvo.org/id/iso639-3/eng", "mainTitle": "The Solution: Business Ethics! But what was the problem?", "publicationDate": { diff --git a/search-handlers/src/main/java/no/unit/nva/search/SearchResourceAuthHandler.java b/search-handlers/src/main/java/no/unit/nva/search/SearchResourceAuthHandler.java index fcad560fd..4e551a15c 100644 --- a/search-handlers/src/main/java/no/unit/nva/search/SearchResourceAuthHandler.java +++ b/search-handlers/src/main/java/no/unit/nva/search/SearchResourceAuthHandler.java @@ -5,7 +5,7 @@ import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED; import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED_METADATA; import static no.unit.nva.search.common.enums.PublicationStatus.UNPUBLISHED; -import static no.unit.nva.search.resource.Constants.EXCLUDED_FIELDS; +import static no.unit.nva.search.resource.Constants.GLOBAL_EXCLUDED_FIELDS; import static no.unit.nva.search.resource.ResourceClient.defaultClient; import static no.unit.nva.search.resource.ResourceParameter.AGGREGATION; import static no.unit.nva.search.resource.ResourceParameter.FROM; @@ -67,7 +67,7 @@ protected String processInput(Void input, RequestInfo requestInfo, Context conte return ResourceSearchQuery.builder() .fromRequestInfo(requestInfo) .withRequiredParameters(FROM, SIZE, AGGREGATION, SORT) - .withAlwaysExcludedFields(EXCLUDED_FIELDS) + .withAlwaysExcludedFields(GLOBAL_EXCLUDED_FIELDS) .validate() .build() .withFilter() diff --git a/search-handlers/src/main/java/no/unit/nva/search/SearchResourceHandler.java b/search-handlers/src/main/java/no/unit/nva/search/SearchResourceHandler.java index aeca37311..57e69ead6 100644 --- a/search-handlers/src/main/java/no/unit/nva/search/SearchResourceHandler.java +++ b/search-handlers/src/main/java/no/unit/nva/search/SearchResourceHandler.java @@ -3,7 +3,7 @@ import static no.unit.nva.constants.Defaults.DEFAULT_RESPONSE_MEDIA_TYPES; import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED; import static no.unit.nva.search.common.enums.PublicationStatus.PUBLISHED_METADATA; -import static no.unit.nva.search.resource.Constants.EXCLUDED_FIELDS; +import static no.unit.nva.search.resource.Constants.GLOBAL_EXCLUDED_FIELDS; import static no.unit.nva.search.resource.ResourceClient.defaultClient; import static no.unit.nva.search.resource.ResourceParameter.AGGREGATION; import static no.unit.nva.search.resource.ResourceParameter.FROM; @@ -13,6 +13,7 @@ import com.amazonaws.services.lambda.runtime.Context; import com.google.common.net.MediaType; +import no.unit.nva.search.resource.ContributorCopyMutator; import no.unit.nva.search.resource.ResourceClient; import no.unit.nva.search.resource.ResourceSearchQuery; @@ -23,7 +24,9 @@ import nva.commons.core.JacocoGenerated; import java.net.HttpURLConnection; +import java.util.Collection; import java.util.List; +import java.util.stream.Stream; /** * Handler for searching resources. @@ -32,6 +35,7 @@ */ public class SearchResourceHandler extends ApiGatewayHandler { + public static final String ENTITY_DESCRIPTION_CONTRIBUTORS = "entityDescription.contributors"; private final ResourceClient opensearchClient; @JacocoGenerated @@ -60,16 +64,23 @@ protected String processInput(Void input, RequestInfo requestInfo, Context conte return ResourceSearchQuery.builder() .fromRequestInfo(requestInfo) .withRequiredParameters(FROM, SIZE, AGGREGATION, SORT) - .withAlwaysExcludedFields(EXCLUDED_FIELDS) + .withAlwaysExcludedFields(getExcludedFields()) .validate() .build() .withFilter() .requiredStatus(PUBLISHED, PUBLISHED_METADATA) .apply() .doSearch(opensearchClient) + .withMutators(new ContributorCopyMutator()) .toString(); } + private List getExcludedFields() { + return Stream.of(GLOBAL_EXCLUDED_FIELDS, List.of(ENTITY_DESCRIPTION_CONTRIBUTORS)) + .flatMap(Collection::stream) + .toList(); + } + @Override protected Integer getSuccessStatusCode(Void input, String output) { return HttpURLConnection.HTTP_OK; diff --git a/search-handlers/src/test/java/no/unit/nva/search/SearchResourceHandlerTest.java b/search-handlers/src/test/java/no/unit/nva/search/SearchResourceHandlerTest.java index 17d312e5e..caa5d15a2 100644 --- a/search-handlers/src/test/java/no/unit/nva/search/SearchResourceHandlerTest.java +++ b/search-handlers/src/test/java/no/unit/nva/search/SearchResourceHandlerTest.java @@ -16,6 +16,7 @@ import static org.hamcrest.core.Is.is; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.mock; @@ -151,6 +152,25 @@ void shouldNotReturnSortedSearchResultsWhenSendingMultipleContributorId() throws assertEquals(HTTP_OK, gatewayResponse.statusCode()); } + @Test + void shouldReturnResultWithEqualContributorAndContributorPreview() throws IOException { + prepareRestHighLevelClientOkResponse(); + + handler.handleRequest(getInputStreamWithMultipleContributorId(), outputStream, contextMock); + + var gatewayResponse = FakeGatewayResponse.of(outputStream); + var actualBody = gatewayResponse.body(); + var firstHit = actualBody.hits().getFirst(); + + assertNotNull(gatewayResponse.headers()); + assertEquals(HTTP_OK, gatewayResponse.statusCode()); + assertFalse(firstHit.path("entityDescription").path("contributors").isMissingNode()); + assertNotNull(firstHit.path("entityDescription").path("contributors").get(0)); + assertEquals( + firstHit.path("entityDescription").path("contributors"), + firstHit.path("entityDescription").path("contributorsPreview")); + } + @Test void shouldReturnSearchResultsWithEmptyHitsWhenQueryResultIsEmpty() throws IOException { prepareRestHighLevelClientEmptyResponse(); diff --git a/search-handlers/src/test/resources/sample_opensearch_response.json b/search-handlers/src/test/resources/sample_opensearch_response.json index 3de724a5b..dfda20428 100644 --- a/search-handlers/src/test/resources/sample_opensearch_response.json +++ b/search-handlers/src/test/resources/sample_opensearch_response.json @@ -24,21 +24,23 @@ "id": "http://localhost/publication/f367b260-c15e-4d0f-b197-e1dc0e9eb0e8", "identifier": "f367b260-c15e-4d0f-b197-e1dc0e9eb0e8", "doi": "https://doi.org/10.1016/j.is.2016.09.004", - "contributors": [ - { - "name": "Gkorgkas,Orestis Stylianos", - "id": "1582627888604" - }, - { - "name": "Vlachou, Akrivi" - }, - { - "name": "Doulkeridis, Christos" - }, - { - "name": "Nørvåg, Kjetil" - } - ], + "entityDescription": { + "contributorsPreview": [ + { + "name": "Gkorgkas,Orestis Stylianos", + "id": "1582627888604" + }, + { + "name": "Vlachou, Akrivi" + }, + { + "name": "Doulkeridis, Christos" + }, + { + "name": "Nørvåg, Kjetil" + } + ] + }, "title": "Exploratory product search using top-k join queries", "description": "the description", "owner": "og@unit.no", @@ -63,21 +65,23 @@ "id": "http://localhost/publication/f367b260-c15e-4d0f-b197-e1dc0e9eb0e8", "identifier": "f367b260-c15e-4d0f-b197-e1dc0e9eb0e8", "doi": "https://doi.org/10.1016/j.is.2016.09.004", - "contributors": [ - { - "name": "Gkorgkas,Orestis Stylianos", - "id": "1582627888604" - }, - { - "name": "Vlachou, Akrivi" - }, - { - "name": "Doulkeridis, Christos" - }, - { - "name": "Nørvåg, Kjetil" - } - ], + "entityDescription": { + "contributors": [ + { + "name": "Gkorgkas,Orestis Stylianos", + "id": "1582627888604" + }, + { + "name": "Vlachou, Akrivi" + }, + { + "name": "Doulkeridis, Christos" + }, + { + "name": "Nørvåg, Kjetil" + } + ] + }, "title": "Exploratory product search using top-k join queries", "description": "the description", "owner": "og@unit.no",