diff --git a/portal-2/src/app/app.routing.ts b/portal-2/src/app/app.routing.ts index 0e876523..f9304ed5 100644 --- a/portal-2/src/app/app.routing.ts +++ b/portal-2/src/app/app.routing.ts @@ -19,7 +19,7 @@ import { SearchProjectsComponent } from './searchPages/searchProjects.component' import { SearchDatasetsComponent } from './searchPages/searchDatasets.component'; import { SearchOrganizationsComponent } from './searchPages/searchOrganizations.component'; import { SearchPeopleComponent } from './searchPages/searchPeople.component'; -import { AdvancedSearchPublicationsComponent } from './searchPages/advancedSearchPublications.component'; +import { AdvancedSearchPublicationsComponent } from './searchPages/advanced/advancedSearchPublications.component'; import { DepositComponent } from './deposit/deposit.component'; import { DepositResultComponent } from './deposit/depositResult.component'; import { ErrorPageComponent } from './error/errorPage.component'; diff --git a/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts b/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts new file mode 100644 index 00000000..f697bc3c --- /dev/null +++ b/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts @@ -0,0 +1,115 @@ +import {Component, Input, ViewChild} from '@angular/core'; +import {Observable} from 'rxjs/Observable'; +import { Router, ActivatedRoute} from '@angular/router'; +import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class'; +import {SearchPublicationsService} from '../../services/searchPublications.service'; +import {SearchResult} from '../../utils/entities/searchResult'; +import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties'; + +import {SearchFields} from '../../utils/properties/searchFields'; + + + +@Component({ + selector: 'advanced-search-publications', + template: ` + + + + ` + }) + /* + [(filters)] = "filters" + [(fields)] = "fields" [(selectedFields)]="selectedFields" + [(quantifiers)]="quantifiers" [(selectedQuantifiers)]="selectedQuantifiers" + [(keywords)] = "keywords" + */ +export class AdvancedSearchPublicationsComponent { + private results =[]; + private filters =[]; + private totalResults:number = 0 ; + private page :number = 1; + private size :number = 10; + public status:number; + private baseUrl: string; + private searchFields:SearchFields = new SearchFields(); + +//"all", "title", "author", "date","project", + private fieldIds: string[] = ["funder","funderlv0","funderlv1","funderlv2","lang","type"]; + +//this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].type + private selectedFields:AdvancedField[] = [new AdvancedField(this.fieldIds[0],this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].name,"keyword","")]; + + + + constructor (private route: ActivatedRoute, private _searchPublicationsService: SearchPublicationsService ) { + + this.results =[]; + var errorCodes:ErrorCodes = new ErrorCodes(); + this.status =errorCodes.LOADING; + this.baseUrl = OpenaireProperties.getLinkToSearchAdvancedPublications(); + + + + } + ngOnInit() { + console.log(this.fieldIds[0]+" "+this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].name); + // console.log(this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].type); + this.sub = this.route.queryParams.subscribe(params => { + let page = (params['page']=== undefined)?1:+params['page']; + // let size = (params['size']=== undefined)?10:+params['size']; + this.page = ( page <= 0 ) ? 1 : page; + // this.size = ( size <= 0 ) ? 10 : size; + //this.keywords = (params['keyword']?params['keyword']:''); + + }); + + //TODO get the rest parameters to create query + } + ngOnDestroy() { + this.sub.unsubscribe(); + } + sub: any; + public getResults(parameters:string, page: number, size: number){ + console.info("Advanced Search Publications: Execute search query "+parameters); + + this._searchPublicationsService.searchPublications(parameters, page, size, 'searchPage').subscribe( + data => { + this.totalResults = data[0]; + console.info("searchPubl total="+this.totalResults); + this.results = data[1]; + var errorCodes:ErrorCodes = new ErrorCodes(); + this.status = errorCodes.DONE; + if(this.totalResults == 0 ){ + this.status = errorCodes.NONE; + } + }, + err => { + console.error(err); + console.info("error"); + //TODO check erros (service not available, bad request) + // if( ){ + // this.status = ErrorCodes.ERROR; + // } + var errorCodes:ErrorCodes = new ErrorCodes(); + this.status = errorCodes.NOT_AVAILABLE; + } + ); + } + private setFilters(){ + //TODO set filters from + } + + private queryChanged($event) { + var parameters = $event.value; + this.getResults(parameters, this.page,this.size); + console.info("queryChanged: Execute search query "+parameters); + + } + + +} diff --git a/portal-2/src/app/searchPages/find/search.component.ts b/portal-2/src/app/searchPages/find/search.component.ts index 426e2a91..a2b8be6e 100644 --- a/portal-2/src/app/searchPages/find/search.component.ts +++ b/portal-2/src/app/searchPages/find/search.component.ts @@ -198,7 +198,7 @@ export class SearchComponent { this.activeTab = "projects"; if(this.reloadProjects) { this.reloadProjects = false; - this.searchProjectsComponent.getResults(this.keyword, 1, 10); + this.searchProjectsComponent.getResults(this.keyword, false, 1, 10); this.linkToSearchProjects = OpenaireProperties.getLinkToSearchProjects() + this.keyword; } } diff --git a/portal-2/src/app/searchPages/search.module.ts b/portal-2/src/app/searchPages/search.module.ts index 3e43b206..9513e514 100644 --- a/portal-2/src/app/searchPages/search.module.ts +++ b/portal-2/src/app/searchPages/search.module.ts @@ -20,7 +20,6 @@ import {SearchResultComponent} from './searchUtils/searchResult.component'; import {SearchFilterComponent} from './searchUtils/searchFilter.component'; import {AdvancedSearchFormComponent} from './searchUtils/advancedSearchForm.component'; import { SearchPublicationsComponent } from './searchPublications.component'; -import { AdvancedSearchPublicationsComponent } from './advancedSearchPublications.component'; import { SearchDataprovidersComponent } from './searchDataproviders.component'; import { SearchProjectsComponent } from './searchProjects.component'; import {SearchDatasetsComponent} from './searchDatasets.component'; @@ -29,7 +28,8 @@ import {SearchPeopleComponent} from './searchPeople.component'; import {SearchComponent} from './find/search.component'; import {SearchCompatibleDataprovidersComponent} from './dataProviders/compatibleDataProviders.component'; - +//Advanced +import { AdvancedSearchPublicationsComponent } from './advanced/advancedSearchPublications.component'; @NgModule({ imports: [ diff --git a/portal-2/src/app/searchPages/searchProjects.component.ts b/portal-2/src/app/searchPages/searchProjects.component.ts index 101fd002..f99f2d37 100644 --- a/portal-2/src/app/searchPages/searchProjects.component.ts +++ b/portal-2/src/app/searchPages/searchProjects.component.ts @@ -62,7 +62,7 @@ export class SearchProjectsComponent { this.searchPage.getSelectedFiltersFromUrl(params); - this.getResults(this.keyword, this.page, this.size); + this.getResults(this.keyword, true, this.page, this.size); }); } @@ -70,9 +70,16 @@ export class SearchProjectsComponent { this.sub.unsubscribe(); } - public getResults(parameters:string, page: number, size: number){ + public getResults(keyword:string,refine:boolean, page: number, size: number){ + var parameters = ""; + if(keyword.length > 0){ + parameters = "q=" + keyword + "&op=and"; + } + this._getResults(parameters,refine,page,size); + } + private _getResults(parameters:string,refine:boolean, page: number, size: number){ - this._searchProjectsService.searchProjects(parameters+this.searchPage.getRefineFieldsQuery(), page, size, this.searchPage.getFields()).subscribe( + this._searchProjectsService.searchProjects(parameters,(refine)?this.searchPage.getRefineFieldsQuery():null, page, size, this.searchPage.getFields()).subscribe( data => { this.totalResults = data[0]; console.info("search Projects: [Parameters:"+parameters+" ] [total results:"+this.totalResults+"]"); @@ -101,7 +108,7 @@ export class SearchProjectsComponent { private queryChanged($event) { this.urlParams = undefined; var parameters = $event.value; - this.getResults(parameters, this.page, this.size); + this._getResults(parameters, true, this.page, this.size); } } diff --git a/portal-2/src/app/searchPages/searchUtils/advancedSearchForm.component.ts b/portal-2/src/app/searchPages/searchUtils/advancedSearchForm.component.ts index 74f0ecc5..9536c134 100644 --- a/portal-2/src/app/searchPages/searchUtils/advancedSearchForm.component.ts +++ b/portal-2/src/app/searchPages/searchUtils/advancedSearchForm.component.ts @@ -2,151 +2,102 @@ import {Component, Input, Output, EventEmitter} from '@angular/core'; import {Observable} from 'rxjs/Observable'; import { Subject } from 'rxjs/Subject'; +import {AdvancedField, OPERATOR} from '../searchUtils/searchHelperClasses.class'; +import {SearchFields} from '../../utils/properties/searchFields'; @Component({ selector: 'advanced-search-form', template: ` -
-
+ +
+
+ + +
-
+ - -
- - -
- -
- - + - ` }) export class AdvancedSearchFormComponent { + @Input() fieldIds: string[]; + @Input() selectedFields:AdvancedField[]; + @Output() queryChange = new EventEmitter(); + private searchFields:SearchFields = new SearchFields(); - @Input() fields: {"name": string, "value": string}[]; - @Input() selectedFields: {"name": string, "value": string}[]; - - @Input() quantifiers: {"name": string, "value": string}[]; - @Input() selectedQuantifiers: {"name": string, "value": string}[]; - - @Input() keywords: string[]; - @Output() keywordsChange = new EventEmitter(); - + private operators: [{name:string, id:string}] = [{name:"AND",id:"and"},{name:"OR",id:"or"},{name:"NOT",id:"not"}]; constructor () { } ngOnInit() { } - keywordsChanged() { - this.keywordsChange.emit({ - selectedFields: this.selectedFields, - selectedQuantifiers: this.selectedQuantifiers, - keywords: this.keywords + queryChanged() { + this.queryChange.emit({ + // selectedFields: this.selectedFields, + // selectedQuantifiers: this.selectedQuantifiers, + // keywords: this.keywords }); } - addFilter() { - console.info("add filter"); - //this.values.push({"field": this.fields[0].value, "quantifier": this.quantifiers[0].value, "keywords": []}); - this.selectedFields.push(this.fields[0]); - this.selectedQuantifiers.push(this.quantifiers[0]); - this.keywords.push(''); - console.info(this.keywords); + addField() { + console.info("add filter"+this.fieldIds[0]+this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].name+this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].type); + this.selectedFields.push(new AdvancedField(this.fieldIds[0], this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].name,this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.fieldIds[0]].type,"")); + } - removeFilter(index: number) { + removeField(index: number) { console.info("remove filter"); - //this.values.splice(index, 1); this.selectedFields.splice(index, 1); - this.selectedQuantifiers.splice(index, 1); - this.keywords.splice(index, 1); - console.info(this.keywords); + } - fieldChanged(index: number, field: {"name": string, "value": string}) { - this.selectedFields[index] = field; + fieldOperatorChanged(index: number, operatorId: string, operatorName: string) { + this.selectedFields[index].operatorId = operatorId; + this.selectedFields[index].operatorName = operatorName; } - quantifierChanged(index: number, quantifier: {"name": string, "value": string}) { - this.selectedQuantifiers[index] = quantifier; + fieldIdsChanged(index: number,id) { + this.selectedFields[index].id = id; + this.selectedFields[index].name = this.searchFields.ADVANCED_FIELDS_NAMES_IDS[id].name; + this.selectedFields[index].type = this.searchFields.ADVANCED_FIELDS_NAMES_IDS[id].type; } } diff --git a/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts b/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts index 6136f09b..87fca2c6 100644 --- a/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts +++ b/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts @@ -1,8 +1,9 @@ import {Component, Input, ViewChild, Output, EventEmitter} from '@angular/core'; import {Observable} from 'rxjs/Observable'; import {Location} from '@angular/common'; - import { Filter, Value} from './searchHelperClasses.class'; +import {Filter, Value,AdvancedField} from '../searchUtils/searchHelperClasses.class'; import {SearchResult} from '../../utils/entities/searchResult'; +import {SearchFields} from '../../utils/properties/searchFields'; @Component({ selector: 'advanced-search-page', @@ -13,31 +14,33 @@ import {SearchResult} from '../../utils/entities/searchResult';

{{pageTitle}}

-
+ +
- + +
-
-
+ @@ -46,20 +49,29 @@ import {SearchResult} from '../../utils/entities/searchResult'; export class AdvancedSearchPageComponent { @Input() pageTitle = ""; @Input() results = []; - @Input() filters = []; + // @Input() filters = []; @Input() type; @Input() page:number = 1; @Input() size: number = 10; @Input() totalResults: number = 0; + @Input() fieldIds: string[]; + @Input() selectedFields:AdvancedField[]; + @Input() baseUrl:string = ''; - @Input() fields: {"name": string, "value": string}[]; - @Input() selectedFields: {"name": string, "value": string}[]; - @Input() quantifiers: {"name": string, "value": string}[]; - @Input() selectedQuantifiers: {"name": string, "value": string}[]; - @Input() keywords:string[]; - @Output() keywordsChange = new EventEmitter(); + private baseURLWithParameters:string = ''; - test= { value: 0}; + private searchFields:SearchFields = new SearchFields(); + + + // @Input() fields: {"name": string, "value": string}[]; + // @Input() selectedFields: {"name": string, "value": string}[]; + // @Input() quantifiers: {"name": string, "value": string}[]; + // @Input() selectedQuantifiers: {"name": string, "value": string}[]; + // @Input() keywords:string[]; + // + // @Output() keywordsChange = new EventEmitter(); + // + // test= { value: 0}; @Output() queryChange = new EventEmitter(); constructor (private location: Location) { @@ -70,113 +82,35 @@ export class AdvancedSearchPageComponent { this.totalResults = this.results.length; } - private createUrlParameters(){ - var allLimits="";//location.search.slice(1); - for (let filter of this.filters){ - var filterLimits=""; - if(filter.countSelectedValues > 0){ - for (let value of filter.values){ - if(value.selected == true){ - filterLimits+=((filterLimits.length == 0)?'':',') + value.id; - } - } - allLimits+=((filterLimits.length == 0 )?'':((allLimits.length == 0)?'':'&') +filter.filterId + '='+ filterLimits) ; - } + private createUrlParameters(includePage:boolean){ + var params=""; + if(includePage && this.page != 1){ + params += "&page="+this.page; } - /*if(this.keywords.length > 0 ){ - allLimits+=((allLimits.length == 0)?'':'&') + 'keyword=' + this.keyword; - } - if(this.page != 1 ){ - allLimits+=((allLimits.length == 0)?'':'&') + 'page=' + this.page; - }*/ - return allLimits; + return ""; } private createQueryParameters(){ - var allLimits=""; - for (let filter of this.filters){ - if(filter.countSelectedValues > 0){ - var filterLimits=""; - for (let value of filter.values){ - if(value.selected == true){ - if(filter.filterOperator == 'not') { - filterLimits+=((filterLimits.length == 0)?'':' and ') + filter.filterId + '<>'+ value.id; - } else { - filterLimits+=((filterLimits.length == 0)?'':' '+filter.filterOperator+' ') + filter.filterId + '='+ value.id; - } - //filterLimits+=((filterLimits.length == 0)?'':' and ') + filter.filterId + '='+ value.id; - } - } - allLimits+=((filterLimits.length == 0 )?'':((allLimits.length == 0)?'':' and ')+'('+filterLimits +')') ; + var params=""; + for(var i = 0; i< this.selectedFields.length; i++){ + if(this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.selectedFields[i].id] != undefined && this.selectedFields[i].value.length > 0){ + params +="&"+ this.selectedFields[i].id + + "="+ this.selectedFields[i].value+"&"+this.searchFields.ADVANCED_FIELDS_NAMES_IDS[this.selectedFields[i].id].operator + + "=" + this.selectedFields[i].operatorId; } - } + } + console.info("Parameter:" + params); + return params; - for(let i=0; i 1) { - this.selectedFields.splice(i, 1); - this.selectedQuantifiers.splice(i, 1); - this.keywords.splice(i, 1); - } - } else { - let keyword = keywords.split(" "); - let keywordLimits=""; - let numOfKeywordLimits = 0; - for(let j=0; j "'+keyword[j]+'")'; - } else { - keywordLimits+=((keywordLimits.length == 0)?'':' '+this.selectedQuantifiers[i].value)+' ('+this.selectedFields[i].value+' = "'+keyword[j]+'")'; - } - } - - //... and ((resulttitle = "open") or (resulttitle = "access")) - if(numOfKeywordLimits > 1) { - allLimits+=((allLimits.length == 0)?'':' and (') + keywordLimits + ' )'; - } else { - allLimits+=((allLimits.length == 0)?'':' and ') + keywordLimits; - } - } - } - console.info("QueryParams: "+allLimits); - return allLimits; - } - private isFiltered(){ - var filtered=false; - for (let filter of this.filters){ - if(filter.countSelectedValues > 0){ - filtered = true; - break; - } - }/* - if(this.keywords.length > 0 ){ - filtered = true; - }*/ - return filtered; } clearFilters(){ - for (let filter of this.filters){ - if(filter.countSelectedValues > 0){ - for (let value of filter.values){ - if(value.selected == true){ - value.selected = false; - } - } - filter.countSelectedValues = 0; - } - }/* - if(this.keywords.length > 0 ){ - this.keywords =['']; - }*/ } goTo(page:number = 1){ console.info("goto"); //console.info("keyword: "+this.keyword); this.page = page; - var urlParameters = this.createUrlParameters(); + var urlParameters = this.createUrlParameters(true); var queryParameters = this.createQueryParameters(); this.location.go(location.pathname,urlParameters); this.queryChange.emit({ @@ -184,22 +118,19 @@ export class AdvancedSearchPageComponent { }); } - filterChanged($event){ - console.info("filterChanged"); - this.goTo(1); - } - keywordsChanged($event) { - console.info("keywordsChanged"); - // this.keyword = $event.value; - // console.info("searchPage: keyword= "+this.keyword); - this.keywords = $event.keywords; - this.selectedFields = $event.selectedFields; - this.selectedQuantifiers = $event.selectedQuantifiers; + + queryChanged($event) { + this.goTo(1); } pageChanged($event) { this.page = +$event.value; this.goTo(this.page); } - + /* + * Update the url with proper parameters. This is used as base url in Paging Component + */ + public updateBaseUrlWithParameters(filters:Filter[]){ + this.baseURLWithParameters = this.baseUrl + this.createUrlParameters(false); + } } diff --git a/portal-2/src/app/searchPages/searchUtils/searchHelperClasses.class.ts b/portal-2/src/app/searchPages/searchUtils/searchHelperClasses.class.ts index e55dbc0f..30c2d3d9 100644 --- a/portal-2/src/app/searchPages/searchUtils/searchHelperClasses.class.ts +++ b/portal-2/src/app/searchPages/searchUtils/searchHelperClasses.class.ts @@ -13,3 +13,33 @@ export class Value{ public number: number = 0; } +export class AdvancedField{ + public id: string; // + public name: string; // + public type: string = "keyword"; //keyword, static or dynamic + public value: string = ''; + public operatorId: string; + public operatorName: string;; + + constructor(id:string,name:string, type:string, value:string){ + this.id = id; + this.name = name; + this.type = type; + this.value = value; + this.operatorId = OPERATOR.AND; + this.operatorName = "AND"; + + } +} + +export class OPERATOR{ + public static AND: string ="and"; + public static OR: string ="or"; + public static NOT: string ="not"; + +} + +export class AutoCompleteValue{ + public id: string; + public label: string; +} diff --git a/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts b/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts index 2faa7d3d..45c8aaed 100644 --- a/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts +++ b/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts @@ -55,6 +55,7 @@ export class SearchPageComponent { @Input() showResultCount:boolean = true; @Input() showRefine:boolean = true; @Input() refineFields = []; + private searchFieldsHelper:SearchFields = new SearchFields(); private queryParameters: Map = new Map(); private baseURLWithParameters:string = ''; @@ -164,7 +165,7 @@ export class SearchPageComponent { // if(this.keyword.length > 0 ){ // allLimits= this.keyword + allLimits /*+ ' keyword=' */; // } - return (this.keyword.length > 0?'q='+this.keyword:'')+allLimits; + return (this.keyword.length > 0?'q='+this.keyword+"op=and":'')+allLimits; } // private isFiltered(){ diff --git a/portal-2/src/app/services/ISVocabularies.service.ts b/portal-2/src/app/services/ISVocabularies.service.ts new file mode 100644 index 00000000..24dc6dc2 --- /dev/null +++ b/portal-2/src/app/services/ISVocabularies.service.ts @@ -0,0 +1,69 @@ +import {Injectable} from '@angular/core'; +import {Http, Response} from '@angular/http'; +import {Observable} from 'rxjs/Observable'; +import {AutoCompleteValue} from '../searchPages/searchUtils/searchHelperClasses.class'; +@Injectable() +export class ISVocabulariesService { + + constructor(private http: Http) {} + + getVocabularyByType(type:string){ + if( type = "lang"){ + return this.getLanguagesJsonFile(); + }else if ( type == "type"){ + return this.getPublicationTypesJsonFile(); + } + } + getLanguages ():any { + console.info("Get Languages from IS"); + let url = "https://beta.services.openaire.eu/provision/mvc/vocabularies/dnet:languages.json"; + return this.http.get(url) + .map(res => res.json()) + .map(res => res['terms']) + .map(res => this.parse(res)); + + } + + getLanguagesJsonFile ():any { + console.info("Get Languages from json"); + var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/languages.json'))); + return this.parse(lang["terms"]); + } + + + getPublicationTypes ():any { + console.info("Get Languages from IS"); + let url = "https://beta.services.openaire.eu/provision/mvc/vocabularies/dnet:publication_resource.json"; + return this.http.get(url) + .map(res => res.json()) + .map(res => res['terms']) + .map(res => this.parse(res)); + + } + + getPublicationTypesJsonFile ():any { + console.info("Get Languages from json"); + var lang = JSON.parse(JSON.stringify(require('../utils/vocabularies/publicationTypes.json'))); + return this.parse(lang["terms"]); + } + + parse (data: any):AutoCompleteValue[] { + var array:AutoCompleteValue[] =[] + for(var i = 0; i < data.length; i++){ + var value:AutoCompleteValue = new AutoCompleteValue(); + value.id = data[i].code; + value.label = data[i].englishName; + array.push(value); + } + + return array; + + } + + private handleError (error: Response) { + // in a real world app, we may send the error to some remote logging infrastructure + // instead of just logging it to the console + console.error(error); + return Observable.throw(error || 'Server error'); + } +} diff --git a/portal-2/src/app/services/searchProjects.service.ts b/portal-2/src/app/services/searchProjects.service.ts index fd84846b..686edb82 100644 --- a/portal-2/src/app/services/searchProjects.service.ts +++ b/portal-2/src/app/services/searchProjects.service.ts @@ -11,18 +11,21 @@ export class SearchProjectsService { constructor(private http: Http) {} - searchProjects (params: string, page: number, size: number, refineFields:string[] ):any { + searchProjects (params: string, refineParams:string, page: number, size: number, refineFields:string[] ):any { console.info("In searchProjects"); let link = OpenaireProperties.getSearchAPIURL()+"projects"; let url = link+"?"; - if(params != '') { - url += params+"&page="+page+"&size="+size; - } else { - url += "page="+page+"&size="+size; + if(params!= null && params != '' ) { + url += params; } + if(refineParams!= null && params != '' ) { + url += refineParams; + } + url += "&page="+page+"&size="+size; + return this.http.get(url) .map(res => res.json()) diff --git a/portal-2/src/app/services/services.module.ts b/portal-2/src/app/services/services.module.ts index 7fb59137..388f83d9 100644 --- a/portal-2/src/app/services/services.module.ts +++ b/portal-2/src/app/services/services.module.ts @@ -24,6 +24,8 @@ import {SearchPeopleService} from './searchPeople.service'; import {SearchProjectsService} from './searchProjects.service'; import {RefineResultsService} from './servicesUtils/refineResuts.service'; +import {ISVocabulariesService} from './ISVocabularies.service'; + @NgModule({ @@ -38,7 +40,7 @@ import {RefineResultsService} from './servicesUtils/refineResuts.service'; SearchCrossrefService, SearchDataciteService, SearchOrcidService, SearchPublicationsService, SearchDataprovidersService, DataProviderService, SearchProjectsService, SearchDatasetsService, SearchOrganizationsService, - SearchPeopleService,RefineResultsService + SearchPeopleService,RefineResultsService, ISVocabulariesService ], exports: [ ] diff --git a/portal-2/src/app/services/servicesUtils/refineResults.class.ts b/portal-2/src/app/services/servicesUtils/refineResults.class.ts index cdb40527..39a4934c 100644 --- a/portal-2/src/app/services/servicesUtils/refineResults.class.ts +++ b/portal-2/src/app/services/servicesUtils/refineResults.class.ts @@ -8,24 +8,27 @@ export class RefineResultsUtils { public static parse (data, fields:string[]):Filter[] { // var data = this.json.refineReuslts; + var searchFields:SearchFields = new SearchFields(); var filters:Filter[] = []; - for(let j=0; j +
+ +
@@ -30,7 +34,16 @@ export class TestComponent { filteredObs: Observable<{}> = this.searchTermStream .debounceTime(300).distinctUntilChanged() .switchMap((term: string) => this.service(term)); - + private lan; + private types; + constructor(private _projectService: OpenaireProjectsService, private _vocabulariesService: ISVocabulariesService) { + // this.elementRef = myElement; + } + ngOnInit() { + // this.lan = this._vocabulariesService.getLanguages(); + this.lan = this._vocabulariesService.getLanguagesJsonFile(); + this.types = this._vocabulariesService.getPublicationTypesJsonFile(); + } service(term) { var projects = this._projectService.searchForProjectsObs(term, "this.selectedFunderId"); console.info("Results: "+ projects); @@ -39,16 +52,13 @@ export class TestComponent { } return projects; } - constructor(private _projectService: OpenaireProjectsService) { - // this.elementRef = myElement; - } private filtered = []; private selected = []; keywordChanged($event) { - console.log("keyword Changed"); + console.log("keyword Changed"+this.lan.length+" "+this.lan[0].id+"-"+this.lan[0].label); var keyword = $event.value; - this.filtered = this.countries.filter(function(el){ + this.filtered = this.types.filter(function(el){ return el.label.toLowerCase().indexOf(keyword.toLowerCase()) > -1; }.bind(this)); diff --git a/portal-2/src/app/utils/autoComplete.component.css b/portal-2/src/app/utils/autoComplete.component.css index 690cbed7..db476c2c 100644 --- a/portal-2/src/app/utils/autoComplete.component.css +++ b/portal-2/src/app/utils/autoComplete.component.css @@ -1,16 +1,24 @@ .auto-complete-box{ } +.custom-autocomplete{ + vertical-align: top; +} +.custom-autocomplete .suggestions,.custom-autocomplete .messages{ + position:absolute; + z-index: 1000; +} .auto-complete-choice .remove { cursor: pointer; } .auto-complete-choice{ - background: grey none repeat scroll 0 0; - border-color: grey; + background: white none repeat scroll 0 0; + border-color: gray; border-radius: 5px; border-style: solid; - color: white; + border-width: thin; + color: grey; margin: 3px; - padding: 1px; + padding: 7px; } .auto-complete-input { border-radius:0; diff --git a/portal-2/src/app/utils/properties/openaireProperties.ts b/portal-2/src/app/utils/properties/openaireProperties.ts index 098bf0a8..69c59e37 100644 --- a/portal-2/src/app/utils/properties/openaireProperties.ts +++ b/portal-2/src/app/utils/properties/openaireProperties.ts @@ -8,12 +8,15 @@ export class OpenaireProperties { private static searchLinkToDataset = "search/dataset?datasetId="; private static searchLinkToOrganization = "search/organization?organizationId="; //Search pages - private static searchLinkToPublications = "search/find/publications?keyword="; - private static searchLinkToDataProviders = "search/find/dataproviders?keyword="; - private static searchLinkToProjects = "search/find/projects?keyword="; - private static searchLinkToDatasets = "search/find/datasets?keyword="; - private static searchLinkToOrganizations = "search/find/organizations?keyword="; - private static searchLinkToPeople = "search/find/people?keyword="; + private static searchLinkToPublications = "search/find/publications"; + private static searchLinkToDataProviders = "search/find/dataproviders"; + private static searchLinkToProjects = "search/find/projects"; + private static searchLinkToDatasets = "search/find/datasets"; + private static searchLinkToOrganizations = "search/find/organizations"; + private static searchLinkToPeople = "search/find/people"; + //Advanced Search pages + private static searchLinkToAdvancedPublications = "search/advanced/publications"; + // Services - APIs @@ -95,6 +98,10 @@ export class OpenaireProperties { public static getLinkToSearchPeople():string{ return this.baseSearchLink + this.searchLinkToPeople; } + //Advanced Search Pages + public static getLinkToSearchAdvancedPublications(){ + return this.baseSearchLink + this.searchLinkToAdvancedPublications; + } // Services - APIs' getters public static getSearchAPIURL():string{ diff --git a/portal-2/src/app/utils/properties/searchFields.ts b/portal-2/src/app/utils/properties/searchFields.ts index 8f1640c8..a734b116 100644 --- a/portal-2/src/app/utils/properties/searchFields.ts +++ b/portal-2/src/app/utils/properties/searchFields.ts @@ -1,10 +1,10 @@ export class SearchFields { //main Entities public PUBLICATION_FIELDS:string[] = ["instancetypenameid", "resultlanguageid", "communityid", "relfunderid", - "relfundinglevel0_id","relfundinglevel1_id,relfundinglevel2_id", + "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id", "resultacceptanceyear","resultbestlicense","resulthostingdatasourceid","collectedfromdatasourceid"]; public DATASET_FIELDS:string[] = ["instancetypenameid", "resultlanguageid", "relfunderid", - "relfundinglevel0_id","relfundinglevel1_id,relfundinglevel2_id", + "relfundinglevel0_id","relfundinglevel1_id","relfundinglevel2_id", "resultacceptanceyear","resultbestlicense","resulthostingdatasourceid","collectedfromdatasourceid"]; public DATAPROVIDER_FIELDS:string[] = ["datasourcetypeuiid", "datasourceodlanguages", "datasourceodcontenttypes", "datasourcecompatibilityid"]; public ORGANIZATION_FIELDS:string[] = ["organizationcountryid","organizationeclegalbody"]; @@ -32,9 +32,29 @@ export class SearchFields { ["collectedfromdatasourceid"]:"Collected from", ["datasourcetypeuiid"]:"Compatibility Type", ["datasourceodlanguages"]:"Language", ["datasourceodcontenttypes"]: "Type", ["datasourcecompatibilityid"]:"Compatibility Type", ["organizationcountryid"]:"Country", ["organizationeclegalbody"]:"Type",["projectstartyear"]:"Start Year",["projectendyear"]:"End Year",["projectecsc39"]:"Special Clause 39"}; + + public ADVANCED_FIELDS:string[] = ["instancetypenameid", "resultlanguageid", "communityid", "relfunderid", + "relfundinglevel0_id","relfundinglevel1_id,relfundinglevel2_id", + "resultacceptanceyear","resultbestlicense","resulthostingdatasourceid","collectedfromdatasourceid"]; + public ADVANCED_SEARCH_PUBLICATIONS_FIELDS:string[] = ["all","title","author","publisher","type", "lan", "funder", "funderlv0", + "funderlv1","funderlv2"]; + public ADVANCED_FIELDS_NAMES_IDS: { [key:string]:{ name:string, operator:string, type:string }} = + {["funder"]:{name:"Funder",operator:"fn", type:"keyword"}, + ["funderlv0"]:{name:"Funding Level 0",operator:"fn0", type:"keyword"}, + ["funderlv1"]:{name:"Funding Level 1",operator:"fn1", type:"keyword"}, ["funderlv2"]:{name:"Funding Level 2",operator:"fn2", type:"keyword"}, + ["type"]:{name:"Type",operator:"tp", type:"staticAutoComplete"},["lang"]: {name:"Language",operator:"ln", type:"staticAutoComplete"}}; + // ,["communityid"]: "Context",["resultacceptanceyear"]:"Year", + // ["resultbestlicense"]:"Access Mode",["resulthostingdatasourceid"]:"Hosting Data provider", + // ["collectedfromdatasourceid"]:"Collected from", ["datasourcetypeuiid"]:"Compatibility Type", ["datasourceodlanguages"]:"Language", + // ["datasourceodcontenttypes"]: "Type", ["datasourcecompatibilityid"]:"Compatibility Type", ["organizationcountryid"]:"Country", + // ["organizationeclegalbody"]:"Type",["projectstartyear"]:"Start Year",["projectendyear"]:"End Year",["projectecsc39"]:"Special Clause 39"}; + + public getPROJECT_FIELDS(){ return this.PROJECT_FIELDS; } + + constructor (){ } diff --git a/portal-2/src/app/utils/staticAutoComplete.component.ts b/portal-2/src/app/utils/staticAutoComplete.component.ts index 289b1fe4..7283741c 100644 --- a/portal-2/src/app/utils/staticAutoComplete.component.ts +++ b/portal-2/src/app/utils/staticAutoComplete.component.ts @@ -39,12 +39,12 @@ export class StaticAutocompleteComponent { @Input() title = "Autocomplete"; @Output() keywordChange = new EventEmitter(); // when changed a method for filtering will be called @Output() addNew = new EventEmitter(); // when changed a method for filtering will be called - + @Input() public list = []; // the entries resulted after filtering function @Input() public filtered = []; // the entries resulted after filtering function @Input() public selected = []; // the entries selected from user @Input() public keywordlimit = 3; // the minimum length of keyword @Input() public showSelected = true; // the minimum length of keyword - + @Input() public multipleSelections:boolean = true; @Input() public keyword = ''; @Input() public type = 'search' //search, result, context, project private warningMessage = ""; diff --git a/portal-2/src/app/utils/staticAutoComplete2.component.ts b/portal-2/src/app/utils/staticAutoComplete2.component.ts new file mode 100644 index 00000000..e2e8dfc6 --- /dev/null +++ b/portal-2/src/app/utils/staticAutoComplete2.component.ts @@ -0,0 +1,172 @@ +import {Component, ElementRef, Input, Output, EventEmitter} from '@angular/core'; +import {Value} from '../searchPages/searchUtils/searchHelperClasses.class'; +import {ISVocabulariesService} from '../services/ISVocabularies.service'; + +//Usage example +// + +@Component({ + selector: 'static-autocomplete2', + styleUrls: ['autoComplete.component.css'], + template: ` +
+ + + {{showItem(item)}} + + + + +
+ +
+
+ + +
+
+ + ` +}) +export class StaticAutocomplete2Component { + @Input() placeHolderMessage = "Search for entries"; + @Input() title = "Autocomplete"; + // @Output() keywordChange = new EventEmitter(); // when changed a method for filtering will be called + // @Output() addNew = new EventEmitter(); // when changed a method for filtering will be called + @Input() public list = []; // the entries resulted after filtering function + @Input() public filtered = []; // the entries resulted after filtering function + @Input() public selected = []; // the entries selected from user + @Input() public keywordlimit = 3; // the minimum length of keyword + @Input() public showSelected = true; // the minimum length of keyword + @Input() public multipleSelections:boolean = true; + @Input() public selectedId:string = ''; + @Input() public vocabularyId:string = ''; + + @Input() public keyword = ''; + @Input() public type = 'search' //search, result, context, project + private warningMessage = ""; + private infoMessage = ""; + + private tries = 0; + private showInput = true; + + constructor ( private _vocabulariesService: ISVocabulariesService) { + console.info("Type"+this.type); + } + ngOnInit () { + if(this.vocabularyId){ + this.list = this._vocabulariesService.getVocabularyByType(this.vocabularyId); + } + if(this.list.length == 0){ + this.warningMessage = "There are no results" + } + } + filter() { + this.infoMessage = ""; + this.filtered = []; + if(this.keyword == ""){ + this.tries = 0; + this.warningMessage = ""; + } else if(this.keyword && this.keyword.length < this.keywordlimit){ + this.tries++; + if(this.tries == this.keywordlimit -1 ){ + this.warningMessage = "Type at least " + this.keywordlimit + " characters"; + this.tries = 0; + } + }else{ + this.tries = 0; + this.warningMessage = ""; + console.log("keyword Changed"+this.list.length+" "+this.list[0].id+"-"+this.list[0].label); + this.filtered = this.list.filter(function(el){ + return el.label.toLowerCase().indexOf(this.keyword.toLowerCase()) > -1; + }.bind(this)); + + } + } + remove(item:any){ + var index:number =this.checkIfExists(item,this.selected); + if (index > -1) { + this.selected.splice(index, 1); + } + if(!this.multipleSelections && this.selected.length == 0 ){ + this.showInput = true; + this.selectedId = ""; + } + } + select(item:any){ + if(this.multipleSelections){ + var index:number =this.checkIfExists(item,this.selected); + if (index > -1) { + this.keyword = ""; + this.filtered.splice(0, this.filtered.length); + return; + } + else{ + this.selected.push(item); + this.keyword = ""; + this.filtered.splice(0, this.filtered.length); + } + }else{ + this.selected.splice(0, this.selected.length); + this.selected.push(item); + this.filtered.splice(0, this.filtered.length); + this.keyword = ""; + this.showInput = false; + this.selectedId = item.id; + + } + } + private checkIfExists(item:any,list):number{ + + if(item.concept && item.concept.id ){ + console.log("context"); + + for (var _i = 0; _i < list.length; _i++) { + let itemInList = list[_i]; + if(item.concept.id == itemInList.concept.id){ + return _i; + } + } + }else if(item.id){ + for (var _i = 0; _i < list.length; _i++) { + let itemInList = list[_i]; + if(item.id == itemInList.id){ + return _i; + } + } + } + return -1; + + } + showItem(item:any):string{ + + if (item.name){ //search + return item.name; + }else if( item.concept && item.concept.label){ //context + return item.concept.label; + }else if (item.label){ //simple + return item.label; + } + + } + + + // handleClick(event){ + // var clickedComponent = event.target; + // var inside = false; + // do { + // if (clickedComponent === this.elementRef.nativeElement) { + // inside = true; + // } + // clickedComponent = clickedComponent.parentNode; + // } while (clickedComponent); + // if(!inside){ + // this.filteredList = []; + // } + // } + +} diff --git a/portal-2/src/app/utils/utils.module.ts b/portal-2/src/app/utils/utils.module.ts index 75b9adba..54b73bc6 100644 --- a/portal-2/src/app/utils/utils.module.ts +++ b/portal-2/src/app/utils/utils.module.ts @@ -9,6 +9,7 @@ import {ProjectTitleFormatter} from './projectTitleFormatter.component'; import {PublicationTitleFormatter} from './publicationTitleFormatter.component'; import {PagingFormatter} from './pagingFormatter.component'; import {StaticAutocompleteComponent} from './staticAutoComplete.component'; +import {StaticAutocomplete2Component} from './staticAutoComplete2.component'; import {DynamicAutocompleteComponent} from './dynamicAutoComplete.component'; import {ShowDataProvidersComponent} from './showDataProviders.component'; import {ExportCSVComponent} from './exportCSV.component'; @@ -27,6 +28,7 @@ import {ModalLoading} from './modal/loading.component'; PublicationTitleFormatter, PagingFormatter, StaticAutocompleteComponent, + StaticAutocomplete2Component, DynamicAutocompleteComponent, ShowDataProvidersComponent, ExportCSVComponent, @@ -40,6 +42,7 @@ import {ModalLoading} from './modal/loading.component'; PagingFormatter, AlertModal, ModalLoading, StaticAutocompleteComponent, + StaticAutocomplete2Component, DynamicAutocompleteComponent, ShowDataProvidersComponent, ExportCSVComponent, diff --git a/portal-2/src/app/utils/vocabularies/languages.json b/portal-2/src/app/utils/vocabularies/languages.json new file mode 100644 index 00000000..5e51ee9e --- /dev/null +++ b/portal-2/src/app/utils/vocabularies/languages.json @@ -0,0 +1,2498 @@ +{ + "id":"a157e2cc-afe7-41aa-b5f1-f745aaab9271_Vm9jYWJ1bGFyeURTUmVzb3VyY2VzL1ZvY2FidWxhcnlEU1Jlc291cmNlVHlwZQ==", + "name":"dnet:languages", + "description":"dnet:languages", + "code":"dnet:languages", + "terms":[ + { + "englishName":"Abkhazian", + "nativeName":"Abkhazian", + "encoding":"OPENAIRE", + "code":"abk" + }, + { + "englishName":"Achinese", + "nativeName":"Achinese", + "encoding":"OPENAIRE", + "code":"ace" + }, + { + "englishName":"Acoli", + "nativeName":"Acoli", + "encoding":"OPENAIRE", + "code":"ach" + }, + { + "englishName":"Adangme", + "nativeName":"Adangme", + "encoding":"OPENAIRE", + "code":"ada" + }, + { + "englishName":"Afar", + "nativeName":"Afar", + "encoding":"OPENAIRE", + "code":"aar" + }, + { + "englishName":"Afrihili", + "nativeName":"Afrihili", + "encoding":"OPENAIRE", + "code":"afh" + }, + { + "englishName":"Afrikaans", + "nativeName":"Afrikaans", + "encoding":"OPENAIRE", + "code":"afr" + }, + { + "englishName":"Afro-Asiatic", + "nativeName":"Afro-Asiatic", + "encoding":"OPENAIRE", + "code":"afa" + }, + { + "englishName":"Akan", + "nativeName":"Akan", + "encoding":"OPENAIRE", + "code":"aka" + }, + { + "englishName":"Akkadian", + "nativeName":"Akkadian", + "encoding":"OPENAIRE", + "code":"akk" + }, + { + "englishName":"Albanian", + "nativeName":"Albanian", + "encoding":"OPENAIRE", + "code":"alb/sqi" + }, + { + "englishName":"Aleut", + "nativeName":"Aleut", + "encoding":"OPENAIRE", + "code":"ale" + }, + { + "englishName":"Algonquian languages", + "nativeName":"Algonquian languages", + "encoding":"OPENAIRE", + "code":"alg" + }, + { + "englishName":"Altaic", + "nativeName":"Altaic", + "encoding":"OPENAIRE", + "code":"tut" + }, + { + "englishName":"Amharic", + "nativeName":"Amharic", + "encoding":"OPENAIRE", + "code":"amh" + }, + { + "englishName":"Ancient Egyptian", + "nativeName":"Ancient Egyptian", + "encoding":"OPENAIRE", + "code":"egy" + }, + { + "englishName":"Ancient Greek", + "nativeName":"Ancient Greek", + "encoding":"OPENAIRE", + "code":"grc" + }, + { + "englishName":"Apache", + "nativeName":"Apache", + "encoding":"OPENAIRE", + "code":"apa" + }, + { + "englishName":"Arabic", + "nativeName":"Arabic", + "encoding":"OPENAIRE", + "code":"ara" + }, + { + "englishName":"Aragonese", + "nativeName":"Aragonese", + "encoding":"OPENAIRE", + "code":"arg" + }, + { + "englishName":"Aramaic", + "nativeName":"Aramaic", + "encoding":"OPENAIRE", + "code":"arc" + }, + { + "englishName":"Arapaho", + "nativeName":"Arapaho", + "encoding":"OPENAIRE", + "code":"arp" + }, + { + "englishName":"Araucanian", + "nativeName":"Araucanian", + "encoding":"OPENAIRE", + "code":"arn" + }, + { + "englishName":"Arawak", + "nativeName":"Arawak", + "encoding":"OPENAIRE", + "code":"arw" + }, + { + "englishName":"Armenian", + "nativeName":"Armenian", + "encoding":"OPENAIRE", + "code":"arm/hye" + }, + { + "englishName":"Artificial", + "nativeName":"Artificial", + "encoding":"OPENAIRE", + "code":"art" + }, + { + "englishName":"Assamese", + "nativeName":"Assamese", + "encoding":"OPENAIRE", + "code":"asm" + }, + { + "englishName":"Athapascan", + "nativeName":"Athapascan", + "encoding":"OPENAIRE", + "code":"ath" + }, + { + "englishName":"Austronesian", + "nativeName":"Austronesian", + "encoding":"OPENAIRE", + "code":"map" + }, + { + "englishName":"Auxiliary Language Association)", + "nativeName":"Auxiliary Language Association)", + "encoding":"OPENAIRE", + "code":"ina" + }, + { + "englishName":"Avaric", + "nativeName":"Avaric", + "encoding":"OPENAIRE", + "code":"ava" + }, + { + "englishName":"Avestan", + "nativeName":"Avestan", + "encoding":"OPENAIRE", + "code":"ave" + }, + { + "englishName":"Awadhi", + "nativeName":"Awadhi", + "encoding":"OPENAIRE", + "code":"awa" + }, + { + "englishName":"Aymara", + "nativeName":"Aymara", + "encoding":"OPENAIRE", + "code":"aym" + }, + { + "englishName":"Azerbaijani", + "nativeName":"Azerbaijani", + "encoding":"OPENAIRE", + "code":"aze" + }, + { + "englishName":"Aztec", + "nativeName":"Aztec", + "encoding":"OPENAIRE", + "code":"nah" + }, + { + "englishName":"Balinese", + "nativeName":"Balinese", + "encoding":"OPENAIRE", + "code":"ban" + }, + { + "englishName":"Baltic", + "nativeName":"Baltic", + "encoding":"OPENAIRE", + "code":"bat" + }, + { + "englishName":"Baluchi", + "nativeName":"Baluchi", + "encoding":"OPENAIRE", + "code":"bal" + }, + { + "englishName":"Bambara", + "nativeName":"Bambara", + "encoding":"OPENAIRE", + "code":"bam" + }, + { + "englishName":"Bamileke", + "nativeName":"Bamileke", + "encoding":"OPENAIRE", + "code":"bai" + }, + { + "englishName":"Banda", + "nativeName":"Banda", + "encoding":"OPENAIRE", + "code":"bad" + }, + { + "englishName":"Bantu", + "nativeName":"Bantu", + "encoding":"OPENAIRE", + "code":"bnt" + }, + { + "englishName":"Basa", + "nativeName":"Basa", + "encoding":"OPENAIRE", + "code":"bas" + }, + { + "englishName":"Bashkir", + "nativeName":"Bashkir", + "encoding":"OPENAIRE", + "code":"bak" + }, + { + "englishName":"Basque", + "nativeName":"Basque", + "encoding":"OPENAIRE", + "code":"baq/eus" + }, + { + "englishName":"Beja", + "nativeName":"Beja", + "encoding":"OPENAIRE", + "code":"bej" + }, + { + "englishName":"Belarusian", + "nativeName":"Belarusian", + "encoding":"OPENAIRE", + "code":"bel" + }, + { + "englishName":"Bemba", + "nativeName":"Bemba", + "encoding":"OPENAIRE", + "code":"bem" + }, + { + "englishName":"Bengali", + "nativeName":"Bengali", + "encoding":"OPENAIRE", + "code":"ben" + }, + { + "englishName":"Berber", + "nativeName":"Berber", + "encoding":"OPENAIRE", + "code":"ber" + }, + { + "englishName":"Bhojpuri", + "nativeName":"Bhojpuri", + "encoding":"OPENAIRE", + "code":"bho" + }, + { + "englishName":"Bihari", + "nativeName":"Bihari", + "encoding":"OPENAIRE", + "code":"bih" + }, + { + "englishName":"Bikol", + "nativeName":"Bikol", + "encoding":"OPENAIRE", + "code":"bik" + }, + { + "englishName":"Bini", + "nativeName":"Bini", + "encoding":"OPENAIRE", + "code":"bin" + }, + { + "englishName":"Bislama", + "nativeName":"Bislama", + "encoding":"OPENAIRE", + "code":"bis" + }, + { + "englishName":"Bokmål, Norwegian; Norwegian Bokmål", + "nativeName":"Bokmål, Norwegian; Norwegian Bokmål", + "encoding":"OPENAIRE", + "code":"nob" + }, + { + "englishName":"Bosnian", + "nativeName":"Bosnian", + "encoding":"OPENAIRE", + "code":"bos" + }, + { + "englishName":"Braj", + "nativeName":"Braj", + "encoding":"OPENAIRE", + "code":"bra" + }, + { + "englishName":"Breton", + "nativeName":"Breton", + "encoding":"OPENAIRE", + "code":"bre" + }, + { + "englishName":"Buginese", + "nativeName":"Buginese", + "encoding":"OPENAIRE", + "code":"bug" + }, + { + "englishName":"Bulgarian", + "nativeName":"Bulgarian", + "encoding":"OPENAIRE", + "code":"bul" + }, + { + "englishName":"Buriat", + "nativeName":"Buriat", + "encoding":"OPENAIRE", + "code":"bua" + }, + { + "englishName":"Burmese", + "nativeName":"Burmese", + "encoding":"OPENAIRE", + "code":"bur/mya" + }, + { + "englishName":"Caddo", + "nativeName":"Caddo", + "encoding":"OPENAIRE", + "code":"cad" + }, + { + "englishName":"Carib", + "nativeName":"Carib", + "encoding":"OPENAIRE", + "code":"car" + }, + { + "englishName":"Catalan; Valencian", + "nativeName":"Catalan; Valencian", + "encoding":"OPENAIRE", + "code":"cat" + }, + { + "englishName":"Caucasian", + "nativeName":"Caucasian", + "encoding":"OPENAIRE", + "code":"cau" + }, + { + "englishName":"Cebuano", + "nativeName":"Cebuano", + "encoding":"OPENAIRE", + "code":"ceb" + }, + { + "englishName":"Celtic", + "nativeName":"Celtic", + "encoding":"OPENAIRE", + "code":"cel" + }, + { + "englishName":"Central American Indian", + "nativeName":"Central American Indian", + "encoding":"OPENAIRE", + "code":"cai" + }, + { + "englishName":"Chagatai", + "nativeName":"Chagatai", + "encoding":"OPENAIRE", + "code":"chg" + }, + { + "englishName":"Chamorro", + "nativeName":"Chamorro", + "encoding":"OPENAIRE", + "code":"cha" + }, + { + "englishName":"Chechen", + "nativeName":"Chechen", + "encoding":"OPENAIRE", + "code":"che" + }, + { + "englishName":"Cherokee", + "nativeName":"Cherokee", + "encoding":"OPENAIRE", + "code":"chr" + }, + { + "englishName":"Chewa; Chichewa; Nyanja", + "nativeName":"Chewa; Chichewa; Nyanja", + "encoding":"OPENAIRE", + "code":"nya" + }, + { + "englishName":"Cheyenne", + "nativeName":"Cheyenne", + "encoding":"OPENAIRE", + "code":"chy" + }, + { + "englishName":"Chibcha", + "nativeName":"Chibcha", + "encoding":"OPENAIRE", + "code":"chb" + }, + { + "englishName":"Chinese", + "nativeName":"Chinese", + "encoding":"OPENAIRE", + "code":"chi/zho" + }, + { + "englishName":"Chinook jargon", + "nativeName":"Chinook jargon", + "encoding":"OPENAIRE", + "code":"chn" + }, + { + "englishName":"Choctaw", + "nativeName":"Choctaw", + "encoding":"OPENAIRE", + "code":"cho" + }, + { + "englishName":"Church Slavic; Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic", + "nativeName":"Church Slavic; Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic", + "encoding":"OPENAIRE", + "code":"chu" + }, + { + "englishName":"Chuvash", + "nativeName":"Chuvash", + "encoding":"OPENAIRE", + "code":"chv" + }, + { + "englishName":"Coptic", + "nativeName":"Coptic", + "encoding":"OPENAIRE", + "code":"cop" + }, + { + "englishName":"Cornish", + "nativeName":"Cornish", + "encoding":"OPENAIRE", + "code":"cor" + }, + { + "englishName":"Corsican", + "nativeName":"Corsican", + "encoding":"OPENAIRE", + "code":"cos" + }, + { + "englishName":"Cree", + "nativeName":"Cree", + "encoding":"OPENAIRE", + "code":"cre" + }, + { + "englishName":"Creek", + "nativeName":"Creek", + "encoding":"OPENAIRE", + "code":"mus" + }, + { + "englishName":"Creoles and Pidgins", + "nativeName":"Creoles and Pidgins", + "encoding":"OPENAIRE", + "code":"crp" + }, + { + "englishName":"Croatian", + "nativeName":"Croatian", + "encoding":"OPENAIRE", + "code":"hrv" + }, + { + "englishName":"Cushitic", + "nativeName":"Cushitic", + "encoding":"OPENAIRE", + "code":"cus" + }, + { + "englishName":"Czech", + "nativeName":"Czech", + "encoding":"OPENAIRE", + "code":"ces/cze" + }, + { + "englishName":"Dakota", + "nativeName":"Dakota", + "encoding":"OPENAIRE", + "code":"dak" + }, + { + "englishName":"Danish", + "nativeName":"Danish", + "encoding":"OPENAIRE", + "code":"dan" + }, + { + "englishName":"Delaware", + "nativeName":"Delaware", + "encoding":"OPENAIRE", + "code":"del" + }, + { + "englishName":"Dinka", + "nativeName":"Dinka", + "encoding":"OPENAIRE", + "code":"din" + }, + { + "englishName":"Divehi", + "nativeName":"Divehi", + "encoding":"OPENAIRE", + "code":"div" + }, + { + "englishName":"Dogri", + "nativeName":"Dogri", + "encoding":"OPENAIRE", + "code":"doi" + }, + { + "englishName":"Dravidian", + "nativeName":"Dravidian", + "encoding":"OPENAIRE", + "code":"dra" + }, + { + "englishName":"Duala", + "nativeName":"Duala", + "encoding":"OPENAIRE", + "code":"dua" + }, + { + "englishName":"Dutch; Flemish", + "nativeName":"Dutch; Flemish", + "encoding":"OPENAIRE", + "code":"dut/nld" + }, + { + "englishName":"Dyula", + "nativeName":"Dyula", + "encoding":"OPENAIRE", + "code":"dyu" + }, + { + "englishName":"Dzongkha", + "nativeName":"Dzongkha", + "encoding":"OPENAIRE", + "code":"dzo" + }, + { + "englishName":"Efik", + "nativeName":"Efik", + "encoding":"OPENAIRE", + "code":"efi" + }, + { + "englishName":"Ekajuk", + "nativeName":"Ekajuk", + "encoding":"OPENAIRE", + "code":"eka" + }, + { + "englishName":"Elamite", + "nativeName":"Elamite", + "encoding":"OPENAIRE", + "code":"elx" + }, + { + "englishName":"English", + "nativeName":"English", + "encoding":"OPENAIRE", + "code":"eng" + }, + { + "englishName":"English-based Creoles and Pidgins", + "nativeName":"English-based Creoles and Pidgins", + "encoding":"OPENAIRE", + "code":"cpe" + }, + { + "englishName":"Eskimo", + "nativeName":"Eskimo", + "encoding":"OPENAIRE", + "code":"esk" + }, + { + "englishName":"Esperanto", + "nativeName":"Esperanto", + "encoding":"OPENAIRE", + "code":"epo" + }, + { + "englishName":"Estonian", + "nativeName":"Estonian", + "encoding":"OPENAIRE", + "code":"est" + }, + { + "englishName":"Ewe", + "nativeName":"Ewe", + "encoding":"OPENAIRE", + "code":"ewe" + }, + { + "englishName":"Ewondo", + "nativeName":"Ewondo", + "encoding":"OPENAIRE", + "code":"ewo" + }, + { + "englishName":"Fang", + "nativeName":"Fang", + "encoding":"OPENAIRE", + "code":"fan" + }, + { + "englishName":"Fanti", + "nativeName":"Fanti", + "encoding":"OPENAIRE", + "code":"fat" + }, + { + "englishName":"Faroese", + "nativeName":"Faroese", + "encoding":"OPENAIRE", + "code":"fao" + }, + { + "englishName":"Fijian", + "nativeName":"Fijian", + "encoding":"OPENAIRE", + "code":"fij" + }, + { + "englishName":"Finnish", + "nativeName":"Finnish", + "encoding":"OPENAIRE", + "code":"fin" + }, + { + "englishName":"Finno-Ugrian", + "nativeName":"Finno-Ugrian", + "encoding":"OPENAIRE", + "code":"fiu" + }, + { + "englishName":"Fon", + "nativeName":"Fon", + "encoding":"OPENAIRE", + "code":"fon" + }, + { + "englishName":"French", + "nativeName":"French", + "encoding":"OPENAIRE", + "code":"fra/fre" + }, + { + "englishName":"French-based Creoles and Pidgins", + "nativeName":"French-based Creoles and Pidgins", + "encoding":"OPENAIRE", + "code":"cpf" + }, + { + "englishName":"Frisian", + "nativeName":"Frisian", + "encoding":"OPENAIRE", + "code":"fry" + }, + { + "englishName":"Fulah", + "nativeName":"Fulah", + "encoding":"OPENAIRE", + "code":"ful" + }, + { + "englishName":"Ga", + "nativeName":"Ga", + "encoding":"OPENAIRE", + "code":"gaa" + }, + { + "englishName":"Gaelic", + "nativeName":"Gaelic", + "encoding":"OPENAIRE", + "code":"gae/gdh" + }, + { + "englishName":"Gaelic; Scottish Gaelic", + "nativeName":"Gaelic; Scottish Gaelic", + "encoding":"OPENAIRE", + "code":"gla" + }, + { + "englishName":"Galician", + "nativeName":"Galician", + "encoding":"OPENAIRE", + "code":"glg" + }, + { + "englishName":"Ganda", + "nativeName":"Ganda", + "encoding":"OPENAIRE", + "code":"lug" + }, + { + "englishName":"Gayo", + "nativeName":"Gayo", + "encoding":"OPENAIRE", + "code":"gay" + }, + { + "englishName":"Geez", + "nativeName":"Geez", + "encoding":"OPENAIRE", + "code":"gez" + }, + { + "englishName":"Georgian", + "nativeName":"Georgian", + "encoding":"OPENAIRE", + "code":"geo/kat" + }, + { + "englishName":"German", + "nativeName":"German", + "encoding":"OPENAIRE", + "code":"deu/ger" + }, + { + "englishName":"Germanic", + "nativeName":"Germanic", + "encoding":"OPENAIRE", + "code":"gem" + }, + { + "englishName":"Gikuyu; Kikuyu", + "nativeName":"Gikuyu; Kikuyu", + "encoding":"OPENAIRE", + "code":"kik" + }, + { + "englishName":"Gilbertese", + "nativeName":"Gilbertese", + "encoding":"OPENAIRE", + "code":"gil" + }, + { + "englishName":"Gondi", + "nativeName":"Gondi", + "encoding":"OPENAIRE", + "code":"gon" + }, + { + "englishName":"Gothic", + "nativeName":"Gothic", + "encoding":"OPENAIRE", + "code":"got" + }, + { + "englishName":"Grebo", + "nativeName":"Grebo", + "encoding":"OPENAIRE", + "code":"grb" + }, + { + "englishName":"Greek", + "nativeName":"Greek", + "encoding":"OPENAIRE", + "code":"ell/gre" + }, + { + "englishName":"Greek, Modern (1453-)", + "nativeName":"Greek, Modern (1453-)", + "encoding":"OPENAIRE", + "code":"gre/ell" + }, + { + "englishName":"Greenlandic; Kalaallisut", + "nativeName":"Greenlandic; Kalaallisut", + "encoding":"OPENAIRE", + "code":"kal" + }, + { + "englishName":"Guarani", + "nativeName":"Guarani", + "encoding":"OPENAIRE", + "code":"grn" + }, + { + "englishName":"Gujarati", + "nativeName":"Gujarati", + "encoding":"OPENAIRE", + "code":"guj" + }, + { + "englishName":"Haida", + "nativeName":"Haida", + "encoding":"OPENAIRE", + "code":"hai" + }, + { + "englishName":"Haitian; Haitian Creole", + "nativeName":"Haitian; Haitian Creole", + "encoding":"OPENAIRE", + "code":"hat" + }, + { + "englishName":"Hausa", + "nativeName":"Hausa", + "encoding":"OPENAIRE", + "code":"hau" + }, + { + "englishName":"Hawaiian", + "nativeName":"Hawaiian", + "encoding":"OPENAIRE", + "code":"haw" + }, + { + "englishName":"Hebrew", + "nativeName":"Hebrew", + "encoding":"OPENAIRE", + "code":"heb" + }, + { + "englishName":"Herero", + "nativeName":"Herero", + "encoding":"OPENAIRE", + "code":"her" + }, + { + "englishName":"Hiligaynon", + "nativeName":"Hiligaynon", + "encoding":"OPENAIRE", + "code":"hil" + }, + { + "englishName":"Himachali", + "nativeName":"Himachali", + "encoding":"OPENAIRE", + "code":"him" + }, + { + "englishName":"Hindi", + "nativeName":"Hindi", + "encoding":"OPENAIRE", + "code":"hin" + }, + { + "englishName":"Hiri Motu", + "nativeName":"Hiri Motu", + "encoding":"OPENAIRE", + "code":"hmo" + }, + { + "englishName":"Hungarian", + "nativeName":"Hungarian", + "encoding":"OPENAIRE", + "code":"hun" + }, + { + "englishName":"Hupa", + "nativeName":"Hupa", + "encoding":"OPENAIRE", + "code":"hup" + }, + { + "englishName":"Iban", + "nativeName":"Iban", + "encoding":"OPENAIRE", + "code":"iba" + }, + { + "englishName":"Icelandic", + "nativeName":"Icelandic", + "encoding":"OPENAIRE", + "code":"ice/isl" + }, + { + "englishName":"Ido", + "nativeName":"Ido", + "encoding":"OPENAIRE", + "code":"ido" + }, + { + "englishName":"Igbo", + "nativeName":"Igbo", + "encoding":"OPENAIRE", + "code":"ibo" + }, + { + "englishName":"Ijo", + "nativeName":"Ijo", + "encoding":"OPENAIRE", + "code":"ijo" + }, + { + "englishName":"Iloko", + "nativeName":"Iloko", + "encoding":"OPENAIRE", + "code":"ilo" + }, + { + "englishName":"Indic", + "nativeName":"Indic", + "encoding":"OPENAIRE", + "code":"inc" + }, + { + "englishName":"Indo-European", + "nativeName":"Indo-European", + "encoding":"OPENAIRE", + "code":"ine" + }, + { + "englishName":"Indonesian", + "nativeName":"Indonesian", + "encoding":"OPENAIRE", + "code":"ind" + }, + { + "englishName":"Interlingue", + "nativeName":"Interlingue", + "encoding":"OPENAIRE", + "code":"ile" + }, + { + "englishName":"Inuktitut", + "nativeName":"Inuktitut", + "encoding":"OPENAIRE", + "code":"iku" + }, + { + "englishName":"Inupiaq", + "nativeName":"Inupiaq", + "encoding":"OPENAIRE", + "code":"ipk" + }, + { + "englishName":"Iranian", + "nativeName":"Iranian", + "encoding":"OPENAIRE", + "code":"ira" + }, + { + "englishName":"Irish", + "nativeName":"Irish", + "encoding":"OPENAIRE", + "code":"gai/iri" + }, + { + "englishName":"Iroquoian", + "nativeName":"Iroquoian", + "encoding":"OPENAIRE", + "code":"iro" + }, + { + "englishName":"Italian", + "nativeName":"Italian", + "encoding":"OPENAIRE", + "code":"ita" + }, + { + "englishName":"Japanese", + "nativeName":"Japanese", + "encoding":"OPENAIRE", + "code":"jpn" + }, + { + "englishName":"Javanese", + "nativeName":"Javanese", + "encoding":"OPENAIRE", + "code":"jav" + }, + { + "englishName":"Judeo-Arabic", + "nativeName":"Judeo-Arabic", + "encoding":"OPENAIRE", + "code":"jrb" + }, + { + "englishName":"Judeo-Persian", + "nativeName":"Judeo-Persian", + "encoding":"OPENAIRE", + "code":"jpr" + }, + { + "englishName":"Kabyle", + "nativeName":"Kabyle", + "encoding":"OPENAIRE", + "code":"kab" + }, + { + "englishName":"Kachin", + "nativeName":"Kachin", + "encoding":"OPENAIRE", + "code":"kac" + }, + { + "englishName":"Kamba", + "nativeName":"Kamba", + "encoding":"OPENAIRE", + "code":"kam" + }, + { + "englishName":"Kannada", + "nativeName":"Kannada", + "encoding":"OPENAIRE", + "code":"kan" + }, + { + "englishName":"Kanuri", + "nativeName":"Kanuri", + "encoding":"OPENAIRE", + "code":"kau" + }, + { + "englishName":"Kara-Kalpak", + "nativeName":"Kara-Kalpak", + "encoding":"OPENAIRE", + "code":"kaa" + }, + { + "englishName":"Karen", + "nativeName":"Karen", + "encoding":"OPENAIRE", + "code":"kar" + }, + { + "englishName":"Kashmiri", + "nativeName":"Kashmiri", + "encoding":"OPENAIRE", + "code":"kas" + }, + { + "englishName":"Kawi", + "nativeName":"Kawi", + "encoding":"OPENAIRE", + "code":"kaw" + }, + { + "englishName":"Kazakh", + "nativeName":"Kazakh", + "encoding":"OPENAIRE", + "code":"kaz" + }, + { + "englishName":"Khasi", + "nativeName":"Khasi", + "encoding":"OPENAIRE", + "code":"kha" + }, + { + "englishName":"Khmer", + "nativeName":"Khmer", + "encoding":"OPENAIRE", + "code":"khm" + }, + { + "englishName":"Khoisan", + "nativeName":"Khoisan", + "encoding":"OPENAIRE", + "code":"khi" + }, + { + "englishName":"Khotanese", + "nativeName":"Khotanese", + "encoding":"OPENAIRE", + "code":"kho" + }, + { + "englishName":"Kinyarwanda", + "nativeName":"Kinyarwanda", + "encoding":"OPENAIRE", + "code":"kin" + }, + { + "englishName":"Kirghiz", + "nativeName":"Kirghiz", + "encoding":"OPENAIRE", + "code":"kir" + }, + { + "englishName":"Komi", + "nativeName":"Komi", + "encoding":"OPENAIRE", + "code":"kom" + }, + { + "englishName":"Kongo", + "nativeName":"Kongo", + "encoding":"OPENAIRE", + "code":"kon" + }, + { + "englishName":"Konkani", + "nativeName":"Konkani", + "encoding":"OPENAIRE", + "code":"kok" + }, + { + "englishName":"Korean", + "nativeName":"Korean", + "encoding":"OPENAIRE", + "code":"kor" + }, + { + "englishName":"Kpelle", + "nativeName":"Kpelle", + "encoding":"OPENAIRE", + "code":"kpe" + }, + { + "englishName":"Kru", + "nativeName":"Kru", + "encoding":"OPENAIRE", + "code":"kro" + }, + { + "englishName":"Kuanyama; Kwanyama", + "nativeName":"Kuanyama; Kwanyama", + "encoding":"OPENAIRE", + "code":"kua" + }, + { + "englishName":"Kumyk", + "nativeName":"Kumyk", + "encoding":"OPENAIRE", + "code":"kum" + }, + { + "englishName":"Kurdish", + "nativeName":"Kurdish", + "encoding":"OPENAIRE", + "code":"kur" + }, + { + "englishName":"Kurukh", + "nativeName":"Kurukh", + "encoding":"OPENAIRE", + "code":"kru" + }, + { + "englishName":"Kusaie", + "nativeName":"Kusaie", + "encoding":"OPENAIRE", + "code":"kus" + }, + { + "englishName":"Kutenai", + "nativeName":"Kutenai", + "encoding":"OPENAIRE", + "code":"kut" + }, + { + "englishName":"Ladino", + "nativeName":"Ladino", + "encoding":"OPENAIRE", + "code":"lad" + }, + { + "englishName":"Lahnda", + "nativeName":"Lahnda", + "encoding":"OPENAIRE", + "code":"lah" + }, + { + "englishName":"Lamba", + "nativeName":"Lamba", + "encoding":"OPENAIRE", + "code":"lam" + }, + { + "englishName":"Lao", + "nativeName":"Lao", + "encoding":"OPENAIRE", + "code":"lao" + }, + { + "englishName":"Latin", + "nativeName":"Latin", + "encoding":"OPENAIRE", + "code":"lat" + }, + { + "englishName":"Latvian", + "nativeName":"Latvian", + "encoding":"OPENAIRE", + "code":"lav" + }, + { + "englishName":"Letzeburgesch; Luxembourgish", + "nativeName":"Letzeburgesch; Luxembourgish", + "encoding":"OPENAIRE", + "code":"ltz" + }, + { + "englishName":"Lezghian", + "nativeName":"Lezghian", + "encoding":"OPENAIRE", + "code":"lez" + }, + { + "englishName":"Limburgan; Limburger; Limburgish", + "nativeName":"Limburgan; Limburger; Limburgish", + "encoding":"OPENAIRE", + "code":"lim" + }, + { + "englishName":"Lingala", + "nativeName":"Lingala", + "encoding":"OPENAIRE", + "code":"lin" + }, + { + "englishName":"Lithuanian", + "nativeName":"Lithuanian", + "encoding":"OPENAIRE", + "code":"lit" + }, + { + "englishName":"Lozi", + "nativeName":"Lozi", + "encoding":"OPENAIRE", + "code":"loz" + }, + { + "englishName":"Luba-Katanga", + "nativeName":"Luba-Katanga", + "encoding":"OPENAIRE", + "code":"lub" + }, + { + "englishName":"Luiseno", + "nativeName":"Luiseno", + "encoding":"OPENAIRE", + "code":"lui" + }, + { + "englishName":"Lunda", + "nativeName":"Lunda", + "encoding":"OPENAIRE", + "code":"lun" + }, + { + "englishName":"Luo", + "nativeName":"Luo", + "encoding":"OPENAIRE", + "code":"luo" + }, + { + "englishName":"Macedonian", + "nativeName":"Macedonian", + "encoding":"OPENAIRE", + "code":"mac/mak" + }, + { + "englishName":"Madurese", + "nativeName":"Madurese", + "encoding":"OPENAIRE", + "code":"mad" + }, + { + "englishName":"Magahi", + "nativeName":"Magahi", + "encoding":"OPENAIRE", + "code":"mag" + }, + { + "englishName":"Maithili", + "nativeName":"Maithili", + "encoding":"OPENAIRE", + "code":"mai" + }, + { + "englishName":"Makasar", + "nativeName":"Makasar", + "encoding":"OPENAIRE", + "code":"mak" + }, + { + "englishName":"Malagasy", + "nativeName":"Malagasy", + "encoding":"OPENAIRE", + "code":"mlg" + }, + { + "englishName":"Malay", + "nativeName":"Malay", + "encoding":"OPENAIRE", + "code":"may/msa" + }, + { + "englishName":"Malayalam", + "nativeName":"Malayalam", + "encoding":"OPENAIRE", + "code":"mal" + }, + { + "englishName":"Maltese", + "nativeName":"Maltese", + "encoding":"OPENAIRE", + "code":"mlt" + }, + { + "englishName":"Mandingo", + "nativeName":"Mandingo", + "encoding":"OPENAIRE", + "code":"man" + }, + { + "englishName":"Manipuri", + "nativeName":"Manipuri", + "encoding":"OPENAIRE", + "code":"mni" + }, + { + "englishName":"Manobo", + "nativeName":"Manobo", + "encoding":"OPENAIRE", + "code":"mno" + }, + { + "englishName":"Manx", + "nativeName":"Manx", + "encoding":"OPENAIRE", + "code":"glv" + }, + { + "englishName":"Maori", + "nativeName":"Maori", + "encoding":"OPENAIRE", + "code":"mao/mri" + }, + { + "englishName":"Marathi", + "nativeName":"Marathi", + "encoding":"OPENAIRE", + "code":"mar" + }, + { + "englishName":"Mari", + "nativeName":"Mari", + "encoding":"OPENAIRE", + "code":"chm" + }, + { + "englishName":"Marshallese", + "nativeName":"Marshallese", + "encoding":"OPENAIRE", + "code":"mah" + }, + { + "englishName":"Marwari", + "nativeName":"Marwari", + "encoding":"OPENAIRE", + "code":"mwr" + }, + { + "englishName":"Masai", + "nativeName":"Masai", + "encoding":"OPENAIRE", + "code":"mas" + }, + { + "englishName":"Mayan", + "nativeName":"Mayan", + "encoding":"OPENAIRE", + "code":"myn" + }, + { + "englishName":"Mende", + "nativeName":"Mende", + "encoding":"OPENAIRE", + "code":"men" + }, + { + "englishName":"Micmac", + "nativeName":"Micmac", + "encoding":"OPENAIRE", + "code":"mic" + }, + { + "englishName":"Middle Dutch", + "nativeName":"Middle Dutch", + "encoding":"OPENAIRE", + "code":"dum" + }, + { + "englishName":"Middle English", + "nativeName":"Middle English", + "encoding":"OPENAIRE", + "code":"enm" + }, + { + "englishName":"Middle French", + "nativeName":"Middle French", + "encoding":"OPENAIRE", + "code":"frm" + }, + { + "englishName":"Middle High German", + "nativeName":"Middle High German", + "encoding":"OPENAIRE", + "code":"gmh" + }, + { + "englishName":"Middle Irish", + "nativeName":"Middle Irish", + "encoding":"OPENAIRE", + "code":"mga" + }, + { + "englishName":"Minangkabau", + "nativeName":"Minangkabau", + "encoding":"OPENAIRE", + "code":"min" + }, + { + "englishName":"Miscellaneous", + "nativeName":"Miscellaneous", + "encoding":"OPENAIRE", + "code":"mis" + }, + { + "englishName":"Mohawk", + "nativeName":"Mohawk", + "encoding":"OPENAIRE", + "code":"moh" + }, + { + "englishName":"Moldavian", + "nativeName":"Moldavian", + "encoding":"OPENAIRE", + "code":"mol" + }, + { + "englishName":"Mon-Kmer", + "nativeName":"Mon-Kmer", + "encoding":"OPENAIRE", + "code":"mkh" + }, + { + "englishName":"Mongo", + "nativeName":"Mongo", + "encoding":"OPENAIRE", + "code":"lol" + }, + { + "englishName":"Mongolian", + "nativeName":"Mongolian", + "encoding":"OPENAIRE", + "code":"mon" + }, + { + "englishName":"Mossi", + "nativeName":"Mossi", + "encoding":"OPENAIRE", + "code":"mos" + }, + { + "englishName":"Multiple languages", + "nativeName":"Multiple languages", + "encoding":"OPENAIRE", + "code":"mul" + }, + { + "englishName":"Munda", + "nativeName":"Munda", + "encoding":"OPENAIRE", + "code":"mun" + }, + { + "englishName":"Nauru", + "nativeName":"Nauru", + "encoding":"OPENAIRE", + "code":"nau" + }, + { + "englishName":"Navajo; Navaho", + "nativeName":"Navajo; Navaho", + "encoding":"OPENAIRE", + "code":"nav" + }, + { + "englishName":"Ndebele, North", + "nativeName":"Ndebele, North", + "encoding":"OPENAIRE", + "code":"nde" + }, + { + "englishName":"Ndebele, South", + "nativeName":"Ndebele, South", + "encoding":"OPENAIRE", + "code":"nbl" + }, + { + "englishName":"Ndonga", + "nativeName":"Ndonga", + "encoding":"OPENAIRE", + "code":"ndo" + }, + { + "englishName":"Nepali", + "nativeName":"Nepali", + "encoding":"OPENAIRE", + "code":"nep" + }, + { + "englishName":"Newari", + "nativeName":"Newari", + "encoding":"OPENAIRE", + "code":"new" + }, + { + "englishName":"Niger-Kordofanian", + "nativeName":"Niger-Kordofanian", + "encoding":"OPENAIRE", + "code":"nic" + }, + { + "englishName":"Nilo-Saharan", + "nativeName":"Nilo-Saharan", + "encoding":"OPENAIRE", + "code":"ssa" + }, + { + "englishName":"Niuean", + "nativeName":"Niuean", + "encoding":"OPENAIRE", + "code":"niu" + }, + { + "englishName":"Norse", + "nativeName":"Norse", + "encoding":"OPENAIRE", + "code":"non" + }, + { + "englishName":"North American Indian", + "nativeName":"North American Indian", + "encoding":"OPENAIRE", + "code":"nai" + }, + { + "englishName":"Northern Sami", + "nativeName":"Northern Sami", + "encoding":"OPENAIRE", + "code":"sme" + }, + { + "englishName":"Norwegian", + "nativeName":"Norwegian", + "encoding":"OPENAIRE", + "code":"nor" + }, + { + "englishName":"Norwegian Nynorsk; Nynorsk, Norwegian", + "nativeName":"Norwegian Nynorsk; Nynorsk, Norwegian", + "encoding":"OPENAIRE", + "code":"nno" + }, + { + "englishName":"Nubian", + "nativeName":"Nubian", + "encoding":"OPENAIRE", + "code":"nub" + }, + { + "englishName":"Nyamwezi", + "nativeName":"Nyamwezi", + "encoding":"OPENAIRE", + "code":"nym" + }, + { + "englishName":"Nyankole", + "nativeName":"Nyankole", + "encoding":"OPENAIRE", + "code":"nyn" + }, + { + "englishName":"Nyoro", + "nativeName":"Nyoro", + "encoding":"OPENAIRE", + "code":"nyo" + }, + { + "englishName":"Nzima", + "nativeName":"Nzima", + "encoding":"OPENAIRE", + "code":"nzi" + }, + { + "englishName":"Occitan (post 1500); Provençal", + "nativeName":"Occitan (post 1500); Provençal", + "encoding":"OPENAIRE", + "code":"oci" + }, + { + "englishName":"Ojibwa", + "nativeName":"Ojibwa", + "encoding":"OPENAIRE", + "code":"oji" + }, + { + "englishName":"Old English", + "nativeName":"Old English", + "encoding":"OPENAIRE", + "code":"ang" + }, + { + "englishName":"Old French", + "nativeName":"Old French", + "encoding":"OPENAIRE", + "code":"fro" + }, + { + "englishName":"Old High German", + "nativeName":"Old High German", + "encoding":"OPENAIRE", + "code":"goh" + }, + { + "englishName":"Oriya", + "nativeName":"Oriya", + "encoding":"OPENAIRE", + "code":"ori" + }, + { + "englishName":"Oromo", + "nativeName":"Oromo", + "encoding":"OPENAIRE", + "code":"orm" + }, + { + "englishName":"Osage", + "nativeName":"Osage", + "encoding":"OPENAIRE", + "code":"osa" + }, + { + "englishName":"Ossetian; Ossetic", + "nativeName":"Ossetian; Ossetic", + "encoding":"OPENAIRE", + "code":"oss" + }, + { + "englishName":"Otomian", + "nativeName":"Otomian", + "encoding":"OPENAIRE", + "code":"oto" + }, + { + "englishName":"Ottoman", + "nativeName":"Ottoman", + "encoding":"OPENAIRE", + "code":"ota" + }, + { + "englishName":"Pahlavi", + "nativeName":"Pahlavi", + "encoding":"OPENAIRE", + "code":"pal" + }, + { + "englishName":"Palauan", + "nativeName":"Palauan", + "encoding":"OPENAIRE", + "code":"pau" + }, + { + "englishName":"Pali", + "nativeName":"Pali", + "encoding":"OPENAIRE", + "code":"pli" + }, + { + "englishName":"Pampanga", + "nativeName":"Pampanga", + "encoding":"OPENAIRE", + "code":"pam" + }, + { + "englishName":"Pangasinan", + "nativeName":"Pangasinan", + "encoding":"OPENAIRE", + "code":"pag" + }, + { + "englishName":"Panjabi; Punjabi", + "nativeName":"Panjabi; Punjabi", + "encoding":"OPENAIRE", + "code":"pan" + }, + { + "englishName":"Papiamento", + "nativeName":"Papiamento", + "encoding":"OPENAIRE", + "code":"pap" + }, + { + "englishName":"Papuan-Australian", + "nativeName":"Papuan-Australian", + "encoding":"OPENAIRE", + "code":"paa" + }, + { + "englishName":"Persian", + "nativeName":"Persian", + "encoding":"OPENAIRE", + "code":"fas/per" + }, + { + "englishName":"Persian, Old (ca 600 - 400 B.C.)", + "nativeName":"Persian, Old (ca 600 - 400 B.C.)", + "encoding":"OPENAIRE", + "code":"peo" + }, + { + "englishName":"Phoenician", + "nativeName":"Phoenician", + "encoding":"OPENAIRE", + "code":"phn" + }, + { + "englishName":"Polish", + "nativeName":"Polish", + "encoding":"OPENAIRE", + "code":"pol" + }, + { + "englishName":"Ponape", + "nativeName":"Ponape", + "encoding":"OPENAIRE", + "code":"pon" + }, + { + "englishName":"Portuguese", + "nativeName":"Portuguese", + "encoding":"OPENAIRE", + "code":"por" + }, + { + "englishName":"Portuguese-based Creoles and Pidgins", + "nativeName":"Portuguese-based Creoles and Pidgins", + "encoding":"OPENAIRE", + "code":"cpp" + }, + { + "englishName":"Prakrit", + "nativeName":"Prakrit", + "encoding":"OPENAIRE", + "code":"pra" + }, + { + "englishName":"Provencal", + "nativeName":"Provencal", + "encoding":"OPENAIRE", + "code":"pro" + }, + { + "englishName":"Pushto", + "nativeName":"Pushto", + "encoding":"OPENAIRE", + "code":"pus" + }, + { + "englishName":"Quechua", + "nativeName":"Quechua", + "encoding":"OPENAIRE", + "code":"que" + }, + { + "englishName":"Raeto-Romance", + "nativeName":"Raeto-Romance", + "encoding":"OPENAIRE", + "code":"roh" + }, + { + "englishName":"Rajasthani", + "nativeName":"Rajasthani", + "encoding":"OPENAIRE", + "code":"raj" + }, + { + "englishName":"Rarotongan", + "nativeName":"Rarotongan", + "encoding":"OPENAIRE", + "code":"rar" + }, + { + "englishName":"Romance", + "nativeName":"Romance", + "encoding":"OPENAIRE", + "code":"roa" + }, + { + "englishName":"Romanian", + "nativeName":"Romanian", + "encoding":"OPENAIRE", + "code":"ron/rum" + }, + { + "englishName":"Romany", + "nativeName":"Romany", + "encoding":"OPENAIRE", + "code":"rom" + }, + { + "englishName":"Rundi", + "nativeName":"Rundi", + "encoding":"OPENAIRE", + "code":"run" + }, + { + "englishName":"Russian", + "nativeName":"Russian", + "encoding":"OPENAIRE", + "code":"rus" + }, + { + "englishName":"Salishan", + "nativeName":"Salishan", + "encoding":"OPENAIRE", + "code":"sal" + }, + { + "englishName":"Samaritan", + "nativeName":"Samaritan", + "encoding":"OPENAIRE", + "code":"sam" + }, + { + "englishName":"Sami", + "nativeName":"Sami", + "encoding":"OPENAIRE", + "code":"smi" + }, + { + "englishName":"Samoan", + "nativeName":"Samoan", + "encoding":"OPENAIRE", + "code":"smo" + }, + { + "englishName":"Sandawe", + "nativeName":"Sandawe", + "encoding":"OPENAIRE", + "code":"sad" + }, + { + "englishName":"Sango", + "nativeName":"Sango", + "encoding":"OPENAIRE", + "code":"sag" + }, + { + "englishName":"Sanskrit", + "nativeName":"Sanskrit", + "encoding":"OPENAIRE", + "code":"san" + }, + { + "englishName":"Sardinian", + "nativeName":"Sardinian", + "encoding":"OPENAIRE", + "code":"srd" + }, + { + "englishName":"Scots", + "nativeName":"Scots", + "encoding":"OPENAIRE", + "code":"sco" + }, + { + "englishName":"Selkup", + "nativeName":"Selkup", + "encoding":"OPENAIRE", + "code":"sel" + }, + { + "englishName":"Semitic", + "nativeName":"Semitic", + "encoding":"OPENAIRE", + "code":"sem" + }, + { + "englishName":"Serbian", + "nativeName":"Serbian", + "encoding":"OPENAIRE", + "code":"srp" + }, + { + "englishName":"Serbo-Croatian", + "nativeName":"Serbo-Croatian", + "encoding":"OPENAIRE", + "code":"scr" + }, + { + "englishName":"Serer", + "nativeName":"Serer", + "encoding":"OPENAIRE", + "code":"srr" + }, + { + "englishName":"Shan", + "nativeName":"Shan", + "encoding":"OPENAIRE", + "code":"shn" + }, + { + "englishName":"Shona", + "nativeName":"Shona", + "encoding":"OPENAIRE", + "code":"sna" + }, + { + "englishName":"Sichuan Yi", + "nativeName":"Sichuan Yi", + "encoding":"OPENAIRE", + "code":"iii" + }, + { + "englishName":"Sidamo", + "nativeName":"Sidamo", + "encoding":"OPENAIRE", + "code":"sid" + }, + { + "englishName":"Siksika", + "nativeName":"Siksika", + "encoding":"OPENAIRE", + "code":"bla" + }, + { + "englishName":"Sindhi", + "nativeName":"Sindhi", + "encoding":"OPENAIRE", + "code":"snd" + }, + { + "englishName":"Sinhala; Sinhalese", + "nativeName":"Sinhala; Sinhalese", + "encoding":"OPENAIRE", + "code":"sin" + }, + { + "englishName":"Sino-Tibetan", + "nativeName":"Sino-Tibetan", + "encoding":"OPENAIRE", + "code":"sit" + }, + { + "englishName":"Siouan", + "nativeName":"Siouan", + "encoding":"OPENAIRE", + "code":"sio" + }, + { + "englishName":"Slavic", + "nativeName":"Slavic", + "encoding":"OPENAIRE", + "code":"sla" + }, + { + "englishName":"Slovak", + "nativeName":"Slovak", + "encoding":"OPENAIRE", + "code":"slk/slo" + }, + { + "englishName":"Slovenian", + "nativeName":"Slovenian", + "encoding":"OPENAIRE", + "code":"slv" + }, + { + "englishName":"Sogdian", + "nativeName":"Sogdian", + "encoding":"OPENAIRE", + "code":"sog" + }, + { + "englishName":"Somali", + "nativeName":"Somali", + "encoding":"OPENAIRE", + "code":"som" + }, + { + "englishName":"Songhai", + "nativeName":"Songhai", + "encoding":"OPENAIRE", + "code":"son" + }, + { + "englishName":"Sorbian", + "nativeName":"Sorbian", + "encoding":"OPENAIRE", + "code":"wen" + }, + { + "englishName":"Sotho", + "nativeName":"Sotho", + "encoding":"OPENAIRE", + "code":"nso" + }, + { + "englishName":"Sotho, Southern", + "nativeName":"Sotho, Southern", + "encoding":"OPENAIRE", + "code":"sot" + }, + { + "englishName":"South American Indian", + "nativeName":"South American Indian", + "encoding":"OPENAIRE", + "code":"sai" + }, + { + "englishName":"Spanish", + "nativeName":"Spanish", + "encoding":"OPENAIRE", + "code":"esl/spa" + }, + { + "englishName":"Spanish; Castilian", + "nativeName":"Spanish; Castilian", + "encoding":"OPENAIRE", + "code":"spa" + }, + { + "englishName":"Sukuma", + "nativeName":"Sukuma", + "encoding":"OPENAIRE", + "code":"suk" + }, + { + "englishName":"Sumerian", + "nativeName":"Sumerian", + "encoding":"OPENAIRE", + "code":"sux" + }, + { + "englishName":"Sundanese", + "nativeName":"Sundanese", + "encoding":"OPENAIRE", + "code":"sun" + }, + { + "englishName":"Susu", + "nativeName":"Susu", + "encoding":"OPENAIRE", + "code":"sus" + }, + { + "englishName":"Swahili", + "nativeName":"Swahili", + "encoding":"OPENAIRE", + "code":"swa" + }, + { + "englishName":"Swati", + "nativeName":"Swati", + "encoding":"OPENAIRE", + "code":"ssw" + }, + { + "englishName":"Swedish", + "nativeName":"Swedish", + "encoding":"OPENAIRE", + "code":"swe" + }, + { + "englishName":"Syriac", + "nativeName":"Syriac", + "encoding":"OPENAIRE", + "code":"syr" + }, + { + "englishName":"Tagalog", + "nativeName":"Tagalog", + "encoding":"OPENAIRE", + "code":"tgl" + }, + { + "englishName":"Tahitian", + "nativeName":"Tahitian", + "encoding":"OPENAIRE", + "code":"tah" + }, + { + "englishName":"Tajik", + "nativeName":"Tajik", + "encoding":"OPENAIRE", + "code":"tgk" + }, + { + "englishName":"Tamashek", + "nativeName":"Tamashek", + "encoding":"OPENAIRE", + "code":"tmh" + }, + { + "englishName":"Tamil", + "nativeName":"Tamil", + "encoding":"OPENAIRE", + "code":"tam" + }, + { + "englishName":"Tatar", + "nativeName":"Tatar", + "encoding":"OPENAIRE", + "code":"tat" + }, + { + "englishName":"Telugu", + "nativeName":"Telugu", + "encoding":"OPENAIRE", + "code":"tel" + }, + { + "englishName":"Tereno", + "nativeName":"Tereno", + "encoding":"OPENAIRE", + "code":"ter" + }, + { + "englishName":"Thai", + "nativeName":"Thai", + "encoding":"OPENAIRE", + "code":"tha" + }, + { + "englishName":"Tibetan", + "nativeName":"Tibetan", + "encoding":"OPENAIRE", + "code":"bod/tib" + }, + { + "englishName":"Tigre", + "nativeName":"Tigre", + "encoding":"OPENAIRE", + "code":"tig" + }, + { + "englishName":"Tigrinya", + "nativeName":"Tigrinya", + "encoding":"OPENAIRE", + "code":"tir" + }, + { + "englishName":"Timne", + "nativeName":"Timne", + "encoding":"OPENAIRE", + "code":"tem" + }, + { + "englishName":"Tivi", + "nativeName":"Tivi", + "encoding":"OPENAIRE", + "code":"tiv" + }, + { + "englishName":"Tlingit", + "nativeName":"Tlingit", + "encoding":"OPENAIRE", + "code":"tli" + }, + { + "englishName":"Tonga (Tonga Islands)", + "nativeName":"Tonga (Tonga Islands)", + "encoding":"OPENAIRE", + "code":"ton" + }, + { + "englishName":"Tonga(Nyasa)", + "nativeName":"Tonga(Nyasa)", + "encoding":"OPENAIRE", + "code":"tog" + }, + { + "englishName":"Truk", + "nativeName":"Truk", + "encoding":"OPENAIRE", + "code":"tru" + }, + { + "englishName":"Tsimshian", + "nativeName":"Tsimshian", + "encoding":"OPENAIRE", + "code":"tsi" + }, + { + "englishName":"Tsonga", + "nativeName":"Tsonga", + "encoding":"OPENAIRE", + "code":"tso" + }, + { + "englishName":"Tswana", + "nativeName":"Tswana", + "encoding":"OPENAIRE", + "code":"tsn" + }, + { + "englishName":"Tumbuka", + "nativeName":"Tumbuka", + "encoding":"OPENAIRE", + "code":"tum" + }, + { + "englishName":"Turkish", + "nativeName":"Turkish", + "encoding":"OPENAIRE", + "code":"tur" + }, + { + "englishName":"Turkmen", + "nativeName":"Turkmen", + "encoding":"OPENAIRE", + "code":"tuk" + }, + { + "englishName":"Tuvinian", + "nativeName":"Tuvinian", + "encoding":"OPENAIRE", + "code":"tyv" + }, + { + "englishName":"Twi", + "nativeName":"Twi", + "encoding":"OPENAIRE", + "code":"twi" + }, + { + "englishName":"Ugaritic", + "nativeName":"Ugaritic", + "encoding":"OPENAIRE", + "code":"uga" + }, + { + "englishName":"Uighur; Uyghur", + "nativeName":"Uighur; Uyghur", + "encoding":"OPENAIRE", + "code":"uig" + }, + { + "englishName":"Ukrainian", + "nativeName":"Ukrainian", + "encoding":"OPENAIRE", + "code":"ukr" + }, + { + "englishName":"Umbundu", + "nativeName":"Umbundu", + "encoding":"OPENAIRE", + "code":"umb" + }, + { + "englishName":"Undetermined", + "nativeName":"Undetermined", + "encoding":"OPENAIRE", + "code":"und" + }, + { + "englishName":"Urdu", + "nativeName":"Urdu", + "encoding":"OPENAIRE", + "code":"urd" + }, + { + "englishName":"Uzbek", + "nativeName":"Uzbek", + "encoding":"OPENAIRE", + "code":"uzb" + }, + { + "englishName":"Vai", + "nativeName":"Vai", + "encoding":"OPENAIRE", + "code":"vai" + }, + { + "englishName":"Venda", + "nativeName":"Venda", + "encoding":"OPENAIRE", + "code":"ven" + }, + { + "englishName":"Vietnamese", + "nativeName":"Vietnamese", + "encoding":"OPENAIRE", + "code":"vie" + }, + { + "englishName":"Volapük", + "nativeName":"Volapük", + "encoding":"OPENAIRE", + "code":"vol" + }, + { + "englishName":"Votic", + "nativeName":"Votic", + "encoding":"OPENAIRE", + "code":"vot" + }, + { + "englishName":"Wakashan", + "nativeName":"Wakashan", + "encoding":"OPENAIRE", + "code":"wak" + }, + { + "englishName":"Walamo", + "nativeName":"Walamo", + "encoding":"OPENAIRE", + "code":"wal" + }, + { + "englishName":"Walloon", + "nativeName":"Walloon", + "encoding":"OPENAIRE", + "code":"wln" + }, + { + "englishName":"Waray", + "nativeName":"Waray", + "encoding":"OPENAIRE", + "code":"war" + }, + { + "englishName":"Washo", + "nativeName":"Washo", + "encoding":"OPENAIRE", + "code":"was" + }, + { + "englishName":"Welsh", + "nativeName":"Welsh", + "encoding":"OPENAIRE", + "code":"cym/wel" + }, + { + "englishName":"Wolof", + "nativeName":"Wolof", + "encoding":"OPENAIRE", + "code":"wol" + }, + { + "englishName":"Xhosa", + "nativeName":"Xhosa", + "encoding":"OPENAIRE", + "code":"xho" + }, + { + "englishName":"Yakut", + "nativeName":"Yakut", + "encoding":"OPENAIRE", + "code":"sah" + }, + { + "englishName":"Yao", + "nativeName":"Yao", + "encoding":"OPENAIRE", + "code":"yao" + }, + { + "englishName":"Yap", + "nativeName":"Yap", + "encoding":"OPENAIRE", + "code":"yap" + }, + { + "englishName":"Yiddish", + "nativeName":"Yiddish", + "encoding":"OPENAIRE", + "code":"yid" + }, + { + "englishName":"Yoruba", + "nativeName":"Yoruba", + "encoding":"OPENAIRE", + "code":"yor" + }, + { + "englishName":"Zapotec", + "nativeName":"Zapotec", + "encoding":"OPENAIRE", + "code":"zap" + }, + { + "englishName":"Zenaga", + "nativeName":"Zenaga", + "encoding":"OPENAIRE", + "code":"zen" + }, + { + "englishName":"Zhuang; Chuang", + "nativeName":"Zhuang; Chuang", + "encoding":"OPENAIRE", + "code":"zha" + }, + { + "englishName":"Zulu", + "nativeName":"Zulu", + "encoding":"OPENAIRE", + "code":"zul" + }, + { + "englishName":"Zuni", + "nativeName":"Zuni", + "encoding":"OPENAIRE", + "code":"zun" + }, + { + "englishName":"old Irish", + "nativeName":"old Irish", + "encoding":"OPENAIRE", + "code":"sga" + } + ] +} diff --git a/portal-2/src/app/utils/vocabularies/publicationTypes.json b/portal-2/src/app/utils/vocabularies/publicationTypes.json new file mode 100644 index 00000000..3e5ae8fc --- /dev/null +++ b/portal-2/src/app/utils/vocabularies/publicationTypes.json @@ -0,0 +1,188 @@ +{ + "id":"66daaedb-c0de-48d3-a1ff-60bf5756c9be_Vm9jYWJ1bGFyeURTUmVzb3VyY2VzL1ZvY2FidWxhcnlEU1Jlc291cmNlVHlwZQ==", + "name":"dnet:publication_resource", + "description":"dnet:publication_resource", + "code":"dnet:publication_resource", + "terms":[ + { + "englishName":"Annotation", + "nativeName":"Annotation", + "encoding":"OPENAIRE", + "code":"0018" + }, + { + "englishName":"Article", + "nativeName":"Article", + "encoding":"OPENAIRE", + "code":"0001" + }, + { + "englishName":"Bachelor thesis", + "nativeName":"Bachelor thesis", + "encoding":"OPENAIRE", + "code":"0008" + }, + { + "englishName":"Book", + "nativeName":"Book", + "encoding":"OPENAIRE", + "code":"0002" + }, + { + "englishName":"Collection", + "nativeName":"Collection", + "encoding":"OPENAIRE", + "code":"0022" + }, + { + "englishName":"Conference object", + "nativeName":"Conference object", + "encoding":"OPENAIRE", + "code":"0004" + }, + { + "englishName":"Contribution for newspaper or weekly magazine", + "nativeName":"Contribution for newspaper or weekly magazine", + "encoding":"OPENAIRE", + "code":"0005" + }, + { + "englishName":"Dataset", + "nativeName":"Dataset", + "encoding":"OPENAIRE", + "code":"0021" + }, + { + "englishName":"Doctoral thesis", + "nativeName":"Doctoral thesis", + "encoding":"OPENAIRE", + "code":"0006" + }, + { + "englishName":"Event", + "nativeName":"Event", + "encoding":"OPENAIRE", + "code":"0023" + }, + { + "englishName":"External research report", + "nativeName":"External research report", + "encoding":"OPENAIRE", + "code":"0009" + }, + { + "englishName":"Film", + "nativeName":"Film", + "encoding":"OPENAIRE", + "code":"0024" + }, + { + "englishName":"Image", + "nativeName":"Image", + "encoding":"OPENAIRE", + "code":"0025" + }, + { + "englishName":"InteractiveResource", + "nativeName":"InteractiveResource", + "encoding":"OPENAIRE", + "code":"0026" + }, + { + "englishName":"Internal report", + "nativeName":"Internal report", + "encoding":"OPENAIRE", + "code":"0011" + }, + { + "englishName":"Lecture", + "nativeName":"Lecture", + "encoding":"OPENAIRE", + "code":"0010" + }, + { + "englishName":"Master thesis", + "nativeName":"Master thesis", + "encoding":"OPENAIRE", + "code":"0007" + }, + { + "englishName":"Model", + "nativeName":"Model", + "encoding":"OPENAIRE", + "code":"0027" + }, + { + "englishName":"Newsletter", + "nativeName":"Newsletter", + "encoding":"OPENAIRE", + "code":"0012" + }, + { + "englishName":"Other", + "nativeName":"Other", + "encoding":"OPENAIRE", + "code":"0020" + }, + { + "englishName":"Part of book or chapter of book", + "nativeName":"Part of book or chapter of book", + "encoding":"OPENAIRE", + "code":"0013" + }, + { + "englishName":"Patent", + "nativeName":"Patent", + "encoding":"OPENAIRE", + "code":"0019" + }, + { + "englishName":"PhysicalObject", + "nativeName":"PhysicalObject", + "encoding":"OPENAIRE", + "code":"0028" + }, + { + "englishName":"Preprint", + "nativeName":"Preprint", + "encoding":"OPENAIRE", + "code":"0016" + }, + { + "englishName":"Report", + "nativeName":"Report", + "encoding":"OPENAIRE", + "code":"0017" + }, + { + "englishName":"Research", + "nativeName":"Research", + "encoding":"OPENAIRE", + "code":"0014" + }, + { + "englishName":"Review", + "nativeName":"Review", + "encoding":"OPENAIRE", + "code":"0015" + }, + { + "englishName":"Software", + "nativeName":"Software", + "encoding":"OPENAIRE", + "code":"0029" + }, + { + "englishName":"Sound", + "nativeName":"Sound", + "encoding":"OPENAIRE", + "code":"0030" + }, + { + "englishName":"Unknown", + "nativeName":"Unknown", + "encoding":"OPENAIRE", + "code":"0000" + } + ] +}