openaire-library/utils/entities/resultLandingInfo.ts

82 lines
2.1 KiB
TypeScript

import {
Author,
HostedByCollectedFrom,
Journal,
Organization,
Project,
RelationResult
} from "../result-preview/result-preview";
export interface Id {
type: "pmid" | "doi" | "pmc" | "handle" | "openaire";
value: string;
trust: number
}
export interface Reference {
name?: string;
ids: Id[];
}
export class ResultLandingInfo {
relcanId;
objIdentifier: string;
// PUBLICATION, DATASET, SOFTWARE, ORP
record;
resultType: "publication"|"dataset"|"other"|"software";
// PUBLICATION, DATASET, SOFTWARE, ORP, DELETED_BY_INFERENCE
title: string;
accessMode: string;
authors: Author[];
date: string;
dateofacceptance: Date;
embargoEndDate: Date;
types: string[];
identifiers: Map<string, string[]>; //key is the classname
languages: string[];
countries: string[];
description: string;
hostedBy_collectedFrom: HostedByCollectedFrom[];
// PUBLICATION, DATASET, SOFTWARE, ORP
fundedByProjects: Project[];
underCurationMessage: boolean;
publisher: string;
journal: Journal;
subjects: string[];
otherSubjects: Map<string, string[]>;
classifiedSubjects: Map<string, string[]>; //<class of subject, subjects>
// percentage is for trust
relatedResearchResults: RelationResult[];
// percentage is for similarity
similarResearchResults: RelationResult[];
//isSupplementedBy
supplementaryResearchResults: RelationResult[];
//isSupplementTo
supplementedByResearchResults: RelationResult[];
contexts: { "labelContext": string, "idContext": string,
"labelCategory": string, "idCategory": string,
"labelConcept": string, "idConcept": string, "inline": boolean }[];
deletedByInferenceIds: string[];
// PUBLICATION, DATASET, ORP
references: Reference[];
// PUBLICATION
bioentities: Map<string, Map<string, string>>; //<site name, <>>
organizations: Organization[];
openCitations: { "url": string, "title": string, "year": string, "doi": string, "authors": string[] }[];
// DATASET
subtitle: string;
// SOFTWARE
programmingLanguages: string[];
}