lit

package module
v0.0.0-...-3eebcfc Latest Latest
Warning

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

Go to latest
Published: May 19, 2022 License: MIT Imports: 10 Imported by: 0

README

lit

Literature review tool. Supports Elsevier's Scopus.

Usage

Three tools are provided to help researchers perform the first phases of a sistematic literature review (SLR). Everything starts with lit-max: its the query refinement phase in which the query is exposed to the library and the number of hits is returned. It is suggested to tune the query till ~500 results are returned. The second phase is the download one, where the results are acually downloaded and stored locally. This is performed using the lit-get tool. The third phase is the time-demanding one, in which each publication is reviewed and the researcher is supposed to accept/reject papers based on some exclusion/inclusion criteria. This is done thourgh lit-review.

Features

The lit-* suite uses an event-based database (single file selected through the -edb flag) to store everything. Just ensure you don't loose this file and you'll be fine. For now, you can freely edit the file. In the future, I plan on using a markov-chain strategy to ensure other researchers that your results have not been tampered, but this is going to happen only if the tool exits the "toy/prototype" phase and someone else is using it.

For feature requests and everything else, open an issue.

Recovering

The program's state is constructed from its .edb file, by default lit.edb. If something goes wrong, users are invited to open it up and edit its contents for now, for example by deleting one or more reviews.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetLiterature

func GetLiterature(ctx context.Context, blobChan *BlobChan, lib Library, req Request)

Types

type Abstract

type Abstract struct {
	Text string `json:"text"`
}

func (Abstract) GetText

func (a Abstract) GetText() string

func (Abstract) Marshal

func (a Abstract) Marshal() (string, error)

func (*Abstract) Unmarshal

func (a *Abstract) Unmarshal(data string) error

type Blob

type Blob []byte

func (Blob) Marshal

func (b Blob) Marshal() (string, error)

func (*Blob) Unmarshal

func (b *Blob) Unmarshal(data string) error

type BlobChan

type BlobChan struct {
	// contains filtered or unexported fields
}

func NewBlobChan

func NewBlobChan(max, queueLen int) *BlobChan

func (*BlobChan) CloseWithError

func (c *BlobChan) CloseWithError(err error)

func (*BlobChan) Err

func (c *BlobChan) Err() error

func (*BlobChan) Max

func (c *BlobChan) Max() int

func (*BlobChan) Recv

func (c *BlobChan) Recv() <-chan Blob

func (*BlobChan) Send

func (c *BlobChan) Send(p Blob) error

type Keywords

type Keywords struct {
	Values []string `json:"values"`
}

func (Keywords) Marshal

func (k Keywords) Marshal() (string, error)

func (*Keywords) Parse

func (k *Keywords) Parse(input string)

func (Keywords) Text

func (k Keywords) Text() string

func (*Keywords) Unmarshal

func (k *Keywords) Unmarshal(data string) error

type Library

type Library interface {
	GetName() string
	GetRateLimit() time.Duration
	DefaultPerPage() int

	GetLiterature(context.Context, Request) (Response, error)
	GetMaxLiterature(context.Context, Request) (int, error)
	ParsePublication(Blob) (Publication, error)
	PrettyPrint(Blob, *bytes.Buffer) error
	GetAbstract(context.Context, Publication) (Abstract, error)

	ToBibTeX(Publication) bibtex.Reference
	ReferenceLink(Publication) string
}

type Publication

type Publication struct {
	Title     string    `json:"title"`
	CoverDate time.Time `json:"cover_date"`
	Creator   string    `json:"creator"`

	// Misc stuff used by clients to accomplish Library interface.
	Values map[string]string `json:"values"`

	*Abstract `json:"abstract,omitempty"`
	*Review   `json:"review,omitempty"`
	*Keywords `json:"keywords,omitempty"`
}

func (*Publication) GetAbstract

func (p *Publication) GetAbstract(ctx context.Context, lib Library) error

type Request

type Request struct {
	Query string

	Page       int
	PerPage    int
	MaxResults int
}

func (Request) CloneWithPage

func (r Request) CloneWithPage(p int) Request

func (Request) RoundsNeeded

func (r Request) RoundsNeeded() int

func (Request) String

func (r Request) String() string

type Response

type Response struct {
	Req   Request
	Blobs []Blob
}

func (Response) IsEmpty

func (r Response) IsEmpty() bool

func (Response) Len

func (r Response) Len() int

type Review

type Review struct {
	IsAccepted    bool   `json:"is_accepted"`
	IsHighlighted bool   `json:"is_highlighted"`
	RejectReason  string `json:"reject_reason"`
}

func (Review) Marshal

func (r Review) Marshal() (string, error)

func (*Review) Unmarshal

func (r *Review) Unmarshal(data string) error

Directories

Path Synopsis
see https://www.economics.utoronto.ca/osborne/latex/BIBTEX.HTM
see https://www.economics.utoronto.ca/osborne/latex/BIBTEX.HTM
cmd
lit-get command
lit-max command
lit-review command

Jump to

Keyboard shortcuts

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