Importar BibReferences

Importar Referências Bibliográficas usando o pacote OpenDataBio R

O endpoint POST bibreferences aceita duas formas de entrada:

  • doi: número ou URL de DOI; o OpenDataBio tenta recuperar o BibTeX usando serviços externos;
  • bibtex: registro bibliográfico completo em formato BibTeX.

Pelo menos uma dessas colunas deve estar preenchida em cada linha. Para o fluxo por DOI mostrado abaixo, envie somente a coluna doi. Antes de importar, pesquise o DOI ou a chave BibTeX para evitar referências duplicadas.

Exemplo fictício: importar apenas DOIs

library(opendatabio)

base_url = "http://localhost/opendatabio/api"
token = Sys.getenv("ODB_TOKEN")
cfg = odb_config(base_url = base_url, token = token)

# Uma linha por referência. O endpoint aceita tanto o número quanto a URL.
references_by_doi = data.frame(
  doi = c(
    "10.1234/exemplo.2026.001",
    "https://doi.org/10.1234/exemplo.2026.002"
  ),
  stringsAsFactors = FALSE
)

# Proteção para que DOIs fictícios não sejam enviados por acidente.
if (FALSE) {
  job = odb_import_bibreferences(references_by_doi, odb_cfg = cfg)

  # Acompanhe a tarefa e examine resultados, avisos e erros por registro.
  odb_get_jobs(params = list(id = job$id), odb_cfg = cfg)
  odb_get_affected_ids(job_id = job$id, odb_cfg = cfg)
}

Quando um DOI real é resolvido, o OpenDataBio recupera o BibTeX, extrai seus metadados e cria a Referência Bibliográfica. A conclusão do UserJob não garante que todas as linhas foram importadas; confira especialmente DOIs não encontrados e referências já cadastradas.

Importar um arquivo BibTeX

#sua conexao
library(opendatabio)
base_url="http://localhost/opendatabio/api"
token = Sys.getenv("ODB_TOKEN")
cfg = odb_config(base_url=base_url, token = token)
odb_test(cfg)

#leia no R as referencias bibliograficas
library(rbibutils)
bibs = readBib(file="yourFileWithReferences.bib")
formatbib <- function(x) {
  con <- textConnection("bibref", "w")
  writeBib(x,con=con)
  bibref = paste(bibref,collapse = " ")
  close(con)
  return(bibref)
}

#prepara para importar ao odb
bibtexts = sapply(bibs,formatbib)
data = data.frame(bibtex=bibtexts,standardize=1,stringsAsFactors = F)

#importa
jobid = odb_import_bibreferences(data,odb_cfg = cfg)
#aguarda finalizacao
odb_get_jobs(params=list(id=jobid$id),odb_cfg = cfg)
#pega o log da importacao
dt = odb_get_affected_ids(job_id=jobid$id,odb_cfg = cfg)
Última modificação July 10, 2026: Updated docs to odb version 0.10.0-alpha2 (886b968)