blob: 5ae4a2422fa098e698e0055103e0c6599b3a3114 [file] [log] [blame]
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/KorAPQuery.R
\name{fetchAnnotations,KorAPQuery-method}
\alias{fetchAnnotations,KorAPQuery-method}
\alias{fetchAnnotations}
\title{Fetch annotations for all collected matches}
\usage{
\S4method{fetchAnnotations}{KorAPQuery}(kqo, foundry = "tt", verbose = kqo@korapConnection@verbose)
}
\arguments{
\item{kqo}{object obtained from \code{\link[=corpusQuery]{corpusQuery()}} with collected matches. Note: the original corpus query should have \code{metadataOnly = FALSE} for annotation parsing to work.}
\item{foundry}{string specifying the foundry to use for annotations (default: "tt" for Tree-Tagger)}
\item{verbose}{print progress information if true}
}
\value{
The updated \code{kqo} object with annotation columns
like \code{pos}, \code{lemma}, \code{morph} (and \code{atokens} and \code{annotation_snippet})
in the \verb{@collectedMatches} slot. Each column is a data frame
with \code{left}, \code{match}, and \code{right} columns containing list vectors of annotations
for the left context, matched tokens, and right context, respectively.
The original XML snippet for each match is also stored in \code{annotation_snippet}.
}
\description{
\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#experimental}{\figure{lifecycle-experimental.svg}{options: alt='[Experimental]'}}}{\strong{[Experimental]}}
}
\details{
\strong{\code{fetchAnnotations}} fetches annotations (only token annotations, for now)
for all matches in the \verb{@collectedMatches} slot
of a KorAPQuery object and adds annotation columns directly to the \verb{@collectedMatches}
data frame. The method uses the \code{matchID} from collected matches.
\strong{Important}: For copyright-restricted corpora, users must be authorized via \code{\link[=auth]{auth()}}
and the initial corpus query must have \code{metadataOnly = FALSE} to ensure snippets are
available for annotation parsing.
The method parses XML snippet annotations and adds linguistic columns to the data frame:
\itemize{
\item \code{pos}: data frame with \code{left}, \code{match}, \code{right} columns, each containing list vectors of part-of-speech tags
\item \code{lemma}: data frame with \code{left}, \code{match}, \code{right} columns, each containing list vectors of lemmas
\item \code{morph}: data frame with \code{left}, \code{match}, \code{right} columns, each containing list vectors of morphological tags
\item \code{atokens}: data frame with \code{left}, \code{match}, \code{right} columns, each containing list vectors of token text (from annotations)
\item \code{annotation_snippet}: original XML snippet from the annotation API
}
}
\examples{
\dontrun{
# Fetch annotations for matches using Tree-Tagger foundry
# Note: Authorization required for copyright-restricted corpora
q <- KorAPConnection() |>
auth() |>
corpusQuery("Ameisenplage", metadataOnly = FALSE) |>
fetchNext(maxFetch = 10) |>
fetchAnnotations()
# Access linguistic annotations for match i:
pos_tags <- q@collectedMatches$pos # Data frame with left/match/right columns for POS tags
lemmas <- q@collectedMatches$lemma # Data frame with left/match/right columns for lemmas
morphology <- q@collectedMatches$morph # Data frame with left/match/right columns for morphological tags
atokens <- q@collectedMatches$atokens # Data frame with left/match/right columns for annotation token text
raw_snippet <- q@collectedMatches$annotation_snippet[[i]] # Original XML snippet for match i
# Access specific components:
match_pos <- q@collectedMatches$pos$match[[i]] # POS tags for the matched tokens in match i
left_lemmas <- q@collectedMatches$lemma$left[[i]] # Lemmas for the left context in match i
right_tokens <- q@collectedMatches$atokens$right[[i]] # Token text for the right context in match i
# Use a different foundry (e.g., MarMoT)
q <- KorAPConnection() |>
auth() |>
corpusQuery("Ameisenplage", metadataOnly = FALSE) |>
fetchNext(maxFetch = 10) |>
fetchAnnotations(foundry = "marmot")
q@collectedMatches$pos$left[1] # POS tags for the left context of the first match
}
}
\seealso{
Other corpus search functions:
\code{\link{corpusQuery,KorAPConnection-method}},
\code{\link{fetchAll,KorAPQuery-method}},
\code{\link{fetchNext,KorAPQuery-method}}
}
\concept{Annotations}
\concept{corpus search functions}