Skip to content
Snippets Groups Projects
README-pl-beta.txt 2.19 KiB
Newer Older
leszeks's avatar
leszeks committed
******************
**** PlWN API ****
******************

PlWN API umożliwia:
   - wyszukiwanie synsetów i jednostek leksykalnych w Słowosieci;
   - dostęp do własności synsetów i jednostek leksykalnych, oraz ich relacji;
   - eksport całości bądź części Słowosieci do grafu.

To README jest krótką, tymczasową instrukcją do wersji beta PlWN API.
Interfejs oraz funkcjonalność mogą ulec zmianie.

=============
Inicjalizacja
=============

   >>> import plwn
   >>> wn = plwn.load('plwn-3.0.db', 'sqlite3')

=================
Zrzuty baz danych
=================

Na ten moment, zalecany jest dostęp do bazy danych Słowosieci poprzez zrzuty do
plików SQLite, "plwn-X.db" (gdzie X to wersja Słowosieci). Zrzuty powinny
były zostać udostępnione razem z API.

==============
Funkcjonalność
==============

Opis funkcjonalności jest dostępny poprzez docstringi modułu plwn/bases.py

   $ pydoc plwn.bases

Dodatkowo, w plwn/_pos.py znajduje się lista stałych wartości part-of-speech
używanych przez API.

Zgodnie z konwencją przyjętą przez Python 3, większość metod zwracających
kolekcje obiektów zwraca je w postaci generatorów.

   >>> wn.lexical_units(lemma=u'pies')
   TupWrapper(<generator object <genexpr> at 0x7f1048583410>)

Jeśli celem zapytania jest iteracja po wynikach, nie potrzeba niczego więcej.

   >>> for lu in wn.lexical_units(lemma=u'pies'):
   >>>   print(lu.id)
   5563
   52245
   ...

Aby otrzymać listę (albo inną kolekcję), należy rzutować otrzymany obiekt.

   >>> list(wn.lexical_units(lemma=u'pies'))
   [<LexicalUnit id=5563 lemma=u'pies' pos=u'noun' variant=1>,
    <LexicalUnit id=52245 lemma=u'pies' pos=u'noun' variant=2>,
    ...
   ]

Dla wygody w trybie interaktywnym Pythona, generatory są opakowane w obiekty
"TupWrapper", które umożliwiają rzutowanie generatora do typu krotki
poprzez "wywołanie" obiektu.

   >>> wn.lexical_units(lemma=u'pies')()
   (<LexicalUnit id=5563 lemma=u'pies' pos=u'noun' variant=1>,
    <LexicalUnit id=52245 lemma=u'pies' pos=u'noun' variant=2>,
    ...
   )

Jednak w przypadku pisania programów odwołujących się do API zalecane jest
jawne rzutowanie zwracanych generatorów. "Explicit is better than implicit."