eps

package
v0.0.0-...-655c64e Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2023 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EpoEndpointHost is the host of https endpoint of the epo
	EpoEndpointHost = "https://data.epo.org"
	// EndpointRoot is the root path to the REST API
	EndpointRoot = "/publication-server/rest"
	// ApiVersion is the HTTP REST Interface version of the webservice
	ApiVersion = "v1.2"
)

Variables

View Source
var ErrClientBanned = errors.New("client and IP blacklisted")

ErrClientBanned is returned if the EPO has blocked the client / ip address

View Source
var ErrEmptyID = errors.New("empty id")

Functions

func CheckIfBlackListed

func CheckIfBlackListed(res []byte) (err error)

CheckIfBlackListed checks if the client is blacklisted

func GetPatentHTML

func GetPatentHTML(patentID string) (res []byte, err error)

GetPatentHTML returns the patent in the html format

func GetPatentPDF

func GetPatentPDF(patentID string) (res []byte, err error)

GetPatentPDF returns the patent in the pdf format

func GetPatentXML

func GetPatentXML(patentID string) (res []byte, err error)

GetPatentXML returns the patent in the xml format

func GetPatentZIP

func GetPatentZIP(patentID string) (res []byte, err error)

GetPatentZIP returns the patent in the zip format

func GetVersions

func GetVersions() (res []string, err error)

GetVersions retrieves the REST API version from the endpoint

func NewHttpClient

func NewHttpClient() http.Client

NewHttpClient builds a http client if the env variables PROXY or HTTP_PROXY are set the http client uses these

func SaveFile

func SaveFile(data []byte, filepath, filename string) (err error)

Types

type Abstract

type Abstract struct {
	Text     string
	Language string
}

type Citation

type Citation struct {
	Country   Country
	DocNumber string
	Kind      string
}

type Claim

type Claim struct {
	Text     string
	Language string
	Id       string
}

type ClassificationItem

type ClassificationItem struct {
	Text                   string
	System                 ClassificationSystem
	Sequence               int
	Section                string
	Class                  string
	SubClass               string
	MainGroup              string
	SubGroup               string
	Version                string
	ClassificationLevel    string
	FirstLater             string
	ClassificationValue    string // (inventive or non-inventive)
	ActionDate             string // (inventive or non-inventive)
	OriginalOrReclassified string
	Source                 string
	GeneratingOffice       string
}

func NewIpcrClassificationItemFromString

func NewIpcrClassificationItemFromString(text string, sequence int) (c ClassificationItem)

type ClassificationSystem

type ClassificationSystem string
const CPC ClassificationSystem = "CPC"
const IPC ClassificationSystem = "IPC"

type Country

type Country string

type Description

type Description struct {
	Text     string
	Language string
}

type EpPatentDocument

type EpPatentDocument struct {
	XMLName    xml.Name `xml:"ep-patent-document"`
	Text       string   `xml:",chardata"`
	ID         string   `xml:"id,attr"`
	File       string   `xml:"file,attr"`
	Lang       string   `xml:"lang,attr"`
	Country    string   `xml:"country,attr"`
	DocNumber  string   `xml:"doc-number,attr"`
	Kind       string   `xml:"kind,attr"`
	DatePubl   string   `xml:"date-publ,attr"`
	Status     string   `xml:"status,attr"`
	DtdVersion string   `xml:"dtd-version,attr"`
	SDOBI      struct {
		Text string `xml:",chardata"`
		Lang string `xml:"lang,attr"`
		B000 struct {
			Text   string `xml:",chardata"`
			Eptags struct {
				Text   string `xml:",chardata"`
				B001EP string `xml:"B001EP"`
				B005EP string `xml:"B005EP"`
				B007EP string `xml:"B007EP"`
			} `xml:"eptags"`
		} `xml:"B000"`
		B100 struct {
			Text string `xml:",chardata"`
			B110 string `xml:"B110"`
			B120 struct {
				Text string `xml:",chardata"`
				B121 string `xml:"B121"`
			} `xml:"B120"`
			B130 string `xml:"B130"`
			B140 struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
			} `xml:"B140"`
			B190 string `xml:"B190"`
		} `xml:"B100"`
		B200 struct {
			Text string `xml:",chardata"`
			B210 string `xml:"B210"`
			B220 struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
			} `xml:"B220"`
			B240 struct {
				Text string `xml:",chardata"`
				B241 struct {
					Text string `xml:",chardata"`
					Date string `xml:"date"`
				} `xml:"B241"`
			} `xml:"B240"`
			B250   string `xml:"B250"`
			B251EP string `xml:"B251EP"`
			B260   string `xml:"B260"`
		} `xml:"B200"`
		B400 struct {
			Text string `xml:",chardata"`
			B405 struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
				Bnum string `xml:"bnum"`
			} `xml:"B405"`
			B430 struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
				Bnum string `xml:"bnum"`
			} `xml:"B430"`
			B450 struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
				Bnum string `xml:"bnum"`
			} `xml:"B450"`
			B452EP struct {
				Text string `xml:",chardata"`
				Date string `xml:"date"`
			} `xml:"B452EP"`
		} `xml:"B400"`
		B500 struct {
			Text   string `xml:",chardata"`
			B510EP struct {
				Text               string `xml:",chardata"`
				ClassificationIpcr []struct {
					Chardata string `xml:",chardata"`
					Sequence string `xml:"sequence,attr"`
					Text     string `xml:"text"`
				} `xml:"classification-ipcr"`
			} `xml:"B510EP"`
			B540 struct {
				Text string   `xml:",chardata"`
				B541 []string `xml:"B541"`
				B542 []string `xml:"B542"`
			} `xml:"B540"`
			B560 struct {
				Text string `xml:",chardata"`
				B561 []struct {
					Chardata string `xml:",chardata"`
					Text     string `xml:"text"`
				} `xml:"B561"`
				B562 struct {
					Chardata string `xml:",chardata"`
					Text     string `xml:"text"`
				} `xml:"B562"`
				B565EP struct {
					Text string `xml:",chardata"`
					Date string `xml:"date"`
				} `xml:"B565EP"`
			} `xml:"B560"`
		} `xml:"B500"`
		B700 struct {
			Text string `xml:",chardata"`
			B720 struct {
				Text string `xml:",chardata"`
				B721 struct {
					Text string `xml:",chardata"`
					Snm  string `xml:"snm"`
					Adr  struct {
						Text string `xml:",chardata"`
						Str  string `xml:"str"`
						City string `xml:"city"`
						Ctry string `xml:"ctry"`
					} `xml:"adr"`
				} `xml:"B721"`
			} `xml:"B720"`
			B730 struct {
				Text string `xml:",chardata"`
				B731 struct {
					Text string `xml:",chardata"`
					Snm  string `xml:"snm"`
					Iid  string `xml:"iid"`
					Irf  string `xml:"irf"`
					Adr  struct {
						Text string `xml:",chardata"`
						Str  string `xml:"str"`
						City string `xml:"city"`
						Ctry string `xml:"ctry"`
					} `xml:"adr"`
				} `xml:"B731"`
			} `xml:"B730"`
			B740 struct {
				Text string `xml:",chardata"`
				B741 struct {
					Text string `xml:",chardata"`
					Snm  string `xml:"snm"`
					Iid  string `xml:"iid"`
					Adr  struct {
						Text string `xml:",chardata"`
						Str  string `xml:"str"`
						City string `xml:"city"`
						Ctry string `xml:"ctry"`
					} `xml:"adr"`
				} `xml:"B741"`
			} `xml:"B740"`
		} `xml:"B700"`
		B800 struct {
			Text string `xml:",chardata"`
			B840 struct {
				Text string   `xml:",chardata"`
				Ctry []string `xml:"ctry"`
			} `xml:"B840"`
			B860 struct {
				Text string `xml:",chardata"`
				B861 struct {
					Text string `xml:",chardata"`
					Dnum struct {
						Text string `xml:",chardata"`
						Anum string `xml:"anum"`
					} `xml:"dnum"`
					Date string `xml:"date"`
				} `xml:"B861"`
				B862 string `xml:"B862"`
			} `xml:"B860"`
			B870 struct {
				Text string `xml:",chardata"`
				B871 struct {
					Text string `xml:",chardata"`
					Dnum struct {
						Text string `xml:",chardata"`
						Pnum string `xml:"pnum"`
					} `xml:"dnum"`
					Date string `xml:"date"`
					Bnum string `xml:"bnum"`
				} `xml:"B871"`
			} `xml:"B870"`
		} `xml:"B800"`
	} `xml:"SDOBI"`
	Description struct {
		Text    string `xml:",chardata"`
		ID      string `xml:"id,attr"`
		Lang    string `xml:"lang,attr"`
		Heading []struct {
			Text string `xml:",chardata"`
			ID   string `xml:"id,attr"`
		} `xml:"heading"`
		P []struct {
			Text string `xml:",chardata"`
			ID   string `xml:"id,attr"`
			Num  string `xml:"num,attr"`
			Ul   struct {
				Text      string `xml:",chardata"`
				ID        string `xml:"id,attr"`
				ListStyle string `xml:"list-style,attr"`
				Compact   string `xml:"compact,attr"`
				Li        []struct {
					Text   string `xml:",chardata"`
					Patcit struct {
						Chardata string `xml:",chardata"`
						ID       string `xml:"id,attr"`
						Dnum     string `xml:"dnum,attr"`
						Text     string `xml:"text"`
					} `xml:"patcit"`
					Figref struct {
						Text  string `xml:",chardata"`
						Idref string `xml:"idref,attr"`
					} `xml:"figref"`
				} `xml:"li"`
			} `xml:"ul"`
			Figref struct {
				Text  string `xml:",chardata"`
				Idref string `xml:"idref,attr"`
			} `xml:"figref"`
			Sub   []string `xml:"sub"`
			Br    string   `xml:"br"`
			Maths struct {
				Text string `xml:",chardata"`
				ID   string `xml:"id,attr"`
				Num  string `xml:"num,attr"`
				Math struct {
					Text    string   `xml:",chardata"`
					Display string   `xml:"display,attr"`
					Mi      []string `xml:"mi"`
					Mo      []string `xml:"mo"`
					Mfrac   struct {
						Text string `xml:",chardata"`
						Mrow []struct {
							Text string   `xml:",chardata"`
							Mi   string   `xml:"mi"`
							Mo   []string `xml:"mo"`
							Msub struct {
								Text string `xml:",chardata"`
								Mi   string `xml:"mi"`
								Mn   string `xml:"mn"`
							} `xml:"msub"`
							Mn string `xml:"mn"`
						} `xml:"mrow"`
						Mn   string `xml:"mn"`
						Msub struct {
							Text string `xml:",chardata"`
							Mi   []struct {
								Text        string `xml:",chardata"`
								Mathvariant string `xml:"mathvariant,attr"`
							} `xml:"mi"`
						} `xml:"msub"`
					} `xml:"mfrac"`
					Msub struct {
						Text string `xml:",chardata"`
						Mi   string `xml:"mi"`
						Mn   string `xml:"mn"`
					} `xml:"msub"`
					Mn []string `xml:"mn"`
				} `xml:"math"`
				Img struct {
					Text       string `xml:",chardata"`
					ID         string `xml:"id,attr"`
					File       string `xml:"file,attr"`
					Wi         string `xml:"wi,attr"`
					He         string `xml:"he,attr"`
					ImgContent string `xml:"img-content,attr"`
					ImgFormat  string `xml:"img-format,attr"`
				} `xml:"img"`
			} `xml:"maths"`
		} `xml:"p"`
	} `xml:"description"`
	Claims []struct {
		Text  string `xml:",chardata"`
		ID    string `xml:"id,attr"`
		Lang  string `xml:"lang,attr"`
		Claim []struct {
			Text      string `xml:",chardata"`
			ID        string `xml:"id,attr"`
			Num       string `xml:"num,attr"`
			ClaimText struct {
				Text  string   `xml:",chardata"`
				Br    []string `xml:"br"`
				Sub   []string `xml:"sub"`
				B     string   `xml:"b"`
				Maths struct {
					Text string `xml:",chardata"`
					ID   string `xml:"id,attr"`
					Num  string `xml:"num,attr"`
					Math struct {
						Text    string   `xml:",chardata"`
						Display string   `xml:"display,attr"`
						Mi      []string `xml:"mi"`
						Mo      []string `xml:"mo"`
						Mn      string   `xml:"mn"`
						Mfrac   struct {
							Text string `xml:",chardata"`
							Mn   string `xml:"mn"`
							Msub struct {
								Text string `xml:",chardata"`
								Mi   []struct {
									Text        string `xml:",chardata"`
									Mathvariant string `xml:"mathvariant,attr"`
								} `xml:"mi"`
							} `xml:"msub"`
						} `xml:"mfrac"`
					} `xml:"math"`
					Img struct {
						Text       string `xml:",chardata"`
						ID         string `xml:"id,attr"`
						File       string `xml:"file,attr"`
						Wi         string `xml:"wi,attr"`
						He         string `xml:"he,attr"`
						ImgContent string `xml:"img-content,attr"`
						ImgFormat  string `xml:"img-format,attr"`
					} `xml:"img"`
				} `xml:"maths"`
				ClaimText []struct {
					Text  string `xml:",chardata"`
					Maths struct {
						Text string `xml:",chardata"`
						ID   string `xml:"id,attr"`
						Num  string `xml:"num,attr"`
						Math struct {
							Text    string   `xml:",chardata"`
							Display string   `xml:"display,attr"`
							Mi      []string `xml:"mi"`
							Mo      []string `xml:"mo"`
							Mfrac   struct {
								Text string `xml:",chardata"`
								Mrow []struct {
									Text string   `xml:",chardata"`
									Mi   []string `xml:"mi"`
									Mo   []string `xml:"mo"`
									Mn   string   `xml:"mn"`
								} `xml:"mrow"`
								Mn   string `xml:"mn"`
								Msub struct {
									Text string `xml:",chardata"`
									Mi   []struct {
										Text        string `xml:",chardata"`
										Mathvariant string `xml:"mathvariant,attr"`
									} `xml:"mi"`
								} `xml:"msub"`
							} `xml:"mfrac"`
							Mn string `xml:"mn"`
						} `xml:"math"`
						Img struct {
							Text       string `xml:",chardata"`
							ID         string `xml:"id,attr"`
							File       string `xml:"file,attr"`
							Wi         string `xml:"wi,attr"`
							He         string `xml:"he,attr"`
							ImgContent string `xml:"img-content,attr"`
							ImgFormat  string `xml:"img-format,attr"`
						} `xml:"img"`
					} `xml:"maths"`
					Sub       []string `xml:"sub"`
					ClaimText []string `xml:"claim-text"`
					B         string   `xml:"b"`
				} `xml:"claim-text"`
			} `xml:"claim-text"`
		} `xml:"claim"`
	} `xml:"claims"`
	Drawings struct {
		Text   string `xml:",chardata"`
		ID     string `xml:"id,attr"`
		Lang   string `xml:"lang,attr"`
		Figure []struct {
			Text string `xml:",chardata"`
			ID   string `xml:"id,attr"`
			Num  string `xml:"num,attr"`
			Img  struct {
				Text       string `xml:",chardata"`
				ID         string `xml:"id,attr"`
				File       string `xml:"file,attr"`
				Wi         string `xml:"wi,attr"`
				He         string `xml:"he,attr"`
				ImgContent string `xml:"img-content,attr"`
				ImgFormat  string `xml:"img-format,attr"`
			} `xml:"img"`
		} `xml:"figure"`
	} `xml:"drawings"`
	EpReferenceList struct {
		Text    string `xml:",chardata"`
		ID      string `xml:"id,attr"`
		Heading []struct {
			Text string `xml:",chardata"`
			ID   string `xml:"id,attr"`
			B    string `xml:"b"`
		} `xml:"heading"`
		P []struct {
			Text string `xml:",chardata"`
			ID   string `xml:"id,attr"`
			Num  string `xml:"num,attr"`
			I    string `xml:"i"`
			Ul   struct {
				Text      string `xml:",chardata"`
				ID        string `xml:"id,attr"`
				ListStyle string `xml:"list-style,attr"`
				Li        []struct {
					Text   string `xml:",chardata"`
					Patcit struct {
						Text       string `xml:",chardata"`
						ID         string `xml:"id,attr"`
						Dnum       string `xml:"dnum,attr"`
						DocumentID struct {
							Text      string `xml:",chardata"`
							Country   string `xml:"country"`
							DocNumber string `xml:"doc-number"`
							Kind      string `xml:"kind"`
						} `xml:"document-id"`
					} `xml:"patcit"`
					Crossref struct {
						Text  string `xml:",chardata"`
						Idref string `xml:"idref,attr"`
					} `xml:"crossref"`
				} `xml:"li"`
			} `xml:"ul"`
		} `xml:"p"`
	} `xml:"ep-reference-list"`
}

EpPatentDocument is a auto generated struct based on the example xml files

type EpPatentDocumentSimple

type EpPatentDocumentSimple struct {
	ID                string
	Aliases           []string
	File              string
	Lang              string
	Country           Country
	DocNumber         string
	Kind              string
	DatePubl          time.Time
	Status            string
	DtdVersion        string
	Title             []Title
	Abstract          []Abstract
	Claims            []Claim
	Description       []Description
	Citations         []Citation
	Inventors         []Inventor
	Owners            []Owner
	Representatives   []Representative
	ContractingStates []Country
	Classifications   []ClassificationItem
}

EpPatentDocumentSimple is a simple representation of the xml data

func ProcessXMLSimple

func ProcessXMLSimple(raw []byte) (patentDoc EpPatentDocumentSimple, err error)

ProcessXMLSimple transforms the raw response of the xml data into a simple patent

func (*EpPatentDocumentSimple) GenerateAliases

func (p *EpPatentDocumentSimple) GenerateAliases()

GenerateAliases generates the aliases for the document

type Inventor

type Inventor struct {
	Country Country
	City    string
	Street  string
	Name    string
}

type Owner

type Owner struct {
	Country Country
	IID     string
	IRF     string
	City    string
	Street  string
	Name    string
}

type PatentExportFormat

type PatentExportFormat string

PatentExportFormat is a predefined export format

const (
	PDF  PatentExportFormat = "PDF"
	HTML PatentExportFormat = "HTML"
	ZIP  PatentExportFormat = "ZIP"
	XML  PatentExportFormat = "XML"
)

Current forms of export

type PatentItem

type PatentItem struct {
	Name string
	Link string
}

func GetPublicationDatePatents

func GetPublicationDatePatents(date time.Time) (res []PatentItem, err error)

GetPublicationDatePatents retrieves the patent list of a given date

type PublicationDate

type PublicationDate struct {
	Date *time.Time
	Name string
	Link string
}

func GetPublicationDates

func GetPublicationDates() (res []PublicationDate, err error)

GetPublicationDates retrieves the publication dates of patents from the endpoint

type Representative

type Representative struct {
	Country Country
	IID     string
	City    string
	Street  string
	Name    string
}

type Title

type Title struct {
	Text     string
	Language string
}

Jump to

Keyboard shortcuts

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