DiaColloDB
view release on metacpan or search on metacpan
DiaColloDB/Relation/DDC.pod view on Meta::CPAN
=item profile
$mprf = $rel->profile($coldb, %opts);
get a relation profile for selected items as a DiaColloDB::Profile::Multi object.
%opts: as for DiaColloDB::Relation::profile(), also:
##-- sampling options
limit => $limit, ##-- maximum number of items to return from ddc; sets $qconfig{limit} (default: query "#limit[N]" or $rel->{ddcLimit})
sample => $sample, ##-- ddc sample size; sets $qconfig{qcount} Sample property (default: query "#sample[N]" or $rel->{ddcSample})
cfmin => $cfmin, ##-- minimum subcorpus frequency for returned items (default: query "#fmin[N]" or $rel->{cfmin})
dmax => $dmax, ##-- maxmimum distance for implicit near() queries (default: query "#dmax[N]" or $rel->{dmax})
=item extend
$mprf = $rel->extend($coldb, %opts);
Get independent f2 frequencies for C<$opts{slice2keys}> as a L<DiaColloDB::Profile::Multi|DiaColloDB::Profile::Multi>
object. May generate multiple DDC requests for large extension sets to avoid exceeding the underlying DDC server's
request length limit (CHost.m_maxReceiveBytes = DDC_STATC_BUFLEN ?= 4096).
=item compare
$mprf = $rel->compare($coldb, %opts);
Get a comparison profile for selected items as a DiaColloDB::Profile::MultiDiff object.
%opts: as for DiaColloDB::Relation::compare(), also:
##-- sampling options
(a|b)?limit => $limit, ##-- maximum number of items to return from ddc; sets $qconfig{limit} (default: query "#limit[N]" or $rel->{ddcLimit})
(a|b)?sample => $sample, ##-- ddc sample size; sets $qconfig{qcount} Sample property (default: query "#sample[N]" or $rel->{ddcSample})
(a|b)?cfmin => $cfmin, ##-- minimum subcorpus frequency for returned items (default: query "#fmin[N]" or $rel->{cfmin})
(a|b)?dmax => $dmax, ##-- maxmimum distance for implicit near() queries (default: query "#dmax[N]" or $rel->{dmax})
=back
=cut
##----------------------------------------------------------------
## DESCRIPTION: DiaColloDB::Relation::DDC: Utils: profiling
=pod
=head2 Utils: profiling
=over 4
=item ddcClient
$dclient = $rel->ddcClient(%opts);
returns cached $rel-E<gt>{dclient} if defined, otherwise creates and caches a new client.
chokes if ddcServer is not defined
%opts: clobber %{$rel-E<gt>{dclient}}
=item ddcQuery
$results = $rel->ddcQuery($coldb, $query_or_str, %opts);
Returns decoded JSON results for DDC client query $query_or_str,
optionally logging the query and tracking errors.
%opts:
logas => $prefix, ##-- log prefix (default: 'ddcQuery()')
loglevel => $level, ##-- log level (default=$coldb-E<gt>{logProfile})
limit => $limit, ##-- set result client limit (default: current client limit, or -1 for limit=E<gt>undef)
=item fcoef
$fcoef = $rel->fcoef($cquery);
Get expected frequency coefficient for the L<DDC::XS::CQuery|DDC::XS::CQuery> object $cquery.
Used to estimate total independent marginal frequencies (f1,f2,N) for profile construction.
The default implementation should provide reasonable guesses for common query types.
=item countQuery
$qcount = $rel->countQuery($coldb,\%opts);
creates a L<DDC::XS::CQCount|DDC::XS::CQCount> object for profile() options %opts.
sets following keys in %opts:
gbexprs => $gbexprs, ##-- groupby expressions (DDC::Any::CQCountKeyExprList)
gbrestr => $gbrestr, ##-- groupby item2 restrictions (DDC::Any::CQWith conjunction of token expressions)
gbfilters => \@gbfilters, ##-- groupby filter restrictions (ARRAY-ref of DDC::Any::CQFilter)
gbtitles => \@gbtitles, ##-- groupby column titles (ARRAY-ref of strings)
limit => $limit, ##-- hit return limit for ddc query
dslo => $dslo, ##-- minimum date-slice, from @opts{qw(date slice fill)}
dshi => $dshi, ##-- maximum date-slice, from @opts{qw(date slice fill)}
dlo => $dlo, ##-- minimum date request (ddc)
dhi => $dhi, ##-- maximum date request (ddc)
fcoef => $fcoef, ##-- frequency coefficient, parsed from "#coef[N]", auto-generated for near() queries
qtemplate => $qtemplate, ##-- query template for ddc hit link-up
qcount1 => $qcount1, ##-- count-query for f1 acquisition
fcoef1 => $fcoef1, ##-- f1 coefficient for qcount1
=item collocantCountQuery
$qcount1 = $rel->collocantCountQuery($qcount,$matchId)
maps count-queries returned by L<countQuery()|/countQuery> to ${matchId}-item queries (default $matchid=1).
=item itemCountNode
$nod2_or_undef = $rel->itemCountNode($nod,$matchId)
Guts for L<collocantCountQuery()|/collocantCountQuery>:
maps countQuery() nodes to ${matchId}-query nodes only;
simplifies by removing extraneous CQBinOp, CQNear, and CQSeq nodes.
=item collocateCountQueries
\@qcounts2 = $rel->collocateCountQueries($qcount,\%slice2prf,\%opts)
Gets a list of DDC::Any::CQCount object(s) for f2-acquisition given profile() options %opts,
which are as for L<countQuery()|/countQuery>,
L<DiaColloDB::Relation::DDC::profile()|DDC::Relation/profile>, etc.
Sets following keys in %opts:
( run in 1.175 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )