Maja Górecka-Wolniewicz
UCI UMK Toruń
Maja.Wolniewicz@uni.torun.pl

Temat zadania:

Definicja danych w gałęzi organizacyjnej jednostki bazy LDAP

(opracowanie przygotowane w ramach realizacji zadań projektu KBN)

Data opracowania: 01.2003

Spis treści

  1. Wprowadzenie
  2. Założenia
  3. Opis instytucji (klasa macierzysta organization)
  4. Opis jednostki organizacyjnej (klasa macierzysta organizationalUnit)
  5. Opis funkcji w jednostce organizacyjnej (klasa macierzysta organizationalRole)
  6. Opis osób (klasa macierzysta person)

1. Wprowadzenie

Jedną z funkcji ogólnopolskiej akademickiej usługi LDAP ma być dostarczenie użytkownikom sieci Internet swoistej książki adresowo-informacyjnej (white pages), w której są gromadzone:
  1. dane dotyczące struktury organizacyjnej jednostek,
  2. dane dotyczące pracowników poszczególnych jednostek.
Usługa ta ma być kontynuacją akademickiego serwisu X.500, koordynowanego w środowisku akademickim przez UMK od 1992 roku.
Protokół LDAP daje dużo większe możliwości w zakresie dostosowania danych do potrzeb naszego rodzimego języka. Jednoznaczne nazwy wyróżnione obiektów (distinguished names) w LDAP-ie mogą zawierać znaki nie-ASCII, podczas gdy w X.500 konieczne było usuwanie znaków diakrytycznych w nazwach wyróżnionych. Wszystkie znaki spoza tablicy ASCII są przechowywane w bazie danych LDAP w postaci UTF-8. Interfejsy służące do wprowadzania i wyprowadzania danych mogą stosować dowolny system kodowania danych wejściowych i wyjściowych (przy założeniu, że sam interfejs jest w stanie zidentyfikować przyjęte kodowanie i odpowiednio przekonwertować dane do lub z formatu UTF-8, patrz raport Opracowanie prototypu narzędzi do obsługi polskich znaków diakrytycznych w zasobach LDAP).

W LDAP-ie, zgodnie z RFC2596, Use of Language Codes in LDAP, można stosować podtypy atrybutów do specyfikacji języka, w którym jest wyrażona wartość atrybutu. Taka możliwość znacznie ułatwia przygotowywanie wielojęzycznych interfejsów do bazy danych (w X.500 najczęściej stosowało się wielowartościowe atrybuty w celu przypiania wartości w innym języku, rozróżnienie roli poszczególnych wartości nie było więc możliwe, dlatego dla potrzeb polskiego projektu X.500 został zdefiniowany dodatkowy schemat pozwalający na przypisywanie poprawnych polskich nazw poprzez specjalne "polskie" atrybuty). Aby z podtypów lang atrybutu był pożytek należy jednoznacznie ustalić reguły wprowadzania danach oraz priorytety przypisywane atrybutom i atrybutom z podtypami językowymi.

2. Założenia

Zakładamy, że podstawowym celem jest udostępnienie poprzez serwer LDAP danych polskiemu użytkownikowi, dlatego wszystkie główne atrybuty (tj. atrybuty bez podtypów językowych) otrzymują wartości odpowiadające napisom polskim. Oznacza to, że atrybutom o, ou, cn, description, personalTitle, title, plposition, postalAddress itp. są przypisywane prawidłowe polskie nazwy. Wszystkie te atrybuty są wielowartościowe, dodatkowe wartości mogą zawierać nazwy zastępcze, inne tytuły naukowe, funkcje itp., a także odpowiedniki wartości w języku polskim "okrojone" z polskich akcentów. Te ostatnie wartości atrybutów mogą być pożądane dla poprawy efektywności wyszukiwania danych poprzez podanie poszukiwanego wzorca. Dzięki istnieniu tych wartości użytkownik może podać uproszczoną postać polskiej nazwy (gdy np. nie może wprowadzić z klawiatury znaków z polskimi akcentami).
Wartościom atrybutów prezentowanym w języku angielskim zawsze towarzyszy przyrostek ;lang-en po typie atrybutu.
Istotną rolę w schemacie danych LDAP dotyczącym gałęzi organizacyjnej odgrywa atrybut displayName. Jest on atrybutem nieobowiązkowym w klasie pleduOrg. Z założenia jest atrybutem jednowartościowym, służącym do przypisania instytucji, jednostce, osobie jednoznacznej nazwy (atrybuty o, ou, cn mogą być wielowartościowe, co uniemożliwia automatyczne wybieranie pożądanej wartości). Na ogół jego wartość odpowiada nazwie występującej w pierwszym komponencie jednoznacznej wyróżnionej nazwy wpisu. displayName może mieć również zastosowanie, gdy wiadomo, że dana instytucja, jednostka, osoba znana jest popularnie pod inną nazwą niż ta, która może zostać pobrana z atrybutu o, ou lub cn i tę właśnie nazwę chcemy widzieć jako wyróżnioną (np. pogrubioną, powiększoną) w interfejsie użytkownika. Atrybut displayName może mieć przypisany podtyp lang-en - przenosi wówczas wartość w języku angielskim, zakłada się, że taki atrybut jest również jednowartościowy.
W przypadku atrybutów wyróżnionych (tworzących jednoznaczną nazwę wyróżnioną), które mogą mieć wiele wartości, a dodatkowo jest stosowany atrybut displayName należy ustalić procedurę wyboru nazwy traktowanej jako nazwa główna. Oto priorytety poszczególnych atybutów, przy poszukiwaniu nazwy instytucji / jednostki organizacyjnej / osoby prezentowanej jako nazwa główna.

Priorytety atrybutów (od najwyższego)
w interfejsie polskim
wartość displayName
wartość o / ou / cn zgodna z wartością w jednoznacznej nazwie wyróżnionej wpisu;
w interfejsie angielskim
wartość displayName;lang-en
wartość o;lang-en / ou;lang-en / cn-lang-en (uwaga: o;lang-en może być atrybutem wielowartościowym, wówczas nie jest możliwy wybór preferowanej wartości, dlatego należy stosować displayName;lang-en)

3. Opis instytucji (klasa macierzysta organization)

Instytucja, np. "Uniwersytet Mikołaja Kopernika w Toruniu", powinna być lokalizowana bezpośrednio pod wpisem dotyczącym kraju (c=PL). Jej podstawowa klasa obiektów to organization. Klasami pomocniczymi są eduOrg i pleduOrg.
Atrybut o jest obowiązkowy - zawiera nazwę instytucji występującą w jednoznacznej nazwie wyróżnionej wpisu (czyli pierwszy człon tej nazwy, nazwa ta może zawierać polskie znaki). Drugą wartością tego atrybutu jest nazwa przetranslowana do postaci ASCII (obcięte znaki diakrytyczne) - ta wartość jest używana do wyszukiwana danych w przypadku, gdy w polu wyszukania użytkownik nie wpisze poprawnej polskiej nazwy.
Dla atrybutu o nie powinny być stosowane podtypy lang-pl. Atrybuty z podtypem lang-en są przeznaczone do przenoszenia nazwy angielskiej instytucji i popularnych angielskich nazw zastępczych, czy angielskich skrótów nazw.
Zaleca się stosowanie atrybutu displayName. We wpisie dotyczącym instytucji można również zamieścić dodatkowe atrybuty:
telephoneNumbernumer telefonu instytucji
facsimileTelephoneNumbernumer faksu instytucji
postalAddressadres instytucji (ulica, kod pocztowy, miasto)
postalCodekod pocztowy miasta
llokalizacja: miasto / region
businessCategorykategoria zawodowa
seeAlsonazwa wyróżniona innego wpisu związanego z danym wpisem
descriptionopis dotyczący jednostki organizacyjnej
eduOrgHomePageURIstrona domowa jednostki
W odniesieniu do atrybutów postalAddress, businessCategory, l, description stosują się zasady opisane w Założeniach, czyli nazwy angielskie są umieszczone w atrybucie z podtypem lang-en.

4. Opis jednostki organizacyjnej (klasa macierzysta organizationalUnit)

Jednostka organizacyjna, np. "Wydział Humanistyczny", powinna być lokalizowana bezpośrednio pod wpisem dotyczącym instytucji lub pod wpisem tej jednostki organizacyjnej, której podlega (nie ma ograniczenia dotyczącego liczby jednostek organizacyjnych w gałęzi drzewa). Podstawową klasą obiektów jednostki organizacyjnej jest organizationalUnit. Klasami pomocniczymi są eduOrg i pleduOrg.
Atrybut ou jest obowiązkowy - zawiera nazwę jednostki organizacyjnej występującą w jednoznacznej nazwie wyróżnionej wpisu (czyli pierwszy człon tej nazwy, nazwa ta może zawierać polskie znaki). Drugą wartością tego atrybutu jest nazwa przetranslowana do postaci ASCII (obcięte znaki diakrytyczne) - ta wartość jest używana do wyszukiwana danych w przypadku, gdy w polu wyszukania użytkownik nie wpisze poprawnej polskiej nazwy.
Dla atrybutu ou nie powinny być stosowane podtypy lang-pl. Atrybuty z podtypem lang-en są przeznaczone do przenoszenia nazwy angielskiej instytucji i popularnych angielskich nazw zastępczych, czy angielskich skrótów nazw.
Zaleca się stosowanie atrybutu displayName. We wpisie dotyczącym instytucji można również zamieścić dodatkowe atrybuty:
telephoneNumbernumer telefonu jednostki organizacyjnej
facsimileTelephoneNumbernumer faksu jednostki organizacyjnej
postalAddressadres jednostki organizacyjnej (ulica, kod pocztowy, miasto)
postalCodekod pocztowy miasta
llokalizacja: miasto / region
businessCategorykategoria zawodowa
seeAlsonazwa wyróżniona wpisu związanego z danym wpisem
descriptionopis dotyczący jednostki organizacyjnej
eduOrgHomePageURIstrona domowa jednostki
W odniesieniu do atrybutów postalAddress, businessCategory, l, description stosują się zasady opisane w Założeniach, czyli nazwy angielskie są umieszczone w atrybucie z podtypem lang-en.

5. Opis funkcji w jednostce organizacyjnej (klasa macierzysta organizationalRole)

Wpis związany ze stanowiskiem funkcyjnym, czyli np. "Kierownik Instytutu", jest lokalizowany bezpośrednio pod wpisem dotyczącym jednostki organizacyjnej, w której jest pełniona dana funkcja. Podstawową klasą obiektów osoby jest organizationalRole. Klasą pomocniczą jest pleduOrganizationalRole.
Atrybutem obowiązkowym jest cn, zawierający nazwę funkcji. Jedna z jego wartości jest przenoszona na postawie pierwszego członu nazwy wyróżnionej wpisu. Inne wartości mogą zawierać nazwy dodatkowe w języku polskim oraz nazwę przetranslowaną do postaci ASCII (obcięte znaki diakrytyczne), używaną do wyszukiwana danych w przypadku, gdy w polu wyszukania użytkownik nie wpisze poprawnej polskiej nazwy. Atrybut z podtypem lang-en służy do przechowywania angielskiej wersji nazwy funkcji.
Zaleca się stosowanie atrybutu displayName do umieszczania powszechnie stosowanej nazwy funkcji. We wpisie dotyczącym osoby pełniącej funkcję można również zamieścić dodatkowe atrybuty:
roleOccupantnazwa wyróżniona osoby pełniącej daną funkcję
telephoneNumbernumer telefonu jednostki organizacyjnej
facsimileTelephoneNumbernumer faksu jednostki organizacyjnej
postalAddressadres jednostki organizacyjnej (ulica, kod pocztowy, miasto)
postalCodekod pocztowy miasta
llokalizacja: miasto / region
descriptionopis dotyczący jednostki organizacyjnej
roomnumbernumer pokoju służbowego
mailsłużbowy adres e-mail
W odniesieniu do atrybutów postalAddress, l, description stosują się zasady opisane w Założeniach, czyli nazwy angielskie są umieszczone w atrybucie z podtypem lang-en.

6. Opis osób (klasa macierzysta person)

Osoba, czyli pracownik instytucji, np. "Jan Kowalski", jest lokalizowana bezpośrednio pod wpisem dotyczącym jednostki organizacyjnej, której podlega. Podstawową klasą obiektów osoby jest person. Klasami dodatkowymi są klasy strukturalne: organizationalPerson (wywodząca się z person) oraz inetorgperson (wywodząca się z organizationalPerson), natomiast klasami pomocniczymi: eduPerson i pleduPerson.
Atrybuty cn i sn są obowiązkowe - zawierają odpowiednio imię i nazwisko osoby oraz nazwisko. Są to atrybuty wielowartościowe, przy czym jedna z wartości musi pokrywać się z wartością w pierwszym członie jednoznacznej nazwy wyróżnionej wpisu. Dodatkowe wartości tych atrybutów to nazwy przetranslowane do postaci ASCII (obcięte znaki diakrytyczne) - te wartości są używane do wyszukiwana danych w przypadku, gdy w polu wyszukania użytkownik nie wpisze poprawnej polskiej nazwy.
Dla atrybutów cn, sn nie powinny być stosowane podtypy lang-pl i lang-en.
Zaleca się stosowanie atrybutu displayName do umieszczania powszechnie stosowanej nazwy osoby (np. imię Jolanta, a nie oficjalne Maria Jolanta). We wpisie dotyczącym instytucji można również zamieścić dodatkowe atrybuty:
uniidentnumer identyfikacyjny pracownika
telephoneNumbernumer telefonu służbowego
facsimileTelephoneNumbernumer faksu
postalAddressadres służbowy (ulica, kod pocztowy, miasto)
postalCodekod pocztowy miasta
llokalizacja: miasto / region
businessCategorykategoria zawodowa
seeAlsonazwa wyróżniona wpisu związanego z daną osobą
descriptionopis dotyczący osoby (zainteresowania zawodowe, hobby)
mobilenumer telefonu komórkowego
roomNumbernumer pokoju służbowego
labeledURIstrona domowa
mailadres e-mail
homePhonetelefon domowy
homePostalAddressadres domowy
eduPersonAffiliationklasyfikacja w grupie zawodowej (pracownik administracji, kadra dydaktyczna, student) itp.)
eduPersonOrgDNnazwa wyróżniona instytucji, w której jest zatrudniona osoba
eduPersonOrgUnitDNnazwa wyróżniona jednostki organizacyjnej instytucji, w której jest zatrudniona osoba
eduPersonPrimaryOrgUnitDNnazwa wyróżniona głównej jednostki organizacyjnej, w której jest zatrudniona osoba
eduPersonNicknamepowszechnie używane imię osoby
eduPersonPrincipalNameidentyfikator osoby w sieci komputerowej (user@domain), nie zawsze pokrywa się z e-mailem
W odniesieniu do atrybutów postalAddress, businessCategory, homePostalAddress, description stosują się zasady opisane w Założeniach, czyli nazwy angielskie są umieszczone w atrybucie z podtypem lang-en.