Documentation ¶
Overview ¶
Package doaj maps DOAJ metadata to intermediate schema.
Copyright 2015 by Leipzig University Library, http://ub.uni-leipzig.de The Finc Authors, http://finc.info Martin Czygan, <martin.czygan@uni-leipzig.de>
This file is part of some open source application.
Some open source application is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Some open source application is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Foobar. If not, see <http://www.gnu.org/licenses/>.
@license GPL-3.0+ <http://spdx.org/licenses/GPL-3.0+>
Index ¶
Constants ¶
const ( SourceIdentifier = "28" Collection = "DOAJ Directory of Open Access Journals" Format = "ElectronicArticle" Genre = "article" // Default ris.type DefaultRefType = "EJOUR" )
Variables ¶
var ( LCCPatterns = assetutil.MustLoadRegexpMap("assets/finc/lcc.json") LanguageMap = assetutil.MustLoadStringMap("assets/doaj/language-iso-639-3.json") DOIPattern = regexp.MustCompile(`10[.][a-zA-Z0-9]+/[\S]*$`) )
Functions ¶
This section is empty.
Types ¶
type ArticleV1 ¶ added in v0.1.256
type ArticleV1 struct { Bibjson struct { Abstract string `json:"abstract"` Author []struct { Name string `json:"name"` } `json:"author"` EndPage string `json:"end_page"` Identifier []struct { Id string `json:"id"` Type string `json:"type"` } `json:"identifier"` Journal struct { Country string `json:"country"` Issns []string `json:"issns"` Language []string `json:"language"` License []struct { OpenAccess bool `json:"open_access"` Title string `json:"title"` Type string `json:"type"` Url string `json:"url"` } `json:"license"` Number string `json:"number"` Publisher string `json:"publisher"` Title string `json:"title"` Volume string `json:"volume"` } `json:"journal"` Keywords []string `json:"keywords"` Link []struct { Type string `json:"type"` Url string `json:"url"` } `json:"link"` Month string `json:"month"` StartPage string `json:"start_page"` Subject []struct { Code string `json:"code"` Scheme string `json:"scheme"` Term string `json:"term"` } `json:"subject"` Title string `json:"title"` Year string `json:"year"` } `json:"bibjson"` CreatedDate string `json:"created_date"` Id string `json:"id"` LastUpdated string `json:"last_updated"` }
ArticleV1 represents an API v1 response.
func (ArticleV1) ToIntermediateSchema ¶ added in v0.1.256
func (doc ArticleV1) ToIntermediateSchema() (*finc.IntermediateSchema, error)
ToIntermediateSchema converts a doaj document to intermediate schema. For now any record, that has no usable date will be skipped.
type BibJSON ¶
type BibJSON struct { Abstract string `json:"abstract"` Author []struct { Name string `json:"name"` } `json:"author"` EndPage string `json:"end_page"` Identifier []struct { ID string `json:"id"` Type string `json:"type"` } `json:"identifier"` Journal struct { Country string `json:"country"` Language []string `json:"language"` License []struct { Title string `json:"title"` Type string `json:"type"` OpenAccess bool `json:"open_access"` URL string `json:"url"` } `json:"license"` Number string `json:"number"` Publisher string `json:"publisher"` Title string `json:"title"` Volume string `json:"volume"` } `json:"journal"` Link []struct { Type string `json:"type"` URL string `json:"url"` } `json:"link"` Month string `json:"month"` StartPage string `json:"start_page"` Subject []struct { Code string `json:"code"` Scheme string `json:"scheme"` Term string `json:"term"` } `json:"subject"` Title string `json:"title"` Year string `json:"year"` }
BibJSON contains bibliographic data.
type Document ¶
type Document struct { BibJSON BibJSON `json:"bibjson"` Created string `json:"created_date"` ID string `json:"id"` Index Index `json:"index"` Updated string `json:"last_updated"` Type string // make Response.Type available here }
Document metadata.
func (Document) Date ¶
Date return the document date. Journals entries usually have no date, so they will err.
func (Document) ToIntermediateSchema ¶
func (doc Document) ToIntermediateSchema() (*finc.IntermediateSchema, error)
ToIntermediateSchema converts a doaj document to intermediate schema. For now any record, that has no usable date will be skipped.
type Index ¶
type Index struct { Classification []string `json:"classification"` Country string `json:"country"` Date string `json:"date"` ISSN []string `json:"issn"` Language []string `json:"language"` License []string `json:"license"` SchemaCode []string `json:"schema_code"` SchemaSubjects []string `json:"schema_subjects"` Subjects []string `json:"subject"` }
Index metadata.
type Response ¶
type Response struct { ID string `json:"_id"` Index string `json:"_index"` Source Document `json:"_source"` Type string `json:"_type"` }
Response from elasticsearch.
func (*Response) ToIntermediateSchema ¶
func (resp *Response) ToIntermediateSchema() (*finc.IntermediateSchema, error)
ToIntermediateSchema returns an intermediate schema from a DOAJ elasticsearch response.