R/constructors.R

#' @export
bold_id_constr <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, BOLD_Record)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$bold_id, function(i) {
    tt$add_triple(identifiers$nid, has_BOLDId, i)
  })
  return(tt)
}

#' @export
bin_constr <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, BIN_record)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$bin, function(i) {
    tt$add_triple(identifiers$nid, has_BIN, i)
  })
  return(tt)
}

#' @export
record_constructor <- function (atoms, identifiers, access_options)
{
  #record = identifiers$root_id
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Record)
  #sapply(atoms$record, is_contained_by, identifiers$pid)
  #tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  #sapply(atoms$text_content, function(i) {
  #  tt$add_triple(identifiers$nid, has_RecordId, i)
}

#' @export
record_id <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, RecordId)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_RecordId, i)
  })
  return(tt)
}

#' @export
process_id <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, ProcessId)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_ProcessId, i)
  })
  return(tt)
}

#' @export
sample_id <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, SampleId)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_SampleId, i)
  })
  return(tt)
}

#' @export
institution <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Institution)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, is_contained_by, i)
  })
  return(tt)
}

#' @export
sequence_id <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, SequenceId)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_SequenceId, i)
  })
  return(tt)
}

#' @export
nucleotides <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Nucleotides)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_Nucleotides, i)
  })
  return(tt)
}

#' @export
catalog <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, CatalogNum)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_CatalogNum, i)
  })
  return(tt)
}

#' @export
taxonomy <- function (atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Taxonomy)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  #sapply(atoms$text_content, function(i) {
  # tt$add_triple(identifiers$nid, has_Taxonomy, i)
  #})
  return(tt)
}

#' @export
phylum <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Phylum)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
clas <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Clas)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
order <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Order)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
family <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Family)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
genus <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Genus)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
species <- function (atoms, identifiers, access_options)
{


  #taxid <- atoml_to_val(atoms$taxID)
  #name <- atoml_to_val(atoms$name)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Species)
  tt$add_triple(identifiers$nid, is_contained_by, identifiers$pid)
  sapply(atoms$text_content, function(i) {
    tt$add_triple(identifiers$nid, has_TaxonName, i)
  })
  sapply(atoms$taxonid, function(i) {
    tt$add_triple(identifiers$nid, has_TaxID, i)
  })
  #tt$add_triple(name, has_TaxID, taxID)

  return(tt)
}

#' @export
my_metadata <- function (atoms, identifiers, access_options)
{
  pub_date = function(year, month, day) {
    literal(paste0(text_value = unlist(year)["text_value"],
                   "-", unlist(month)["text_value"], "-", unlist(day)["text_value"]),
            xsd_type = rdf4r::xsd_date)
  }
  if (length(atoms$pensoft_pub) > 0) {
    stop("Pensoft publication")
  }
  lookup_paper_id = query_factory(p_query = qlookup_paper_id,
                                  access_options = access_options)
  openbiodiv_paper_id = identifier_factory(fun = list(lookup_paper_id),
                                           prefixes = access_options$prefix, def_prefix = access_options$prefix["openbiodiv"])
  lookup_by_label = query_factory(p_query = qlookup_by_label,
                                  access_options = access_options)
  opebiodiv_id_via_label_lookup = identifier_factory(fun = list(lookup_by_label),
                                                     prefixes = access_options$prefix, def_prefix = access_options$prefix["openbiodiv"])

  article_id = identifiers$root_id
  paper_id = openbiodiv_paper_id(list(article_id))
  publisher_id = opebiodiv_id_via_label_lookup(atoms$publisher)
  journal_id = opebiodiv_id_via_label_lookup(atoms$journal)
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(journal_id, rdf_type, Journal)
  sapply(atoms$journal, function(j) {
    tt$add_triple(journal_id, pref_label, j)
  })
  sapply(atoms$journal_abbrev, function(j) {
    tt$add_triple(journal_id, alt_label, j)
  })
  sapply(atoms$issn, function(i) {
    tt$add_triple(journal_id, issn, i)
  })
  sapply(atoms$eIssn, function(i) {
    tt$add_triple(journal_id, eissn, i)
  })

  tt$add_triple(journal_id, frbr_part, article_id)
  tt$add_triple(article_id, rdf_type, Article)
  sapply(atoms$title, function(i) {
    tt$add_triple(article_id, rdfs_label, i)
  })
  sapply(atoms$title, function(i) {
    tt$add_triple(article_id, dc_title, i)
  })
  sapply(atoms$doi, function(i) {
    tt$add_triple(article_id, has_doi, i)
  })
  sapply(atoms$publisher, function(i) {
    tt$add_triple(article_id, has_publisher, i)
  })
  sapply(atoms$date, function(i) {
    tt$add_triple(article_id, publication_date, i)
  })
  sapply(atoms$bold_id, function(i) {
    tt$add_triple(article_id, has_BOLDId, i)
  })
  sapply(atoms$bin, function(i) {
    tt$add_triple(article_id, has_BIN, i)
  })
  sapply(list(pub_date(atoms$pub_year, atoms$pub_month, atoms$pub_day)),
         function(i) {
           tt$add_triple(article_id, publication_date, i)
         })
  tt$add_triple(article_id, has_publisher_id, publisher_id)
  tt$add_triple(article_id, realization_of, paper_id)
  sapply(atoms$issue, function(i) {
    tt$add_triple(article_id, has_issue, i)
  })
  sapply(atoms$keyword, function(i) {
    tt$add_triple(identifiers$nid, has_keyword, i)
  })

  tt$add_triple(publisher_id, rdf_type, Publisher)
  sapply(atoms$publisher, function(i) {
    tt$add_triple(publisher_id, rdfs_label, i)
  })
  tt$add_triple(paper_id, rdf_type, Paper)
  return(tt)
}

#' @export
new_metadata <-  function(atoms, identifiers, access_options)
{
  tt = ResourceDescriptionFramework$new()
  tt$add_triple(identifiers$nid, rdf_type, Record)

  return(tt)
}
mariyad/openbiodiving documentation built on June 3, 2019, 2:18 p.m.