#-*- Mode: CPerl -*-

## File: DDC::Concordance.pm
## Author: Bryan Jurish <moocow@cpan.org>
## Description:
##  + DDC Query utilities: top-level
##======================================================================

package DDC::Concordance;
#require 5.10.0;  ##-- for // operator : dependency REMOVED for DDC::Concordance v0.22
use DDC::HitList;
use DDC::Hit;
use DDC::Client;
use DDC::Client::Distributed;
use DDC::Format;
use DDC::Format::Text;
use DDC::Format::Kwic;
use DDC::Format::Dumper;
use DDC::Format::Raw;
use strict;

##======================================================================
## Globals
our $VERSION = '0.50'; ##-- for ddc >= v2.0.21; fixes for ddc >= 2.0.38
our @ISA = qw();


1; ##-- be happy

__END__

##======================================================================
## Docs
=pod

=head1 NAME

DDC::Concordance - Query and wrapper utilities for DDC search engine

=head1 SYNOPSIS

 use DDC::Concordance;

 #... stuff happens ...

=cut

##======================================================================
## Description
=pod

=head1 DESCRIPTION

This top-level package doesn't do anything but load all of the
DDC-related submodules.  See submodule documentation for details.

=cut

##======================================================================
## SUBMODULES
=pod

=head1 SUBMODULES

=over 4

=item L<DDC::Client|DDC::Client>

Abstract class for querying a DDC server.

=item L<DDC::Client::Distributed|DDC::Client::Distributed>

Class for querying a distributed DDC server.

=item L<DDC::Hit|DDC::Hit>

Class for a single hit as returned by a DDC server.

=item L<DDC::HitList|DDC::HitList>

Class for a list of hits returned by a DDC server.

=item L<DDC::Filter|DDC::Filter>

Base class for implementing DDC server filters (proxies, wrappers, etc.)

=item L<DDC::Format|DDC::Format>

Abstract class for formatting L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::Dumper|DDC::Format::Dumper>

Class for Data::Dumper formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::JSON|DDC::Format::JSON>

Class for JSON formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::Kwic|DDC::Format::Kwic>

Class for keyword-in-context (KWIC) formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::Raw|DDC::Format::Raw>

Class for raw formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::Template|DDC::Format::Template>

Class for generic template-based formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::Text|DDC::Format::Text>

Class for text-formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Format::YAML|DDC::Format::YAML>

Class for yaml-formatting of L<DDC::HitList|DDC::HitList> objects.

=item L<DDC::Query|DDC::Query>

Class for parsed DDC queries; may be out-of-sync with ddc C++ implementation.
B<DEPRECATED> in favor of the L<DDC::XS::CQuery|DDC::XS::CQuery> hierarchy
from the L<DDC::XS|DDC::XS> distribution.

=item L<DDC::Query::Filter|DDC::Query::Filter>

Class for parsed DDC filters and flags; may be out-of-sync with ddc C++ implementation.
B<DEPRECATED> in favor of L<DDC::XS::Object::mapTraverse()|DDC::XS::Object>
from the L<DDC::XS|DDC::XS> distribution.


=item L<DDC::Query::Parser|DDC::Query::Parser>

Class for parsing DDC queries; may be out-of-sync with ddc C++ implementation.
B<DEPRECATED> in favor of L<DDC::XS::CQueryCompiler|DDC::XS::CQueryCompiler>
from the L<DDC::XS|DDC::XS> distribution.

=item L<DDC::Utils|DDC::Utils>

Various utilities for string-escaping, etc.

=back

=cut

##======================================================================
## SCRIPTS
=pod

=head1 SCRIPTS

The following executable scripts are distributed with the DDC package:

=over 4

=item ddc-query.perl

Simple script for querying a distributed DDC server using the
L<DDC::Client::Distributed|DDC::Client::Distributed> and
L<DDC::Format|DDC::Format> modules.

=item ddc-expand-lts-query.perl

Simple string-manipulation
script for translating a query which may contain a phonetic identity
operator of the form:

 $p~TEXT

(where TEXT is some literal orthographic text) into a valid DDC query string
for a server which indexes a '$p' field with phonetic forms as returned by
a finite-state transducer (in Gfsm format) which must be specified to the
script.

Requires Lingua::LTS and Gfsm.

=item ddc-lts-wrapper.perl

DDC wrapper daemon which transparently
translates phonetic identity queries as for ddc-expand-lts-query.perl.

Requires Lingua::LTS and Gfsm.

=back

=cut


##======================================================================
## Footer
=pod

=head1 ACKNOWLEDGEMENTS

perl by Larry Wall.

=head1 AUTHOR

Bryan Jurish E<lt>moocow@cpan.orgE<gt>

=head1 COPYRIGHT

Copyright (c) 2006-2016, Bryan Jurish.  All rights reserved.

This package is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.1 or,
at your option, any later version of Perl 5 you may have available.

=head1 SEE ALSO

perl(1)

=cut
