schemaorg

package
v0.3.19 Latest Latest
Warning

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

Go to latest
Published: May 17, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package schemaorg converts Schema.org metadata to/from the commonmeta metadata format.

Index

Constants

This section is empty.

Variables

View Source
var CMToSOMappings = map[string]string{
	"Article":        "Article",
	"Audiovisual":    "CreativeWork",
	"Book":           "Book",
	"BookChapter":    "BookChapter",
	"Collection":     "CreativeWork",
	"Dataset":        "Dataset",
	"Dissertation":   "Dissertation",
	"Document":       "CreativeWork",
	"Entry":          "CreativeWork",
	"Event":          "CreativeWork",
	"Figure":         "CreativeWork",
	"Image":          "CreativeWork",
	"Instrument":     "Instrument",
	"JournalArticle": "ScholarlyArticle",
	"LegalDocument":  "Legislation",
	"Software":       "SoftwareSourceCode",
	"Presentation":   "PresentationDigitalDocument",
}

CMToSOMappings maps Commonmeta types to Schema.org types.

Functions

func Read added in v0.2.1

func Read(content Content) (commonmeta.Data, error)

Read reads Schema.org metadata and converts it to commonmeta.

func Write added in v0.2.6

func Write(data commonmeta.Data) ([]byte, []gojsonschema.ResultError)

Write writes schemaorg metadata.

func WriteAll added in v0.2.13

func WriteAll(list []commonmeta.Data) ([]byte, []gojsonschema.ResultError)

WriteAll writes a list of schemaorg metadata.

Types

type Author added in v0.2.6

type Author struct {
	ID           string         `json:"@id,omitempty"`
	Type         string         `json:"@type,omitempty"`
	GivenName    string         `json:"givenName,omitempty"`
	FamilyName   string         `json:"familyName"`
	Name         string         `json:"name,omitempty"`
	Affiliations []Organization `json:"affiliations,omitempty"`
}

Author represents the author of this CreativeWork.

type Citation added in v0.2.7

type Citation struct {
	ID   string `json:"@id,omitempty"`
	Type string `json:"@type,omitempty"`
	Name string `json:"name,omitempty"`
}

Citation represents a citation or reference to another creative work, such as another publication, web page, scholarly article, etc.

type CodeRepository added in v0.2.6

type CodeRepository struct {
}

Coderepository

type Content

type Content struct {
	*SchemaOrg
	Identifier json.RawMessage `json:"identifier"`
}

Content represents the SchemaOrg metadata returned from SchemaOrg sources. The type is more flexible than the SchemaOrg type, allowing for different formats of some metadata. Identifier can be string or []string.

type DataCatalog added in v0.2.6

type DataCatalog struct {
	ID   string `json:"@id,omitempty"`
	Type string `json:"@type,omitempty"`
	Name string `json:"name,omitempty"`
}

Datacatalog represents a collection of datasets.

type Editor added in v0.2.6

type Editor struct {
	ID           string         `json:"@id,omitempty"`
	Type         string         `json:"@type,omitempty"`
	GivenName    string         `json:"givenName,omitempty"`
	FamilyName   string         `json:"familyName"`
	Name         string         `json:"name,omitempty"`
	Affiliations []Organization `json:"affiliations,omitempty"`
}

Editor represents

type MediaObject added in v0.2.6

type MediaObject struct {
	Type           string `json:"@type"`
	ContentURL     string `json:"contentUrl"`
	EncodingFormat string `json:"encodingFormat,omitempty"`
	Name           string `json:"name,omitempty"`
	SHA256         string `json:"sha256,omitempty"`
	Size           string `json:"size,omitempty"`
}

MediaObject represents a media object, such as an image, video, audio, or text object embedded in a web page or a downloadable dataset i.e. DataDownload.

type Organization added in v0.2.6

type Organization struct {
	ID   string `json:"@id,omitempty"`
	Name string `json:"name"`
}

Organization represents an organization such as a school, NGO, corporation, club, etc.

type Periodical added in v0.2.6

type Periodical struct {
	ID   string `json:"@id,omitempty"`
	Type string `json:"@type"`
	Name string `json:"name,omitempty"`
	ISSN string `json:"issn,omitempty"`
}

Periodical represents a publication in any medium issued in successive parts bearing numerical or chronological designations and intended to continue indefinitely, such as a magazine, scholarly journal, or newspaper.

type Person added in v0.2.6

type Person struct {
	ID         string `json:"@id,omitempty"`
	GivenName  string `json:"givenName,omitempty"`
	FamilyName string `json:"familyName"`
}

Person represents a person (alive, dead, undead, or fictional).

type Provider added in v0.2.6

type Provider struct {
	Type string `json:"@type"`
	Name string `json:"name"`
}

Provider represents the provider of the metadata.

type Publisher added in v0.2.6

type Publisher struct {
	Type string `json:"@type"`
	Name string `json:"name"`
}

Publisher represents the publisher of the metadata.

type SchemaOrg added in v0.2.6

type SchemaOrg struct {
	Context               string        `json:"@context"`
	ID                    string        `json:"@id"`
	Type                  string        `json:"@type"`
	AdditionalType        string        `json:"additionalType,omitempty"`
	Author                []Author      `json:"author,omitempty"`
	Citation              []Citation    `json:"citation,omitempty"`
	CodeRepository        string        `json:"codeRepository,omitempty"`
	DateCreated           string        `json:"dateCreated,omitempty"`
	DatePublished         string        `json:"datePublished,omitempty"`
	DateModified          string        `json:"dateModified,omitempty"`
	Description           string        `json:"description,omitempty"`
	Distribution          []MediaObject `json:"distribution,omitempty"`
	Editor                []Editor      `json:"editor,omitempty"`
	Encoding              []MediaObject `json:"encoding,omitempty"`
	Identifier            []string      `json:"identifier,omitempty"`
	IncludedInDataCatalog DataCatalog   `json:"includedInDataCatalog,omitempty"`
	InLanguage            string        `json:"inLanguage,omitempty"`
	Keywords              string        `json:"keywords,omitempty"`
	License               string        `json:"license,omitempty"`
	Name                  string        `json:"name,omitempty"`
	PageStart             string        `json:"pageStart,omitempty"`
	PageEnd               string        `json:"pageEnd,omitempty"`
	Periodical            Periodical    `json:"periodical,omitempyt"`
	Provider              Provider      `json:"provider,omitempty"`
	Publisher             Publisher     `json:"publisher,omitempty"`
	URL                   string        `json:"url,omitempty"`
	Version               string        `json:"version,omitempty"`
}

SchemaOrg represents the Schema.org metadata.

func Convert added in v0.2.6

func Convert(data commonmeta.Data) (SchemaOrg, error)

Convert converts commonmeta metadata to Schema.org metadata.

Jump to

Keyboard shortcuts

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