datacite

package
v0.1.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DCToCMTranslations = map[string]string{
	"Audiovisual":           "Audiovisual",
	"BlogPosting":           "Article",
	"Book":                  "Book",
	"BookChapter":           "BookChapter",
	"Collection":            "Collection",
	"ComputationalNotebook": "ComputationalNotebook",
	"ConferencePaper":       "ProceedingsArticle",
	"ConferenceProceeding":  "Proceedings",
	"DataPaper":             "JournalArticle",
	"Dataset":               "Dataset",
	"Dissertation":          "Dissertation",
	"Event":                 "Event",
	"Image":                 "Image",
	"Instrument":            "Instrument",
	"InteractiveResource":   "InteractiveResource",
	"Journal":               "Journal",
	"JournalArticle":        "JournalArticle",
	"Model":                 "Model",
	"OutputManagementPlan":  "OutputManagementPlan",
	"PeerReview":            "PeerReview",
	"PhysicalObject":        "PhysicalObject",
	"Poster":                "Presentation",
	"Preprint":              "Article",
	"Report":                "Report",
	"Service":               "Service",
	"Software":              "Software",
	"Sound":                 "Sound",
	"Standard":              "Standard",
	"StudyRegistration":     "StudyRegistration",
	"Text":                  "Document",
	"Thesis":                "Dissertation",
	"Workflow":              "Workflow",
	"Other":                 "Other",
}

source: https://github.com/datacite/schema/blob/master/source/meta/kernel-4/include/datacite-resourceType-v4.xsd

Functions

func DataciteQueryUrl

func DataciteQueryUrl(number int, sample bool) string

func FetchDatacite

func FetchDatacite(str string) (types.Data, error)

func FetchDataciteList

func FetchDataciteList(number int, sample bool) ([]types.Data, error)

func GetContributor

func GetContributor(v Contributor) types.Contributor

func ReadDatacite

func ReadDatacite(content Content) (types.Data, error)

read DataCite JSON response and return work struct in Commonmeta format

Types

type Attributes

type Attributes struct {
	DOI                  string `json:"doi"`
	Prefix               string `json:"prefix"`
	Suffix               string `json:"suffix"`
	AlternateIdentifiers []struct {
		AlternateIdentifier     string `json:"alternateIdentifier"`
		AlternateIdentifierType string `json:"alternateIdentifierType"`
	} `json:"alternateIdentifiers"`
	Creators  []Contributor `json:"creators"`
	Publisher string        `json:"publisher"`
	Container struct {
		Type           string `json:"type"`
		Identifier     string `json:"identifier"`
		IdentifierType string `json:"identifierType"`
		Title          string `json:"title"`
		Volume         string `json:"volume"`
		Issue          string `json:"issue"`
		FirstPage      string `json:"firstPage"`
		LastPage       string `json:"lastPage"`
	} `json:"container"`
	PublicationYear int `json:"publicationYear"`
	Titles          []struct {
		Title     string `json:"title"`
		TitleType string `json:"titleType"`
		Lang      string `json:"lang"`
	} `json:"titles"`
	Url      string `json:"url"`
	Subjects []struct {
		Subject string `json:"subject"`
	} `json:"subjects"`
	Contributors []Contributor `json:"contributors"`
	Dates        []struct {
		Date            string `json:"date"`
		DateType        string `json:"dateType"`
		DateInformation string `json:"dateInformation"`
	} `json:"dates"`
	Language string `json:"language"`
	Types    struct {
		ResourceTypeGeneral string `json:"resourceTypeGeneral"`
		ResourceType        string `json:"resourceType"`
	} `json:"types"`
	RelatedIdentifiers []struct {
		RelatedIdentifier     string `json:"relatedIdentifier"`
		RelatedIdentifierType string `json:"relatedIdentifierType"`
		RelationType          string `json:"relationType"`
	} `json:"relatedIdentifiers"`
	Sizes      []string `json:"sizes"`
	Formats    []string `json:"formats"`
	Version    string   `json:"version"`
	RightsList []struct {
		Rights                 string `json:"rights"`
		RightsURI              string `json:"rightsUri"`
		SchemeURI              string `json:"schemeUri"`
		RightsIdentifier       string `json:"rightsIdentifier"`
		RightsIdentifierScheme string `json:"rightsIdentifierScheme"`
	}
	Descriptions []struct {
		Description     string `json:"description"`
		DescriptionType string `json:"descriptionType"`
		Lang            string `json:"lang"`
	} `json:"descriptions"`
	GeoLocations []struct {
		GeoLocationPoint struct {
			PointLongitude float64 `json:"pointLongitude,string"`
			PointLatitude  float64 `json:"pointLatitude,string"`
		} `json:"geoLocationPoint"`
		GeoLocationBox struct {
			WestBoundLongitude float64 `json:"westBoundLongitude,string"`
			EastBoundLongitude float64 `json:"eastBoundLongitude,string"`
			SouthBoundLatitude float64 `json:"southBoundLatitude,string"`
			NorthBoundLatitude float64 `json:"northBoundLatitude,string"`
		} `json:"geoLocationBox"`
		GeoLocationPlace string `json:"geoLocationPlace"`
	} `json:"geoLocations"`
	FundingReferences []struct {
		FunderName           string `json:"funderName"`
		FunderIdentifier     string `json:"funderIdentifier"`
		FunderIdentifierType string `json:"funderIdentifierType"`
		AwardNumber          string `json:"awardNumber"`
		AwardURI             string `json:"awardUri"`
	} `json:"fundingReferences"`
}

type Content

type Content struct {
	ID         string     `json:"id"`
	Type       string     `json:"type"`
	Attributes Attributes `json:"attributes"`
}

func GetDatacite

func GetDatacite(pid string) (Content, error)

func GetDataciteList

func GetDataciteList(number int, sample bool) ([]Content, error)

type Contributor

type Contributor struct {
	Name            string `json:"name"`
	GivenName       string `json:"givenName"`
	FamilyName      string `json:"familyName"`
	NameType        string `json:"nameType"`
	NameIdentifiers []struct {
		SchemeURI            string `json:"schemeUri"`
		NameIdentifier       string `json:"nameIdentifier"`
		NameIdentifierScheme string `json:"nameIdentifierScheme"`
	} `json:"nameIdentifiers"`
	Affiliation     []string `json:"affiliation"`
	ContributorType string   `json:"contributorType"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL