Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
******************
**** 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."