NAME

Lingua::DE::Wortschatz - wortschatz.uni-leipzig.de webservice client

SYNOPSIS

use Lingua::DE::Wortschatz;

my $result=Lingua::DE::Wortschatz::use_service('T','toll');
$result->dump;

@lines=$result->hashrefs();
for (@lines) {
    print $_->{Synonym},"\n";
}

print Lingua::DE::Wortschatz::help('T');
print Lingua::DE::Wortschatz::help('full');

DESCRIPTION

This is a full featured client for the webservices at http://wortschatz.uni-leipzig.de. The script wsws.pl is a command line client that uses this lib. It is contained in this distribution.

The webservices at http://wortschatz.uni-leipzig.de provide access to a database of the german word pool. Available services include tools to reduce words to base form, find synonyms, significant neighbours, example sentences and more. All public services at http://wortschatz.uni-leipzig.de are available. See below for a detailed list.

FUNCTIONS

The following functions can be exported or used via the full name.

use_service($name,@args)

Uses the webservice named $name with the arguments @args. Returns undef if not enough arguments for the desired service are supplied. Otherwise it returns a result object (see below).

All public services at http://wortschatz.uni-leipzig.de are available. Below is a list of service names and their parameters. Any parameter with = is optional and defaults to the given value. Service names can be abbreviated to the shortest unique form.

* ServiceOverview Name=
* Cooccurrences Wort Mindestsignifikanz=1 Limit=10
* Baseform Wort
* Sentences Wort Limit=10
* RightNeighbours Wort Limit=10
* LeftNeighbours Wort Limit=10
* Frequencies Wort Limit=10
* Synonyms Wort Limit=10
* Thesaurus Wort Limit=10
* Wordforms Word Limit=10
* Similarity Wort Limit=10
* LeftCollocationFinder Wort Wortart Limit=10
* RightCollocationFinder Wort Wortart Limit=10

A full list of available services, their parameters and additional information on what each service does can be obtained with the help function.

help(?$service)

Returns a string containing information about the service with name $service. If no service name is given, a short list of all available services is returned. If $service eq 'full', a more detailed list is created.

THE RESULT OBJECT

The use_service function returns a result object of class Lingua::DE::Wortschatz::Result that holds the results.

This object offers methods to conveniently access the data.

dump()

$result->dump();

Pretty prints the data to STDOUT.

service()

$service_name=$result->service();

Returns the name of the service that was used to obtain the data.

names()

@column_headers=$result->names();

Returns a list of the names of the data columns.

data()

@rows=$result->data();

Returns a list of datasets. Each dataset is a reference to a list of values.

hashrefs()

@lines=$result->hashrefs();

Returns a list of datasets. Each dataset is a references to a hash. The hashkeys are the names of the return values and the values are the data.

CAVEATS/BUGS

I wrote this to understand SOAP better. It took me way too long, due to the lack of documentation.

I couldn't figure out how to make SOAP::Lite and SOAP::Data create the request parameters in the correct way. It appears to me that this would require me to create custom as_Datatype functions for all the used types.

I could neither make it work using the WSDL file. I think with the data format that wortschatz.u-l requires, WSDL is pretty useless.

So I decided to use a straightforward approach and create the XML request parameters myself. This is probably not the idea of that whole SOAP thing, but it's short and it works. But see it as a hack.

SEE ALSO

http://wortschatz.uni-leipzig.de
SOAP::Lite

AUTHOR/COPYRIGHT

This is $Id: Wortschatz.pm,v 1.9 2005/11/21 13:58:07 manonegra Exp $.

Copyright 2005 Daniel Schröer (daniel@daimla1.de).

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

1 POD Error

The following errors were encountered while parsing the POD:

Around line 299:

Non-ASCII character seen before =encoding in 'Schröer'. Assuming CP1252