Podręcznik Administratora -...
Transcript of Podręcznik Administratora -...
Ω-ΨR
Uczelniana Baza Wiedzy
Podręcznik Administratora
Wersja 1.0
Wydział Elektroniki i Technik Informacyjnych
Politechnika Warszawska
Pag
e 2
Historia dokumentu
Numer
wersji
Data
wersji Opis zmian Autor
Pag
e 3
Spis treści
1 Wstęp ............................................................................................................................ 4
2 Metadane ...................................................................................................................... 5
2.1 Obiekty ............................................................................................................................ 5
2.2 Struktury danych i relacje ............................................................................................... 16
2.3 Struktury pomocnicze – słowniki .................................................................................... 19
3 Narzędzia administratora ............................................................................................ 21
4 Model struktur danych ................................................................................................. 62
Pag
e 4
1 Wstęp
Niniejsze opracowanie składa się z 4 rozdziałów. W Rozdziale 2 przedstawiono wyniki
analizy metadanych, pokazano powiązania pomiędzy poszczególnymi kategoriami
informacyjnymi uczelnianej bazy wiedzy. W Rozdziale 3 przedstawiono własności systemu
kluczowe z punktu widzenia administratora i konfiguracji systemu. Rozdział 4 stanowi
dokładną dokumentację struktur danych.
Pag
e 5
2 Metadane
2.1 Obiekty
Analiza metadanych wykazała, że baza wiedzy i repozytorium cyfrowe Politechniki
Warszawskiej powinno obejmować opisy następujących obiektów:
1. Autorzy (pracownicy naukowi, doktoranci, studenci)
2. Publikacje (artykuły, książki, rozdziały w książkach)
3. Prace dyplomowe (prace dyplomowe inżynierskie, prace dyplomowe magisterskie,
prace dyplomowe doktorskie)
4. Inne dokumenty o charakterze naukowym (raporty, tłumaczenia, recenzje, ekspertyzy,
prezentacje)
5. Projekty
6. Czasopisma
7. Seryjne wydawnictwa książkowe
8. Konferencje
9. Struktura organizacyjna uczelni (afiliacje)
10. Instytucje (autorzy korporatywni)
11. Zasoby cyfrowe (płyty CD/DVD, multimedia)
12. Internetowe źródła informacji (strony WWW)
Z uwagi na dobre określenie wymagań oraz ustalone już w praktyce działania uczelni
struktury danych w zakresie obiektów 1-11, obiekty te zostały uwzględnione w
rozbudowywanym systemie REPO.
Baza autorów służy do utrzymywania opisów osób, którzy są autorami gromadzonych w
repozytorium publikacji i innych dokumentów. W bazie autorów występują również
dyplomanci (autorzy prac dyplomowych), promotorzy, kierownicy i wykonawcy projektów
itp.
W pierwszym rzędzie baza autorów zawiera opisy autorów, którzy są pracownikami uczelni,
gdyż większość gromadzonych opisów publikacji jest autorstwa lub współautorstwa
pracowników. Z tego powodu, baza ta może również być wykorzystywana jako baza
pracowników uczelni, przy czym zakłada się, że dane pracowników będą na bieżąco
aktualizowane przez jednostki niższego szczebla, aby zapewnić ich aktualność.
Pag
e 6
Opis autora/pracownika/dyplomanta obejmuje następujące elementy:
Aktywny? Wskaźnik aktualnego zatrudnienia: zaznaczany, jeśli
dana osoba ma być widoczna w wyszukiwarce
pracowników na portalu WEiTI, co oznacza, ze możemy
dopuścić w wyszukiwarce możliwość odnalezienia
również emerytów, doktorantów, gości itp. (patrz pole
Status)
Status Pracownik Doktorant Dyplomant Gość
Osoba z zewnątrz
ustawiany zgodnie ze stanem faktycznym
Imię Imię osoby (dla pracowników koniecznie pełne, np.
Henryk, Kajetan M.)
Nazwisko Nazwisko osoby (pełne, np. Mossakowska-Wyszyńska)
Email Adres poczty elektronicznej
Afiliacja Instytut, w którym pracownik jest zatrudniony
(wybieramy z dostępnej tabelki pomocniczej)
Akronim jednostki organizacyjnej
(np. zakładu)
Skrót nazwy zakładu (lub biura), np. ZSI, ZTOiS, BOI
Stanowisko w języku polskim Stanowisko pracownika, np. Profesor zwyczajny,
Adiunkt, Starszy specjalista, Starszy referent
Stanowisko w języku angielskim Stanowisko pracownika w języku angielskim, np.
Tenured Professor, Associate Professor
Tekst przed nazwiskiem w języku
polskim
Tekst przed nazwiskiem w języku polskim (zwykle
tytuł, stopień naukowy lub tytuł zawodowy), np. prof. dr
hab. inż., dr hab. inż.. mgr inż., mgr
Pag
e 7
Tekst przed nazwiskiem w języku
angielskim
Tekst przed nazwiskiem w języku angielskim (zwykle
tytuł, stopień naukowy lub tytuł zawodowy - w
konwencji angielskiej prezentowany po nazwisku), np.
Prof., PhD, MSc
Pokój Aktualny numer pokoju, w przypadku budynku innego
niż Gmach Elektroniki wskazujemy gmach, np. dla
Gmachu Elektrotechniki wpisujemy: GET, kl. A, pok.
240
Telefon Aktualny numer telefonu, faksu w konwencji
międzynarodowej, np. +48 22 234 7432, fax +48 22 234
6091. Poszczególne numery rozdzielamy przecinkiem
Strona domowa Adres strony domowej WWW, np.
http://www.ii.pw.edu.pl/~rbembeni/index.html
Konsultacje Terminy konsultacji, np. wtorek 13.00 - 15.00, środa
9.00 - 12.00
Opis w języku polskim Charakterystyka profilu zawodowego pracownika w
języku polskim
Opis w języku angielskim Charakterystyka profilu zawodowego pracownika w
języku angielskim
Zdjęcie Wstawiana jest fotografia pracownika (format
legitymacyjny)
Baza afiliacji służy do utrzymywania opisu struktury jednostki, dla której prowadzone jest
repozytorium. W przypadku uczelni struktura ta obejmuje podział na wydziały, z których
każdy może dzielić się na instytuty, bądź katedry, zakłady, pracownie itp. Struktura nie jest
sztywna, tj. można w niej zapisać dowolny nieregularny schemat organizacyjny. Docelowo
może być wykorzystana w modułach wspomagających jednostki uczelni (np. baza
pracowników, tablice walidacyjne wspomagające wprowadzanie danych bibliograficznych,
czy wreszcie nawigację po repozytoriach poszczególnych jednostek organizacyjnych oraz po
Pag
e 8
repozytorium uczelni. Przykładem struktury do nawigacji w repozytorium uczelnianym
Politechniki Warszawskiej jest ekran na Rysunku 1.
Opis jednostki organizacyjnej obejmuje następujące pola:
Nazwa w jęz. polskim - pełna nazwa jednostki w jęz. polskim
Skrót w jęz. polskim - skrót nazwy jednostki w jęz. polskim
Nazwa w jęz. angielskim - pełna nazwa jednostki w jęz. angielskim
Skrót w jęz. angielskim - skrót nazwy jednostki w jęz. angielskim
Afiliacja nadrzędna - powiązanie do opisu jednostki nadrzędnej
Pag
e 9
Rysunek 1 Fragment struktury uczelni
Pag
e 1
0
Poza autorami indywidualnymi przewidziano też możliwość opisywania autorstwa
instytucjonalnego, przy czym baza instytucji obejmuje zarówno autorów korporatywnych
publikacji jak instytucje wykonawców projektów, instytucje zlecające projekty itp.
Opis autora instytucjonalnego obejmuje następujące pola:
Pełna nazwa - pełna nazwa instytucji
Skrót - skrót nazwa instytucji
Inne formy - inne formy nazwy instytucji
Opisy książek obejmują opis następujących typów jednostek opisu bibliograficznego
(poziom monograficzny):
Książki, monografie, podręczniki, skrypty, albumy, atlasy itp. (tzw. wydawnictwa
zwarte)
Książkowe wydawnictwa materiałów konferencyjnych (zwykle zbiór rozdziałów
poświeconych poszczególnym referatom)
Książkowe wydawnictwa seryjne (zwykle zbiór artykułów)
W przypadku zwykłych publikacji książkowych, opisanie książki kończy proces jej opisu.
Natomiast w pozostałych przypadkach utworzenie opisu książki nie jest wystarczające, gdyż
zwykle podstawowym zadaniem jest opisanie fragmentów zawartych w tym wydawnictwie
książkowym. Mamy tu do czynienia z opisem złożonym, najpierw należy utworzyć opis
wydawnictwa książkowego (poziom monograficzny), a następnie tworzymy opis
rozdziału/artykułu będącego elementem tego wydawnictwa książkowego (poziom
analityczny).
Opis książki obejmuje następujące elementy:
Punktacja Punktacja ministerialna wyliczana automatycznie (na
podstawie parametrów publikacji) lub nadawana ręcznie
przez Super Edytora
Pag
e 1
1
Typ z importu Diagnostyczne pole systemowe (nie modyfikowalne)
Rodzaj publikacji Monografia Podręcznik akademicki Skrypt
Rola autora Redaktor Autor
Autor(zy) Autor lub kilku autorów książki
Tytuł Tytuł książki
Autor instytucjonalny Instytucja autorska wydawnictwa w przypadku braku
autora indywidualnego
Język Język publikacji
Data wydania Rok wydania książki
Wydawca Nazwa wydawcy
Adres Wydawcy Adres wydawcy
Paginacja Liczba stron, np. 374 (wpisujemy tylko liczbę - bez
słownych określników typu: s., ss., pages).
ISBN Numer ISBN (bez skrótu ISBN)
DOI Identyfikator wersji elektronicznej (ang. Digital Object
Identifier)
URL Adres WWW, pod którym można znaleźć opis książki
Plik Plik wersji cyfrowej książki
Okładka Plik graficzny zawierający obraz okładki książki
Dodatkowe dane opisu dotyczą następujących elementów:
Powiązanie z opisem serii (dla książek wydawanych w serii)
Powiązanie z opisem konferencja (dla materiałów konferencyjnych)
Tom
Numer
Streszczenie w języku polskim i angielskim.
Pag
e 1
2
słowa kluczowe w języku polskim i angielskim.
Opisy artykułów obejmują opis następujących typów jednostek opisu bibliograficznego
(poziom analityczny):
Artykuły zawarte w czasopismach, które mogą również dotyczyć konferencji
(materiały konferencyjne)
Rozdziały zawarte w wydawnictwach książkowych, które mogą być dodatkowo
wydawnictwami ukazującymi się jako seria i/lub mogą dotyczyć konferencji
(materiały konferencyjne)
Nie wyróżniono specjalnego oznakowania materiałów konferencyjnych, dana publikacja jest
traktowana jako materiał konferencyjny, jeśli w jej opisie znajduje się opis (odniesienie do)
konferencji.
Podstawowe elementy opisu artykułu obejmują:
Rodzaj publikacji Artykuł z czasopisma Rozdział w książce
Punktacja Punktacja ministerialna wyliczana automatycznie (na
podstawie parametrów publikacji) lub nadawana ręcznie
przez Super Edytora
Typ z importu Diagnostyczne pole systemowe (nie modyfikowalne)
Rola autora Redaktor Autor
Autor(zy) Autor lub kilku autorów artykułu (rozdziału)
Tytuł Tytuł artykułu (rozdziału)
Język Język publikacji
DOI Identyfikator wersji elektronicznej (ang. Digital Object
Identifier)
URL Adres WWW, pod którym można znaleźć opis artykułu
(rozdziału)
Pag
e 1
3
Plik Plik wersji cyfrowej artykułu (rozdziału)
Dodatkowe dane opisu dotyczą następujących elementów:
Powiązanie z opisem czasopisma/serii (dla artykułów w czasopiśmie)
Powiązanie z opisem konferencji (dla materiałów konferencyjnych)
Tom/Wolumin
Numer/Zeszyt danego egzemplarza
Data wydania.
Paginacja
Powiązanie z opisem książki (dla rozdziałów w książce)
Streszczenie w języku polskim i angielskim.
słowa kluczowe w języku polskim i angielskim.
Opis czasopisma obejmuje następujące pola:
Autor - autor serii
Skrócona nazwa - skrócona nazwa czasopisma
Pełna nazwa - pełna nazwa czasopisma
ISSN - ISSN czasopisma
Wydawca - wydawca czasopisma
Strona domowa - adres www strony domowej czasopisma
Język - podstawowy język czasopisma
Punktacja - liczba punktów nadana przez krajową jednostkę oceniającą
Impact Factor - wskaźnik prestiżu i siły oddziaływania czasopism naukowych,
ustalany przez Instytut Filadelfijski
Lista - kategoria listy kwalifikacyjnej
A – według wykazu MNiSzW – czasopisma występujące na liście JCR (13-40 pkt.)
B – według wykazu MNiSzW – czasopisma nie występujące na liście JCR (6-9 pkt.)
C – według wykazu MNiSzW – czasopisma występujące na liście JCR (1-2 pkt.)
Pag
e 1
4
H – według wykazu MNiSzW – czasopisma wyróżnione przez European Reference
Index for the Humanities (10-20 pkt.)
D – według wykazu MNiSzW – czasopisma nie występujące na liście MNiSzW
Opis serii książkowej obejmuje następujące pola:
Autor - autor serii
Skrócona nazwa - skrócona nazwa serii
Tytuł serii - tytuł serii
Autor instytucjonalny - nazwa instytucji (jeśli jest to instytucja autorska)
ISSN - ISSN serii
Punktacja - ocean punktowa
Impact Factor - współczynnik oceny
Typ listy - typ listy oceny
Opis konferencji obejmuje następujące pola:
Skrócona nazwa - skrócona nazwa konferencji
Pełna nazwa - pełna nazwa konferencji
Lokalizacja - miejsce odbycia konferencji
Rok - rok (data) konferencji
Opisy prac dyplomowych obejmują:
Prace inżynierskie
Prace magisterskie
Rozprawy doktorskie
Dane opisu prac dyplomowych obejmują elementy przedstawione poniżej:
Pag
e 1
5
Autor(zy) Autor lub kilku autorów pracy dyplomowej
Tytuł w języku polskim Tytuł pracy dyplomowej w języku polskim
Tytuł w języku angielskim Tytuł pracy dyplomowej w języku angielskim
Promotor Promotor pracy dyplomowej
Jednostka dyplomująca Jednostka dyplomująca
Język Język pracy dyplomowej
Status pracy W toku Zatwierdzona Zrecenzowana
Obroniona
Data rozpoczęcia Data rozpoczęcia pracy dyplomowej
Data obrony Data obrony pracy dyplomowej
Data zakończenia Data zakończenia procesu dyplomowania
Paginacja Liczba stron, np. 194 (wpisujemy tylko liczbę - bez słownych
określników typu: s., ss., pages).
Plik Plik wersji cyfrowej pracy dyplomowej
Recenzent zew. Recenzent zewnętrzny (spoza WEiTI)
Recenzent wew. Recenzent wewnętrzny (z WEiTI)
Klasyfikacja PKT Klasyfikacja PKT
Klasyfikacja KBN Klasyfikacja KBN
Klasyfikacja europejska Klasyfikacja europejska
Projekt Powiązanie do opisu projektu związanego z pracą dyplomową
Dodatkowo podaje się
Streszczenie w języku polskim i angielskim.
słowa kluczowe w języku polskim i angielskim.
Pag
e 1
6
2.2 Struktury danych i relacje
Struktury danych wykorzystywane do reprezentowania obiektów wymienionych w
poprzednim punkcie opisano szczegółowo w punkcie 4.
Poniżej przedstawiono schematycznie relacje pomiędzy najważniejszymi obiektami
przechowywanymi w repozytorium.
Pag
e 1
7
Rysunek 2 Relacje pomiędzy obiektami
AUTOR
PRACOWNIK
DYPLOMANT
STUDENT
INSTYTUCJA
Autor
korporatywny
KSIĄŻKA
ARTYKUŁ
SERIA
WYDAWNICZA
KSIĄŻKOWA
ROZDZIAŁ
JEDNOSTKA
ORGANIZACYJNA
CZASOPISMO
autorstwo
afiliacja
promotor
redakcja
PRACA
DYPLOMOWA
Inżynierska
Magisterska
Doktorska
PROJEKT
KONFERENCJA
jedn.nadrzędna
seria część
autorstwo
autorstwo
autor
promotor
jedn.dypl.
w ramach
projektu
w ramach
konferencji
w ramach
konferencji
redakcja
Pag
e 1
8
Nieco bardziej złożone są relacje dotyczące projektu i dlatego zostały one przedstawione na
oddzielnym rysunku poniżej.
Rysunek 3 Relacje obiektu projekt
AUTOR
PRACOWNIK
DYPLOMANT
STUDENT
WYKONAWCA
INSTYTUCJA
Wykonawca
JEDNOSTKA
ORGANIZACYJNA
afiliacja
PROJEKT
kierownik
jedn. wykonująca
proj. poprzedzający
wykonawcy
inst. zlecająca proj. równoległy
proj. przed aneksowaniem
inst. wykonująca
zewnętrzna
partner
Pag
e 1
9
2.3 Struktury pomocnicze – słowniki
W celu zapewnienia integralności danych i poprawnego funkcjonowania systemu bazy
wiedzy niezbędne jest zastosowanie struktur pomocniczych, które byłyby wykorzystywane
zarówno na etapie wprowadzania danych i ich walidacji jak również jako elementy
wspomagania użytkownika końcowego przy przeszukiwaniu zasobów bazy wiedzy.
Struktury te powinny obejmować wszelkie dane, które wymagają uporządkowania i
standaryzacji, w szczególności dotyczy to stosowanych kodów (np. języki, kraje, jednostki
organizacyjne uczelni), słownictwa kluczowego, hierarchicznej struktury organizacyjnej
uczelni, kategoryzacji i typologii projektów oraz ich źródeł finansowania, standaryzacji
innych podziałów, rodzajów, typów i klasyfikacji. Zastosowanie takich struktur
pomocniczych zapewnia:
- zwiększenie poziomu integralności danych
- znaczne poprawienie jakości i spójności danych
- wspomaganie użytkowników wprowadzających dane
- wspomaganie użytkowników końcowych
Opis języka obejmuje następujące pola:
Kod języka - kod języka, np. pl, en, de, fr,
Nazwa w jęz. polskim - nazwa języka w jęz. polskim
Nazwa w jęz. angielskim - nazwa języka w jęz. angielskim
Opis typu projektu obejmuje następujące pola:
Nazwa typu projektu - pełna nazwa typu projektu, np. Działalność statutowa,
Typ nadrzędny - powiązanie do opisu typu nadrzędnego
Struktury danych wykorzystywane do reprezentowania obiektów pomocniczych i słowników
opisano szczegółowo w punkcie Błąd! Nie można odnaleźć źródła odwołania..
Pag
e 2
0
Pag
e 2
1
3 Narzędzia administratora
3.1.1 Definiowanie struktur danych I formularzy
Typy danych definiuje się przy pomocy XSD (http://www.w3.org/XML/Schema), która jest
standardem w zakresie definicji struktury dokumentów XML.
Dane zgodne z zadeklarowanymi typami są następnie przechowywane w repozytorium
JCR(http://jcp.org/en/jsr/detail?id=283) w postaci XMLowej oraz w aplikacji jako obiekty
Java zmapowane dzięki technologii JAXB (http://jcp.org/en/jsr/detail?id=222).
Standard JAXB zdolny jest do mapowania standardowych typów XML na typy języka Java
(użytego do implementacji aplikacji) i odwrotnie.
Przykładowa definicja typu:
<complexType name="affiliation">
<annotation>
<documentation>
Reprezentuje afiliacje autorów i pracowników
</documentation>
</annotation>
<sequence>
<element name="id" type="ID"></element>
<element name="owner" type="ID"></element>
<element name="affiliationowner" type="ID"></element>
<element name="namePL" type="string" fw:defaultFormatter='true' fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="nameEN" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="accronymPL" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="accronymEN" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element ref="tns:affiliation"></element>
</sequence>
</complexType>
Pag
e 2
2
Na podstawie definicji danych XSD generowane są domyślne ekrany formularze w
szczególności ekrany:
Wyszukiwania
Edycji i dodawania
Podglądu
Formatowania wierszy w liście obiektów
Sortowania listy obiektów
Formularze generowane są z plików XSD do formatu xhtml (widoki w przeglądarce WWW)
za pomocą transformat XSLT.
Formularze generowane są do folderu o nazwie generated.
Każdy formularz może być dostosowany do specyficznych potrzeb, które to może odbywać
się:
na etapie generacji przez konfigurację plików XSD za pomocą rozszerzeń
po generacji, przez skopiowanie pliku widoku do folderu customized a następnie jego
edycję i stosowne modyfikacje z wykorzystaniem przygotowanej biblioteki
znaczników zapewniającą standardowy wygląd pól. Takie dostrajanie wystarcza przy
modyfikacjach polegających np. na zmianie kolejności pól, wprowadzeniu zakładek
etc.
Po generacji customized a następnie jego edycję i stosowne modyfikacje bez
wykorzystania przygotowanej biblioteki znaczników, zapewnia pełną elastyczność w
tworzeniu widoków
Pag
e 2
3
Przykładowa struktura wygenerowanych widoków oraz folderu z dostosowaniami:
Pag
e 2
4
Opis składowych widoku:
Nazwa składowej widoku Transformaty generujące widok zastosowanie
Confirm.xhtml confirm.xsl Ekran podsumowujący
edytowany rekord, przed
ostateczną akceptacją
Content.xhtml editContent.xsl
oneNestedEdit.xsl
multiNestedEdit.xsl
fileNestedEdit.xsl
simpleEdit.xsl
Zawartość formularza rekordu
edit.xhtml edit.xsl Otoczka formularza rekordu
List.xhtml list.xsl Tabela z wynikami
wyszukiwania
main.xhtml main.xsl Ekran startowy dla edytora tego
typu. Zawiera proste
wyszukiwanie oraz przycisk
„utwórz nowy”
Merge.xhtml merge.xsl Ekran do scalania kilku
rekordów w jeden.
preview.xhtml preview.xsl Ekran do oglądania zawartości
rekordu. Jak edit, ale bez
możliwości modyfikacji.
Search.xhtml search.xsl Formularz wyszukiwania
rowtemplates Folder zawierający szablony
wyglądu wierszy w tabeli
wyników
detailed defaultRowTemplate1.xsl Szablon używany do prezentacji
Pag
e 2
5
szczegółowych danych
dotyczących rekordu
przeznaczonych dla
użytkownika końcowego.
plain defaultRowTemplate1.xsl Szablon używany do
wyświetlania krótkiego opisu
rekordu na ekranach
przeznaczonych do druku, np. w
raportach
simple defaultRowTemplate1.xsl Szablon używany do
wyświetlenia rekordu na
ekranach wyszukiwania. Krótki,
kilku liniowe opis rekordu.
sorttemplates Folder zawierający szablony
definicji sortowania tabeli
wyników
defaultsorttemplate1 defaultSortTemplate1.xsl Definicja jednego ze sposobów
sortowania danych.
defaultsorttemplate2 defaultSortTemplate2.xsl Definicja jednego ze sposobów
sortowania danych.
Tabela 1 Automaycznie generowane widoki i szablony
Na potrzeby funkcjonalności repozytorium wprowadzono rozszerzenia JAXB dodając
wsparcie dla niektórych natywnie wspieranych mechanizmów XSD a także rozszerzeń z
wykorzystaniem mechanizmu anotacji ze standardu XSD. Pozwoliło to na osiągnięcie
dodatkowych możliwości modelowania danych w kontekście ich zachowania w repozytorium
przy użyciu dodatkowych znaczników.
Listę standardowych elementów XSD, tych wymagających podania ich interpretacji w
systemie oraz rozszerzenia wraz z przykładowym użyciem zawarte są w tabeli. Opis
Pag
e 2
6
standardowo wspieranego zachowania zawarte są w specyfikacji JAXB
http://jcp.org/en/jsr/detail?id=222
Nazwa Postać Przykład użycia
Zwykłe pole proste wg XSD, w
zależności od typu pole na
GUI będzie miało postać pola
tekstowego, przyciski radio,
kalendarz
<element
name="namePL"
type="string">
Możliwe inne typy
proste XSD
(int,decimal,date
, boolean I wiele
innych)
<complexType name="affiliation">
<element name="namePL"
type="string">
</complexType>
Typ z jednym polem prostym tekstowym
Odwołanie do pola złożonego,
system przechowuje kopie
rekordu podrzędnego w
strukturze pola nadrzędnego
(przechowywanie danych
historycznych)
Typy podrzędne są także
niezależnie przechowywane
na swojej liście gdzie
funkcjonują jako nadrzędne.
W GUI wypełnienie pola
złożonego odbywa się przez
jego wyszukanie przez pole
„podpowiadające”
autosuggest.
<element
ref="tns:affiliat
ion”>
W przypadku gdy
rekord zawiera
jedno pole typu
podrzędnego
<element
name="supervisor"
type="tns:author"
>
W przypadku wielu
pól tego samego
typu
<element name="phd">
<complexType>
<element name="affiliation"
type="string"/>
<element name="supervisor"
type="tns:author">
</complexType>
</element>
Pola złożone powtarzalne.
Rekord nadrzędny zawiera
listę obiektów typu
maxOccurs="unboun
ded"
<element name="supervisor"
type="tns:author" minOccurs="0"
maxOccurs="unbounded">
Pag
e 2
7
podrzędnego
Unikalność wartości w skali
wszystkich rekordów danego
typu w repozytorium.
Przy niespełnionym warunku
system odmówi zapisu, lub
przekaże ostrzeżenie dając
możliwość skorygowania
danych
<fw:unique
required="true"/>
Bezwzględnie
wymagane
<fw:unique
required="false"/
>
Zalecane
wymaganie
<element name="namePL" type="string"
<annotation>
<appinfo>
<fw:unique required="true"/>
</appinfo>
</annotation>
</element>
Generowanie dokumentacji
do typu danych na podstawie
opisu
<annotation><docu
mentation>..</doc
umentation></anno
tation>
<complexType name="affiliation">
<annotation>
<documentation>
Reprezentuje afiliacje autorów i
pracowników
</documentation>
</annotation>
Umieszczenie pola na
domyślnie generowanym
wierszu reprezentującym
rekord na tabeli wyników lub
w rekordzie nadrzędnym
<fw:defaultFormat
ter='true’>
<element name="namePL" type="string"
fw:defaultFormatter='true'>
Wymagalność pola, skutkuje
błędem na niepoprawnie
wypełnionym formularzu.
Wymagalność można
stosować zarówno do typów
prostych jak i złożonych
<fw:required='tru
e'>
<elementname="namePL" type="string"
fw:required='true'>
Rekord będzie zawierał tylko
jedno z wskazanych podpól, w
ramach GUI wygeneruje się
<fw:choice
name="published"/
>
<choice id="published" minOccurs="0">
<element ref="tns:journalissue"
tns:selectable="false">
<annotation>
Pag
e 2
8
pole wyboru determinujące
dalszą część formularza
<appinfo>
<fw:choice name="published"/>
</appinfo>
</annotation>
</element>
<element ref="tns:book"
fw:defaultFormatter='true'>
<annotation>
<appinfo>
<fw:choice name="published"/>
</appinfo>
</annotation>
</element>
</choice>
Typ wyliczeniowy, pola na GUI
przybierze postać listy wyboru
z wartościami podanymi w
typie wyliczeniowym XSD
Standardowa
konstrukcja XSD
<restriction>
<enumeration>
<element name="recordStatus"
minOccurs="0" default="completed">
<simpleType>
<restriction base="string">
<enumeration value="partial"/>
<enumeration
value="completed"/>
<restriction>
</simpleType>
</element>
Pole proste tylko do odczytu,
formularz blokuje kontrolkę
wprowadzania danych
fw:disabled='true
' (domyślnie
false)
<element name="orginalType"
fw:disabled='true'>
Określenie wielkości pola
tekstowego dla pola
formularza
fw:inputType="sma
ll”
fw:inputType="med
ium”
<element name="title"
fw:inputType="large">
Pag
e 2
9
fw:inputType="lar
ge”
fw:inputType="hug
e”
Walidacja pola na podstawie
wyrażenia regularnego
Standardowa
konstrukcja XSD
<restriction<pattern>
<simpleType>
<restriction base="string">
<pattern value=".*[^\.]$"
id="NoDots">
</pattern>
</restriction>
</simpleType>
Walidacje długości pól
tekstowych. System zaaplikuje
walidator na GUI,
uniemożliwiając wpisanie
niepoprawnej wartości
Standardowa
konstrukcja XSD
<xs:minLength
value="5"/>
<xs:maxLength
value="8"/>
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
Wartość domyślna, system
dokona inicjalizacji pola
formularza a także obiektu
reprezentującego rekord
domyślną wartością
Zgodnie z XSD
default="ZEWNETRZ
NY"
<element name="status"
default="ZEWNETRZNY">
Wymuszenie aby obiekt był
zagnieżdzony w formularzu
obiektu nadrzędnego a nie
posiadał osobne okno do
wprowadzania
Dotyczy tylko pól złożonych.
tns:selectable="f
alse"
<element ref="tns:journalissue"
tns:selectable="false">
Ograniczenie głębokości
przechowywania danych w
<fw:maxNest
value="1"/>
<element ref="tns:authorprofile"
fw:defaultFormatter='true'
Pag
e 3
0
obiektach zagnieżdżonych, tns:selectable="false">
<annotation>
<appinfo>
<fw:maxNest value="1"/>
</appinfo>
</annotation>
</element>
Oznaczenie iż obiekt będzie
występował tylko jako
podrzędny wobec innego, nie
będzie posiadał własnej
głównej listy
<element name="authorprofile">
<complexType>
<annotation><appinfo><fw:mainentity
value='false'/></appinfo></annotation
>
</complexType>
Wyłącza podpowiadanie pól
złożonych na formularzu.
zamiast tego będzie się
pojawiał przycisk dodaj nowy.
przydatne, gdy tworzone w
ten sposób obiekty nie trafiają
na główną listę. (np project-
projecttask). Dotyczy tylko pól
złożonych.
tns:suggest="fals
e"
domyślnie true,
<element
ref="tns:projectfinancialreport"
minOccurs="0" maxOccurs="unbounded"
tns:suggest="false"></element>
Blokada możliwości edycji
złożonego pola.
tns:editable="fal
se"
<complexType name="project">
<element type="tns:project"
name="previousProject" minOccurs="0"
maxOccurs="unbounded"
tns:editable="false">
</complexType>
Tabela 2 Przegląd własności pól możliwych do uzyskania przez modyfikację xsd.
Pag
e 3
1
Fragment wygenerowanego formularza edycji:
<ui:composition xmlns:rich="http://richfaces.org/rich" xmlns:a4j="http://richfaces.org/a4j"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jstl/core" xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ii="http://ii.pw.edu.pl"
xmlns:tns="http://ii.pw.edu.pl/lib" xmlns:s="http://jboss.com/products/seam/taglib">
<ui:decorate template="#{selectable!='false' ? '/layout/editContent.xhtml' : (popup=='true' ?
'/layout/editContentPopups.xhtml' : '/layout/editContentInputs.xhtml')}">
<ui:param name="compnameentity" value="#{affiliationentity}"/>
<ui:param name="compname" value="affiliation"/>
<ui:param name="idpref" value="#{idpref}"/>
<ui:define name="inputs">
<s:decorate template="/layout/simpleField.xhtml" xmlns:fw="http://ii.pw.edu.pl/lib/framework"
xmlns:t="http://myfaces.apache.org/tomahawk">
<ui:param name="compname" value="affiliation"/>
<ui:param name="fieldname" value="id"/>
<ui:param name="type" value="ID"/>
<h:outputText disabled="#{mode=='preview'}" id="#{idpref}affiliation-id"
value="#{affiliationentity.id}" rendered="#{not s:hasRole('admin')}"/>
<rich:inplaceInput editEvent="#{mode=='preview' ? 'never' : 'onclick'}" id="#{idpref}affiliation-id-
edit" value="#{affiliationentity.id}" rendered="#{s:hasRole('admin')}"/>
</s:decorate>
<s:decorate template="/layout/simpleField.xhtml" xmlns:fw="http://ii.pw.edu.pl/lib/framework"
xmlns:t="http://myfaces.apache.org/tomahawk">
<ui:param name="compname" value="affiliation"/>
<ui:param name="fieldname" value="owner"/>
<ui:param name="type" value="ID"/>
<h:outputText disabled="#{mode=='preview'}" id="#{idpref}affiliation-owner"
value="#{affiliationentity.owner}" rendered="#{not s:hasRole('admin')}"/>
<rich:inplaceInput editEvent="#{mode=='preview' ? 'never' : 'onclick'}" id="#{idpref}affiliation-
owner-edit" value="#{affiliationentity.owner}" rendered="#{s:hasRole('admin')}"/>
</s:decorate>
<!—wyciety fragment
<ii:oneNested xmlns:fw="http://ii.pw.edu.pl/lib/framework" fieldname="affiliation"
fieldtypename="affiliation" compname="affiliation" selectable="" field="#{affiliationentity.affiliation}"
compnameentity="#{affiliationentity}" idpref="#{idpref}affiliation-" mode="#{mode}" editable="" suggest=""/>
</ui:define>
<ui:define name="popups">
<ii:popup xmlns:fw="http://ii.pw.edu.pl/lib/framework" selectable="" fieldname="affiliation"
fieldtypename="affiliation" compname="affiliation" idpref="#{idpref}affiliation6"
compnameentity="#{affiliationentity}" field="#{affiliationentity.affiliation}" mode="#{mode}"/>
</ui:define>
</ui:decorate>
</ui:composition>
Pag
e 3
2
Wykorzystanie standardowych znaczników gwarantuje spójny wygląd aplikacji, identycznie
ulokowanie komunikatów błędów, kontrolek postępu i wielu innych.
Definicja najprostszego komponentu definiującego pole proste w otoczeniu komunikatu i
etykiety pola:
Opis przygotowanych standardowych znaczników z przykładami użycia zawiera poniższe
tabele.
Znacznik <ii:oneNested>
Opis Włączenie pola prostego niepowtarzalnego
Przykład
użycia
<ii:oneNested xmlns:fw="http://ii.pw.edu.pl/lib/framework"
fieldname="affiliation" fieldtypename="affiliation" compname="affiliation"
selectable="" field="#{affiliationentity.affiliation}"
compnameentity="#{affiliationentity}" idpref="#{idpref}affiliation-"
mode="#{mode}" editable="" suggest=""/>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib">
<h:panelGrid columns="3" columnClasses="#{compname} editLabel,
#{compname} editValue"
rowClasses="#{compname} editRow" rendered="#{selectable!='false' or type!='ID'}">
<s:label>#{messages[compname.concat('.').concat(fieldname)]}</s:label>
<ui:insert />
<s:message styleClass="editErrors"/>
</h:panelGrid>
</ui:composition>
Pag
e 3
3
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
fieldtypename Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
selectable Zgodnie z opisem rozszerzen XSD
field Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
mode Wskazanie na tryb edycji lub podglądu
editable Zgodnie z opisem rozszerzen XSD
suggest Zgodnie z opisem rozszerzen XSD
Tabela 3 Znacznik ii:oneNested
Znacznik <ii:multiNested>
Opis Włączenie pola prostego powtarzalnego
Przykład
użycia
<ii:multiNested xmlns:fw="http://ii.pw.edu.pl/lib/framework"
fieldname="author" fieldtypename="author" compname="article"
selectable="" field="#{articleentity.author}"
compnameentity="#{articleentity}" idpref="#{idpref}author-"
Pag
e 3
4
mode="#{mode}" editable="" suggest="" required="#{mode=='edit'}"/>
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
fieldtypename Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
selectable Zgodnie z opisem rozszerzen XSD
field Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
mode Wskazanie na tryb edycji lub podglądu
editable Zgodnie z opisem rozszerzen XSD
suggest Zgodnie z opisem rozszerzen XSD
Tabela 4 Znacznik ii:mulitNested
Znacznik <ii:file>
Opis Włączenie pola będącego plikiem
Przykład <ii:file fieldname="file" fieldtypename="file" compname="article"
selectable="" field="#{articleentity.file}"
Pag
e 3
5
użycia compnameentity="#{articleentity}" idpref="#{idpref}file-"
mode="#{mode}"/>
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
fieldtypename Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
selectable Zgodnie z opisem rozszerzen XSD
field Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
mode Wskazanie na tryb edycji lub podglądu
Tabela 5 Znacznik ii:file
Znacznik <ii:popup>
Opis Włączenie okna wyskakującego umożliwiającego edycję obiektów złożonych
Przykład <ii:popup xmlns:fw="http://ii.pw.edu.pl/lib/framework" selectable=""
fieldname="author" fieldtypename="author" compname="article"
Pag
e 3
6
użycia idpref="#{idpref}author6" compnameentity="#{articleentity}"
field="#{articleentity.author}" mode="#{mode}"
required="#{mode=='edit'}"/>
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
fieldtypename Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
selectable Zgodnie z opisem rozszerzen XSD
field Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
mode Wskazanie na tryb edycji lub podglądu
editable Zgodnie z opisem rozszerzen XSD
suggest Zgodnie z opisem rozszerzen XSD
Tabela 6 Znacznik ii:popup
Znacznik <ii:filePopup>
Opis Włączenie okna wyskakującego umożliwiającego wgrywanie plików na serwer
Przykład <ii:filePopup fieldname="file" fieldtypename="file" compname="article"
Pag
e 3
7
użycia selectable="" idpref="#{idpref}file6"
compnameentity="#{articleentity}" field="#{articleentity.file}"
mode="#{mode}"/>
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
fieldtypename Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
selectable Zgodnie z opisem rozszerzen XSD
field Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
mode Wskazanie na tryb edycji lub podglądu
editable Zgodnie z opisem rozszerzen XSD
suggest Zgodnie z opisem rozszerzen XSD
Tabela 7 Znacznik ii:filePopup
Znacznik <s:decorate template="/layout/simpleField.xhtml">
Opis Pole edycji pola prostego
Pag
e 3
8
Przykład
użycia
<s:decorate template="/layout/simpleField.xhtml"
xmlns:fw="http://ii.pw.edu.pl/lib/framework"
xmlns:t="http://myfaces.apache.org/tomahawk">
<ui:param name="compname" value="article"/>
<ui:param name="fieldname" value="keywordsEN"/>
<ui:param name="type" value="string"/>
<h:inputText styleClass="edit inputText large"
disabled="#{mode=='preview'}" size="60" id="#{idpref}article-
keywordsEN" value="#{articleentity.keywordsEN}"/>
</s:decorate>
Opis
parametró
w
Nazwa Parametru Opis
fieldname Nazwa pola
type Nazwa typu pola
compname Nazwa typu w którym zadniezdzone jest
to pole
disabled Zgodnie z opisem rozszerzen XSD
value Wskazanie na pole w obiektcie,
przechowujące wartość dla danego pola
zawartość Właściwa kontrolka do wprowadzania
danych, umieszczana jest odpowiednio
w szablonie wyglądu. W Przykładzie
użyto <h:inputText> czyli
zwykłe pole tekstowe
Znacznik <s:decorate template="/layout/editContent.xhtml">
Opis Szablon głównego formularza. formularza w popupie i formularza nieedytowalnego.
Przykład
użycia
<ui:decorate template="#{selectable!='false' ?
'/layout/editContent.xhtml' : (popup=='true' ?
'/layout/editContentPopups.xhtml' :
'/layout/editContentInputs.xhtml')}">
<ui:param name="compnameentity" value="#{articleentity}"/>
Pag
e 3
9
<ui:param name="compname" value="article"/>
<ui:param name="idpref" value="#{idpref}"/>
<ui:define name="inputs">
<!--
<ui:define name="popups">
<!--
</ui:define>
</ui:decorate>
</ui:composition>
Opis
parametró
w
Nazwa Parametru Opis
compnameentity Wskazanie na obiekt przechowujacy caly
formularz
compname Nazwa typu w którym zadniezdzone jest
to pole
idpref Umozliwia dokładanie prefixow do ID
komponentów widoku, zapewniając
prawidłowe działanie zlozonych
formularzy
inputs Sekcja na pola formularza
zawartość Sekcja na okienka popup
Tabela 8 Pomocnicze szablony definicji formularzy
Niniejsze komponenty zostały złożone z licznych podkomponentów zapewniających spójny
wygląd poszczególnym elementom np. polu podpowiadania. Podkomponenty nie będą tu
szczegółowo opisane ze względu na ich techniczny aspekt.
Pag
e 4
0
3.1.2 Warunki integralności
W systemie możliwe jest definiowanie warunków integralności na poziomie poszczególnych
elementów danych, jak też całych obiektów oraz związków między nimi. Można definiować
następujące własności elementów opisu :
Pole proste
Pole złożone
Pole złożone powtarzalne
Pole obowiązkowe (bezwzględnie i warunkowo)
Pole z warunkiem unikalności
Pole z warunkiem określonego formatu
Pole z wartością wybieraną z listy
Pole tylko do odczytu
Szczegółowy opis składni poszczególnych specyfikacji wraz z przykładami przedstawia
Tabela 2.
3.1.3 Zarządzanie użytkownikami
Uwierzytelnienie – system polega na zewnętrznym centralnym module uwierzytelnienia CAS
Po wejściu do chronionej sekcji systemu następuje przekserowanie do zewnętrznej strony
systemu uwierzytelnienia, którego parametry podane są w pliku konfiguracyjnym aplikacji
Web.xml. Po skutecznym uwierzytelnieniu aplikacja uzyskuje specjalny token, login lub
opcjonalnie dodatkowe dane takie jak email. W razie potrzeby system można
przekonfigurować na własną autentykacje na podstawie tabeli relacyjnej bazy danych.
Autoryzacja – po autentykacji system przypisuje zalogowanej osobie rolę w systemie na
podstawie tabeli bazodanowej.
W systemie przewidziane są następujące role:
(bez roli) daje dostęp do wybranych funkcjonalności wyszukiwania
dataentry – daje możliwość wprowadzania wybranych typów danych, gdzie typy
określane są osobną rolą. Rola dataentry nie daje możliwości poprawiania czy
kasowania danych wprowadzonych przez innych użytkowników
Pag
e 4
1
superdataentry – daje możliwość usuwania i modyfikowania danych wprowadzonych
przez innych użytkowników o ile pochodzą z tej samej afiliacji (instytutu). Jest to
wiec rola nadzorująca w obrębie afiliacji.
diplomas – rola daje dostęp do typów danych: doktoraty, prace magisterskie i
inżynierskie
publications – rola daje dostęp do książek i publikacji
scoring – rola pozwala zmieniać i dodawać serie książkowe i czasopism oraz nadawać
im punkty
admin – rola ma dostęp do całości systemu
(bez roli na postawie IP) daje możliwość wyszukiwania i przeglądu źródeł publikacji,
które są przeznaczone dla dostępu intranet.
3.1.4 Reguły dostępu
Kontrola uprawnień rekordu możliwa jest przez wprowadzenie pól: właściciel i właściciel
afiliacyjny, które przechowują informacje o użytkowniku który jest właścicielem rekordu
i jego afiliacji.
Złożony zestaw uprawnień – złożony zestaw uprawnień może być elastycznie
modyfikowany dzięki pomocą technologii drools która umożliwiła na wydzielenie z kodu
zestawu reguł punktujących.
Przykładowa reguła:
rule DataEntryAndSuperDataEntryCanAddAndViewAndList
no-loop
salience 10
activation-group "permissions"
when
check: PermissionCheck(granted ==false,action =="create" || action =="render" ||action
=="restore"||action=="list")
role: Role(name == 'dataentry' || name=='superdataentry')
then
check.grant();
end
Pag
e 4
2
Dostęp do plików źródłowych publikacji. Każda publikacja może posiadać dołączony plik
źródłowy. Plik ten domyślnie widoczny jest jedynie dla właściciela rekordu (PRIVATE) o ile
nie powiedziane zostanie inaczej. Nawet w przypadku prywatnego pliku – jest on
uwzględniany przy indeksowaniu i zwiększa jakość wyszukiwania. Plik może zostać
oznaczony jako PUBLIC, wówczas dostęp do niego będzie nielimitowany w obrębie całej
sieci Internet. Tryb PROTECTED daje możliwość dostępu wszystkim pracownikom
zalogowanym danego instytutu, lub też niezalogowanym ale legitymujących się
zarejestrowanym w systemie adresem IP. Ponadto istnieje możliwość automatycznej
relaksacji ograniczeń po wskazanej dacie np. dokument prywatny może być wskazany do
upublicznienia po upływie wskazanego okresu czasu.
3.1.5 Ekrany wyszukiwania
Ekrany wyszukiwania są widokami jsf zawierającymi formularze, które wypełniają obiekt
SearchEntity o zasięgu konwersacji, dostępny w tych widokach pod nazwą #{searchEntity}.
SearchEntity jest obiektową reprezentacją zapytania i zawiera szereg pól, które mogą być
wypełnione przez użytkownika lub twórcę ekranu wyszukiwania. Do najważniejszych należą:
- resultsType – tekst zawierający nazwę typu obiektów, które mają być wyszukane.
Można tu podać zarówno typy podstawowe (np. article, book, author) jak i wirtualne
(publication, diploma).
- searchPhrase – tekst przekazywany do zapytania prostego, przebiegającego po
wszystkich polach rekordów. Wykonanie zapytania z wypełnioną frazą searchPhrase zwraca
rekordy zawierające frazę searchPhrase w dowolnym miejscu tego rekordu (również w
podrekordach). Fraza searchPhrase może zawierać znaki specjalne, takie jak *,?,~,”, których
znaczenie jest zgodne z konwencją Lucene.
- advancedSearchPhrase – tekst w formacie <pole><operator><wartość>, który
dodaje proste warunki wyszukiwania na konkretne pola rekordu. Operator przyjmuje jedną z
czterech wartości: =,<,>,:. Ten ostatni oznacza zawieranie. Możliwe jest podanie kilku takich
trójek – trzeba je wtedy oddzielić przecinkiem. Pole należy podać w postaci przyjętej w
zapytaniach xpath. Przykładowo - wpisanie do pola advancedSearchPhrase wartości
book/author/@surname:k* spowoduje wygenerowanie zapytania o rekordy zawierające
Pag
e 4
3
podrekord książka, która zawiera podrekord autor o nazwisku zaczynającym się na literę k.
- field – tablica asocjacyjna zawierająca pary String -> SearchField, służąca do
definiowania zaawansowanych, szczegółowych zapytań uwzględniających konkretne pola.
Kluczami tablicy jest tekst unikalnie identyfikującym pole zapytania (obiekt SearchField), a
wartościami – obiekty typu SearchField, które dokładnie opisują zapytanie o konkretne pole.
Zapytanie wykonuje się przy wywołaniu metody #{genericAction.search}, która powinna być
akcją dowiązaną do przycisku przesłania formularza. Wygenerowane zapytanie trafia do
silnika wyszukiwania Jackrabbit i ma następującą postać xpath:
//element(*,ns2entity)[@nodeName= <typy wywnioskowane z pola resultsType> and
jcr:contains(.,’<searchPhrase>’) and (<zapytanie wygenerowane z frazy
advancedSearchPhrase>) and (zapytanie wygenerowane z listy field)] order by <definicja
sposobu sortowania dla typu resultsType>, jcr:score() descending
Poniżej znajduje się przykład prostego ekranu wyszukiwania autorów.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=http://www.w3.org/1999/xhtml
xmlns:rich="http://richfaces.org/rich"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:s="http://jboss.com/products/seam/taglib">
<ui:composition template="/layout/publictemplate.xhtml">
<ui:define name="pageTitle">Simple Search</ui:define>
<ui:define name="body">
<h2>#{messages['search.simpleSearch']}</h2>
<!-- #{genericAction.clearSearch} -->
<!-- #{searchEntity.setResultsType('author')} -->
<a4j:form enctype="multipart/form-data">
<h:inputText size="80" id="searchPhrase"
value="#{searchEntity.searchPhrase}"/>
Pag
e 4
4
<a4j:commandButton value="#{messages['list.search']}"
action="#{genericAction.search}">
<f:setPropertyActionListener value="authorSearch"
target="#{searchEntity.lastQueryScreen}"/>
<f:setPropertyActionListener value="author"
target="#{searchEntity.resultsType}"/>
<s:defaultAction/>
</a4j:commandButton>
<a4j:commandButton value="#{messages['search.clear']}"
action="#{genericAction.clearSearch}"/>
</a4j:form>
<script>
#{rich:element('searchPhrase')}.focus();
</script>
</ui:define>
</ui:composition>
</html>
Projektowanie zaawansowanych formularzy wymaga definiowania pól SearchField w
obiekcie #{searchEntity}. Aby ułatwić wykonanie tego procesu z poziomu widoków (plików
xhtml) zaproponowaliśmy zestaw gotowych szablonów i komponentów:
affiliationTree.xhtml – wstawia listę lub drzewo wyboru jednostek dydaktycznych, do
których ma być ograniczone wyszukiwanie. Działa dla typów zawierających rekord autor lub
afiliacja. Przykład użycia:
<ui:decorate template="affiliationTree.xhtml"/>
prepareSearchField.xhtml – szablon ustawiający nowe pole zapytania SearchField. Posiada
następujące parametry:
name – unikalna nazwa pola
value – wyszukiwana wartość
Pag
e 4
5
searchIn – oddzielona przecinkami lista pól, które będą przeszukiwana.
Zamiast konkretnego pola można podać nazwę całego rekordu (poprzedzone
podkreśleniem _), wtedy wyszukiwanie będzie wykonywane na wszystkich
polach rekordu.
operator – operator stojący pomiędzy searchIn a value w wygenerowanym
zapytaniu (<,<=,=,>,>=), domyślnie =.
enabled – wartość logiczna mówiąca o tym, czy pole ma być użyte do
generowania zapytania. Domyślnie true.
andOrNot – jedna z trzech wartości (and,or,not), która ma stać przed polem w
wygenerowanym z niego fragmencie zapytania
useEquals – wartość logiczna mówiąca o tym, czy pole podane w searchIn ma
być dokładne równe wartości podanej w polu value (wartość false), czy też ma
jedynie zawierać to pole (true). Ma wpływ jedynie przy wyborze operatora = i
przekłada się albo na frazę jcr:contains(<searchIn>,<value>) albo na frazę
<searchIn>=<value> w wygenerowanym fragmencie zapytania.
type – typ pola, trzy dozwolone wartości:
o string – pole typu tekstowego (wartość pola będzie obejmowana
apostrofami)
o numer – pole typu numerycznego (wartość pola nie będzie obejmowana
apostrofami)
o query – wartość pola jest fragmentem zapytania, który ma być
wklejony do zapytania. Pola searchIn, operator i useEquals są w tym
przypadku ignorowane.
includeInSelectionList – wartość logiczna mówiąca o tym, czy pole będzie
wizualizowane za pomocą szablonu searchField.xhtml (patrz dalej).
Domyślnie false.
label – nazwa wyświetlana na ekranie użytkownika, jeśli stosowana jest
wizualizacja szablonem searchField.xhtml.
Pag
e 4
6
suggest – oddzielona przecinkami lista typów, które będą pojawiać się jako
podpowiedzi wartości tego pola, jeśli stosowana jest wizualizacja szablonem
searchField.xhtml.
Poniżej znajduje się kilka przykładów zastosowania szablonu prepareSearchField.xhtml.
Podane fragmenty powinny znaleźć się wewnątrz <form> w definicji ekranu wyszukiwania.
- rok publikacji większy lub równy od podanego przez użytkownika (pole zawierające datę
publikacji ma mieć wartość większą od lub równą wartości wpisanej na formularzu)
<h:outputLabel value="#{messages['search.yearsFrom']}"/>
<ui:decorate template="/layout/prepareSearchField.xhtml">
<ui:param name="name" value="date1"/>
<ui:param name="searchIn" value="publicationDate, book.issueDate,
journalissue.issueDate, issueDate, yearfrom, yearto"/>
<ui:param name="operator" value=">="/>
<ui:param name="type" value="number"/>
</ui:decorate>
<h:inputText size="6" value="#{searchEntity.field['date1'].value}"/>
- wyszukiwanie rekordów kompletnych lub niekompletnych (odpowiednia wartość w polu
recordStatus)
<ui:decorate template="/layout/prepareSearchField.xhtml">
<ui:param name="name" value="recordStatus"/>
<ui:param name="searchIn" value="recordStatus"/>
</ui:decorate>
<h:outputLabel for="kompletny" value="Status"/>
<h:selectOneMenu id="kompletny"
value="#{searchEntity.field['recordStatus'].value}">
<f:selectItem itemLabel="Dowolny" itemValue=" " noSelectionOption="true"/>
<f:selectItem itemLabel="Rekord kompletny" itemValue="completed"/>
<f:selectItem itemLabel="Rekord niekompletny" itemValue="partial"/>
</h:selectOneMenu>
Pag
e 4
7
- wyszukiwanie publikacji z listy JCR (pole nameOfList w podrekordzie journalseries lub
bookseries zawiera wartość „A”)
<ui:decorate template="/layout/prepareSearchField.xhtml">
<ui:param name="name" value="jcr"/>
<ui:param name="type" value="query"/>
</ui:decorate>
<h:outputLabel value="#{messages['search.publications']}:"/>
<h:selectOneMenu value="#{searchEntity.field['jcr'].value}">
<f:selectItem itemLabel="#{messages['search.all']}" itemValue=""/>
<f:selectItem itemLabel="#{messages['search.jcronly']}"
itemValue="journalissue/journalseries/@nameOfLists='A' or
book/bookseries/@nameOfLists='A' or bookseries/@nameOfLists='A'"/>
<f:selectItem itemLabel="#{messages['search.other']}"
itemValue="not(journalissue/journalseries/@nameOfLists='A' or
book/bookseries/@nameOfLists='A' or bookseries/@nameOfLists='A')"/>
</h:selectOneMenu>
nestedSearchField.xhtml – szablon umożliwiający utworzenie grup składających się z wielu
pól stworzonych przez prepareSearchField i łączenie tych grup spójnikami and or not. Jest to
najprostszy sposób nawiasowania warunków w zapytaniu.
searchField.xhtml – gotowe wizualizacja pole stworzone przez prepareSearchField.xhtml, o
wyglądzie i funkcjonalności jak na rysunku poniżej.
Pag
e 4
8
Szablon posiada następujące parametry:
- name – unikalna nazwa pola, zgodna z nazwą podaną w prepareSearchField.xhtml
- first – wartość logiczna mówiąca o tym, czy pole znajduje się na pierwszym miejscu
listy. W takim przypadku nie są wyświetlane kontrolki wyboru operatorów and/or/not.
- onchange – skrypt javascript, który będzie wykonany za każdym razem, gdy użytkownik
zmieni wartość dowolnej kontrolki tego pola
<ui:decorate template="/layout/nestedSearchField.xhtml">
<ui:decorate template="/layout/prepareSearchField.xhtml">
<ui:param name="name" value="fulltext"/>
<ui:param name="label" value="#{messages['search.words']}"/>
<ui:param name="searchIn" value="."/>
<ui:param name="includeInSelectionList" value="true"/>
</ui:decorate>
<ui:decorate template="/layout/prepareSearchField.xhtml">
<ui:param name="name" value="autor"/>
<ui:param name="suggest" value="author"/>
<ui:param name="label" value="#{messages['search.author']}"/>
<ui:param name="searchIn" value="_author"/>
<ui:param name="includeInSelectionList" value="true"/>
</ui:decorate>
(…)
</ui:decorate>
<ui:decorate template="/layout/searchField.xhtml">
<ui:param name="name" value="fulltext"/>
<ui:param name="first" value="true"/>
Pag
e 4
9
<ui:param name="onchange" value="refreshSearchCount()"></ui:param>
</ui:decorate>
<ui:decorate template="/layout/searchField.xhtml">
<ui:param name="name" value="autor"/>
<ui:param name="suggest" value="author"/>
<ui:param name="onchange" value="refreshSearchCount()"></ui:param>
</ui:decorate>
(…)
suggestionSearchField.xhtml – szablon pozwalający na stworzenie samodzielnego pola z
podpowiadaniem, bez dodatkowych kontrolek z szablonu searchField. Parametry:
- for – identyfikator pola <h:inputText>, do którego ma zostać dodana funkcjonalność
podpowiadania
- name – unikalna nazwa komponentu
- suggest - oddzielona przecinkami lista typów, które będą pojawiać się jako podpowiedzi
- independent – wartość logiczna mówiąca o tym, czy podpowiedzi mają pochodzić z
wyszukiwania niezależnego od ustawień innych pól wyszukiwania (wartość true), czy też ma
uwzględniać wartości wpisane w innych polach wyszukiwania na tym ekranie.
3.1.6 Formaty prezentacji i wizualizacji wyników
Dla każdego zdefiniowanego w systemie typu danych generowane są automatycznie ekrany
do edytowania, przeglądu, wyszukiwania oraz prezentacji. W szczególności generowane są
szablony wyświetlania pojedynczych rekordów, które umieszczane są w katalogu
rowtemplates. Standardowo generowane są trzy rodzaje tego rodzaju szablonów:
simple.xhtml – szablon używany do wyświetlenia rekordu na ekranach wyszukiwania. Są to
zazwyczaj krótkie, kilku liniowe opisy rekordu.
detailed.xhtml – szablon używany do prezentacji szczegółowych danych dotyczących
Pag
e 5
0
rekordu przeznaczonych dla użytkownika końcowego.
plain.xhtml – szablon używany do wyświetlania krótkiego opisu rekordu na ekranach
przeznaczonych do druku, np. w raportach. Zalecane jest tu użycie tego samego formatu, co w
szablonie simple.xhtml z pominięciem elementów interaktywnych, np. odwołań do adresów
zewnętrznych.
Szablony są generowane automatycznie na podstawie definicji typów danych w plikach *.xsd
w następujący sposób. Szablony simple oraz plain są tworzone z oddzielonych spacjami
wartości pól oznaczonych w pliku *.xsd własnością fw:defaultFormatter=’true’. Jeśli pole
jest rekordem, wywoływany jest szablon dla typu tego pola. Szablon detailed jest tworzony ze
wszystkich pól rekordu, z wyjątkiem pól systemowych (oznaczonych własnością type=’ID’) i
ma postać dwukolumnowej tabeli z kolumnami nazwa pola, wartość pola. Jeśli pole jest
rekordem, wywoływany jest szablon dla typu tego pola i tworzone jest hipertekstowe
odwołanie pozwalające na przejście do ekranu szczegółów tego pola. Dodatkowo pod tabelką
znajduje się podsumowanie liczby publikacji powiązanych z rekordem oraz odwołanie
przenoszące do listy powiązanych publikacji. Poniżej znajduje się definicja typu affiliation
oraz wygenerowany dla niego szablony.
affiliation.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ii.pw.edu.pl/lib"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.1"
xmlns:tns="http://ii.pw.edu.pl/lib"
xmlns:fw="http://ii.pw.edu.pl/lib/framework"
jaxb:extensionBindingPrefixes="fw"
Pag
e 5
1
>
<complexType name="affiliation">
<sequence>
<element name="id" type="ID"></element>
<element name="owner" type="ID"></element>
<element name="affiliationowner" type="ID"></element>
<element name="namePL" type="string" fw:defaultFormatter='true'
fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="nameEN" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="accronymPL" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element name="accronymEN" type="string" fw:required='true'>
<annotation><appinfo><fw:unique required="true"/></appinfo></annotation>
</element>
<element ref="tns:affiliation"></element>
</sequence>
</complexType>
<element name="affiliation" type="tns:affiliation"/>
</schema>
simple.xhtml oraz plain.xhtml
<ui:composition xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://ii.pw.edu.pl/lib" xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:fw="http://ii.pw.edu.pl/lib/framework"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:panelGroup>
<h:outputText value="#{affiliationentity.namePL} "/>
</h:panelGroup>
Pag
e 5
2
</ui:composition>
detailed.xhtml
<ui:composition xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://ii.pw.edu.pl/lib" xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:fw="http://ii.pw.edu.pl/lib/framework"
xmlns:ui="http://java.sun.com/jsf/facelets">
<h:panelGrid columns="2" columnClasses="editLabel, editValue"
rowClasses="editRow">
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['affiliation.namePL']}"/>
<ui:param name="val" value="#{affiliationentity.namePL}"/>
</ui:decorate>
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['affiliation.nameEN']}"/>
<ui:param name="val" value="#{affiliationentity.nameEN}"/>
</ui:decorate>
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['affiliation.accronymPL']}"/>
<ui:param name="val" value="#{affiliationentity.accronymPL}"/>
</ui:decorate>
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['affiliation.accronymEN']}"/>
<ui:param name="val" value="#{affiliationentity.accronymEN}"/>
</ui:decorate>
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['affiliation.affiliation']}"/>
<ui:param name="val" value="#{affiliationentity.affiliation}"/>
<ui:param name="type" value="affiliation"/>
</ui:decorate>
</h:panelGrid>
<h:commandLink action="#{genericAction.search}"
rendered="#{infoBean.getCount('.','publication') gt 0}">
Pag
e 5
3
<f:setPropertyActionListener
value="#{searchEntity.clearAll}.:#{infoBean.entityId}"
target="#{searchEntity.advancedSearchPhrase}"/>
<f:setPropertyActionListener value="publication"
target="#{searchEntity.resultsType}"/>
<f:setPropertyActionListener value=""
target="#{searchEntity.lastQueryScreen}"/>
<h:outputText value="#{messages['info.showRelatedPublications']}"/>
<h:outputText value=" (#{infoBean.getCount('.','publication')})"/>
</h:commandLink>
</ui:composition>
Warto zwrócić uwagę na następujące rzeczy. Rekord, który ma być prezentowany za pomocą
szablonu jest dostępny w szablonie pod nazwą #{<type>entity}. W przypadku typu affiliation
jest to #{affiliationentity}. Szablon detailed intensywnie korzysta z szablonu pairNotEmpty,
którego zadaniem jest wyświetlenie pary (nazwa pola, wartość) dla danego pola w postaci
tabelarycznej pod warunkiem, że wartość pola nie jest pusta. Wartość pola jest wyświetlana w
sposób zależny od jego typu, ale możliwe jest też podanie własnego sposobu wyświetlania tej
wartości:
<ui:decorate template="/pairNotEmpty.xhtml">
<ui:param name="label" value="#{messages['article.url']}"></ui:param>
<ui:param name="val" value="#{articleentity.url}"></ui:param>
<ui:param name="customview" value="#{true}"></ui:param>
<ui:define name="view">
<a href="#{articleentity.url}">
<h:outputText value="#{articleentity.url}"/>
</a>
</ui:define>
</ui:decorate>
Nazwy pól oraz wszystkie statyczne nazwy, które powinny mieć inną wartość w zależności od
wybranego języka, są pobierane z obiektu #{messages} przez podanie odpowiedniego klucza
(np. #{messages['affiliation.namePL']}). Wartości kluczy dla poszczególnych języków
znajdują się w plikach messages_code.properties, gdzie code jest dwuznakowym kodem
kraju. Możliwe jest też modyfikowanie innych elementów szablonu w zależności od języka,
Pag
e 5
4
np. wyświetlanie jednego z pól #{affiliationentity.namePL} lub #{affiliationentity.nameEN}.
<h:outputText value="#{affiliationentity.namePL}"
rendered="#{fn:toLowerCase(localeSelector.language)=='pl'"></h:outputText>
<h:outputText value="#{affiliationentity.nameEN}"
rendered="#{fn:toLowerCase(localeSelector.language)!='pl'"></h:outputText>
Zmodyfikowane szablony powinny być umieszczone w katalogu customized. Możliwe jest
także definiowanie szablonów innych niż trzy podstawowe i dynamiczna podmiana
używanego szablonu. W przypadku szablonu typu simple (używanego przy wyświetlaniu listy
wyników) można tego dokonać przez podanie parametru t=<template_name> w adresie url.
Szablony mogą być definiowane zarówno dla typów podstawowych jak i wirtualnych.
3.1.7 Sposoby sortowania wyników wyszukiwania
Metody sortowania wyników wyszukiwania są zdefiniowane w katalogu sorttemplates dla
danego typu i mogą być wybierane dynamicznie. Każde wyszukiwanie ma podany typ
zwracanych wyników (w #{searchEntity.resultsType}) i na podstawie tego typu wybierany jest
sposób sortowanie. Typ może być podstawowy lub wirtualny. Plik definiujący sposób
sortowania ma następujący format: (elementy w nawiasach klamrowych są opcjonalne)
{[oddzielona przycinkami lista typów do wyszukania]}
{*}nazwa pola 1 ; ascending/descending ; {lista warunkowych podstawień}
{*}nazwa pola 2 ; ascending/descending ; {lista warunkowych podstawień}
itd.
Lista typów do wyszukiwania jest obowiązkowa jedynie w przypadku typów wirtualnych.
Kolejne linie wskazują na kolejne klucze sortowania. Poniższy przykład definiuje sortowanie
autorów na podstawie ich nazwiska, a w przypadku tego samego nazwiska – na podstawie
imienia, a w przypadku tego samego imienia – na podstawie kodu jego afiliacji.
surname ; ascending
name ; ascending
affiliation-codePL ; ascending
Należy zauważyć, że przejście do pól w rekordach zagnieżdżonych odbywa się za pomocą
Pag
e 5
5
znaku minus.
Opcjonalny znak * przed nazwą pola sortowania oznacza, że wartość tego pola ma być
nagłówkiem grupującym w wynikach sortowania. Możliwe jest wybranie kilku pól
tworzących nagłówek, a także wielopoziomowych nagłówków (liczba znaków * oznacza
wtedy poziom nagłówka). W poniższym przykładzie doktoraty są grupowane według.
instytucji dyplomującej (na podstawie afiliacji promotora), a w ramach instytucji – na według
promotora.
*supervisor-affiliation-namePL ; ascending
**supervisor-surname ; ascending
**supervisor-name ; ascending
defenseDate ; descending
author-surname ; ascending
author-name ; ascending
titlePL ; ascending
Pag
e 5
6
titleEN ; ascending
Opcjonalne lista podstawień pozwala na zastąpienie wartości klucza sortowania (wartości
pola) inną wartością w zależności od wartości pola, np. gdy wartość pola jest pusta. Na
przykład, chcemy posortować książki wg. autorów i roku publikacji, a pozycje bez autorów
mają być na końcu listy. Standardowo wartości puste są wstawiane przed wartości niepuste.
W poniższym przykładzie zastępujemy takie wartości (puste i niewypełnione) frazą ŹŹŹ.
author-surname ; ascending ; null="ŹŹŹ" ; ""="ŹŹŹ"
author-name ; ascending
issueDate ; ascending
Pag
e 5
7
Możliwe jest także podstawienie wartości z innego pola. W przykładzie poniżej sortujemy
książki według autorów i roku publikacji, a pozycje bez autorów zostaną wstawione na
podstawie wartości tytułu. Np. „Biblia” pojawi się wśród książek o autorach na ‘B’.
author-surname ; ascending ; null="ref:title" ; ""="ref:title"
author-name ; ascending
issueDate ; ascending
title ; ascending ; null="ŹŹŹ" ; ""="ŹŹŹ"
Podstawienia są rozpatrywane łańcuchowo. W przykładzie powyżej puste nazwisko jest
zastępowane tytułem, a jeśli ten tytuł będzie pusty, to zostanie zastąpiony frazą “ŹŹŹ”.
Wartości na liście podstawień są podawane w postaci wyrażeń regularnych. W poniższym
przykładzie artykuły z książek pojawią się przed publikacjami z czasopism.
book-bookseries-id ; ascending ; null="9_fromJournal " ; ".*"="0_fromBook"
title ; ascending
Pag
e 5
8
3.1.8 Eksport/ import
W systemie zaimplementowany jest mechanizm pełnego eksportu i importu danych w
formacie XML, który działa dla danych każdego typu. Dodatkowo istnieje mechanizm
niepełnego eksportu do formatu csv oraz bibtex dla danych typu publikacja (artykuł, książka,
raport, doktorat). Wszystkie rodzaj eksportu dostępne są z poziomu interfejsu użytkownika, a
obsługa nowych formatów wymaga definicji nowych metod w klasie ItmAction. Obecnie
implementowane jest także wsparcie wymiany danych za pomocą protokołu OAI-PMH.
Eksport i import w formacie XML dostępny jest dodatkowo w postaci usług REST Web
Service, dostępnych pod następującymi adresami:
/RepoPW/seam/resource/rest/accesspoint/searchentities/{name}/{query}/{beg}/{end}
Wyszukuje rekordy typu {name}, które zawierają frazę {query}. Zwraca maksymalnie {end}-
{beg} rekordów zaczynając od rekordu nr {beg}. {query} jest wstawiane do pola
SearchEntity.searchPhrase (patrz rozdział 0)
/RepoPW/seam/resource/rest/accesspoint/search/{name}/{query}/{beg}/{end}
Jak wyżej, ale {query} jest podawane w postaci zaawansowanej. Patrz opis
SearchEntity.advancedSearchPhrase w rozdziale 0.
/RepoPW/seam/resource/rest/accesspoint/import
Wykonuje import danych przesłanych metodą POST w formacie application/xml. Dane muszą
być zakodowane w UTF-8 i podane w takiej samej postaci jaką generuje ekport.
Poniżej znajduje się xml wygenerowany przez żądanie podania listy języków o kodzie ‘en’:
/RepoPW/seam/resource/rest/accesspoint/search/language/@code='en'/0/10
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<collection xmlns:ns2="http://ii.pw.edu.pl/lib">
<ns2:language>
<affiliationowner>IN</affiliationowner>
<owner>admin</owner>
<id>WEITI-bc90626b-ed19-490f-b9c3-daf0bffd1760</id>
<owner>admin</owner>
<affiliationowner>IN</affiliationowner>
Pag
e 5
9
<code>en</code>
<namePL>angielski</namePL>
<nameEN>English</nameEN>
</ns2:language>
</collection>
3.1.9 Obliczanie oceny parametrycznej
Reguły oceny parametrycznej są definiowalne w języku drools.
Moduł oceny umożliwia nadawanie punktacji publikacjom celem ich późniejszego
raportowania. System umożliwia dwa tryby nadawania punktów
Ręczny – przez operatora
Automatyczny – przez system,
Automatyczny system nadawania punktów został zaprojektowany z myślą o częstych
zmianach prawnych regulujących zasady przyznawania punktów pracom naukowym. Za
pomocą technologii drools został wydzielony z kodu zostaw reguł punktujących, które mogą
być zmieniane bez konieczności przebudowania systemu przez osoby do tego przeszkolone.
Reguły zasilane są automatycznie informacjami niezbędnymi do podjęcia decyzji takimi jak:
Liczba punktów z listy ministerialnej (jeśli seria występuje na liście)
Typ publikacji
Język publikacji
Tytuł serii
I inne
Reguły punktowanie definiuje się w języku drools. Poniżej znajduje się dwie przykładowe
reguły nadawania punktów:
Pag
e 6
0
– reguła punktująca artykuły na podstawie listy ministerialnej:
– reguła punktująca rozdziały z książek w językach głównych, nie będących materiałami
z konferencji:
Punkty nadawane są automatycznie przy próbie zapisu nowej publikacji o ile operator nie
podał ich ręcznie.
Punkty przechowywane są w postaci historycznej tzn. w wysokości ustalonej na podstawie
obowiązujących przepisów w momencie ich nadawania. W przyszłości do celów raportowych
rule ArticleFromJournal
no-loop
salience 100
when
article:Article(score==0,journalissue!=null,journalissue.journalseries!=null)
then article.setScore(article.getJournalissue().getJournalseries().getScore());
end
rule BookChapterNotSeriesMainLanguages
no-loop
salience 100
when
article:Article(score==0,book!=null, language.code in ("en","fr","de"),book.bookType in
("MONOGRAFIA","PODRECZNIK_AKADEMICKI"), book.bookseries==null
||book.bookseries.score==0,book.conference==null)
then
article.setScore(7);
end
Pag
e 6
1
zostanie dodana możliwość przeliczenia punktów wg. aktualnego stanu prawnego.
Pag
e 6
2
4 Model struktur danych
Model struktury danych ulega ewolucji wraz z wprowadzaniem kolejnych wersji systemu.
Dokumentacja jest generowana automatycznie na podstawie dokumentacji programistycznej
struktur danych.
Aktualna dokumentacja znajduje się zawsze w lokalizacji itm-ear-<nr wersji>\itm-war-<nr
wersji>.war\WEB-INF\doc\all.html
Struktura typu affiliation
Reprezentuje afiliacje autorów i pracowników
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
namePL string Zwykle pole tekstowe
Wymagane
Nazwa w języku
polskim
nameEN string Zwykle pole tekstowe
Wymagane
Nazwa w języku
angielskim
accronymPL string Zwykle pole tekstowe
Wymagane
Skrót w języku
polskim
accronymEN string Zwykle pole tekstowe
Wymagane
Skrót w języku
angielskim
affiliation Obiekt zlozony:
affiliation Afiliacja nadrzedna Pojedynczy
Struktura typu article
Reprezentuje publikacje w czasopiśmie lub rozdział w książce
Pag
e 6
3
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
Alternatywnie( journalissue, book, )
journalissue
Obiekt
zlozony:
journalissue
Wydanie czasopisma Pojedynczy
book Obiekt
zlozony: book Książka Pojedynczy
id ID Pole identyfikatora id
recordStatus Pole wyboru: { partial,
completed, } Status rekordu
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
score int Zwykle pole tekstowe Punktacja
orginalType
Pole wyboru: {
ARTYKUL, ROZDZIAL,
KOMUNIKAT,
REFERAT, }
Typ z importu
author
Obiekt
zlozony:
author
Powtarzany Autor
title
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł
language
Obiekt
zlozony:
language
Język Pojedynczy
Pag
e 6
4
doi string Zwykle pole tekstowe DOI
url string Zwykle pole tekstowe URL
file Plik (i) Plik
collation
Zwykle pole tekstowe
Zgodne z wyrazeniem:
\d*-\d*$
Paginacja
abstractPL string Ogromne pole tekstowe Streszczenie w
języku polskim
abstractEN string Ogromne pole tekstowe
Streszczenie w
języku
angielskim
keywordsPL string Zwykle pole tekstowe
Słowa kluczowe
w języku
polskim
keywordsEN string Zwykle pole tekstowe
Słowa kluczowe
w języku
angielskim
Struktura typu author
Reprezentuje autora, pracownika lub dyplomanta
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel rekordu
affiliationowner ID Pole identyfikatora Kolekcja
active boolean Wartosc Logiczna Aktywny?
status Pole wyboru: {
PRACOWNIK, Status
Pag
e 6
5
DOKTORANT,
DYPLOMANT,
EMERYT, GOSC,
ZEWNETRZNY, }
name string Zwykle pole tekstowe
Wymagane Imie
surname string Zwykle pole tekstowe
Wymagane Nazwisko
email string Zwykle pole tekstowe email
affiliation
Obiekt
zlozony:
affiliation
Afiliacja Pojedynczy
unit string Zwykle pole tekstowe
Akronim jednostki
organizacyjnej(np.
zakladu)
authorprofile
Obiekt
zlozony:
authorprofile
Profil Pojedynczy
Struktura typu authorprofile
Reprezentuje szczegółowe dane pracownika związane z jego stanowiskiem
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole
identyfikatora id
owner ID Pole
identyfikatora Właściciel rekordu
affiliationowner ID Pole
identyfikatora Kolekcja
Pag
e 6
6
possitionPL string Zwykle pole
tekstowe
Stanowisko w języku
polskim
possitionEN string Zwykle pole
tekstowe
Stanowisko w języku
angielskim
prefixPL string Zwykle pole
tekstowe
Tekst przed nazwiskiem
w języku polskim
prefixEN string Zwykle pole
tekstowe
Tekst przed nazwiskiem
w języku angielskim
roomNo string Zwykle pole
tekstowe Pokoj
phone string Zwykle pole
tekstowe Telefon
homepage string Zwykle pole
tekstowe Strona domowa
consultations string Zwykle pole
tekstowe Konsultacje
supervisor
Obiekt
zlozony:
author
Promotor Pojedynczy
descriptionPL string Ogromne pole
tekstowe Opis w języku polskim
descriptionEN string Ogromne pole
tekstowe
Opis w języku
angielskim
file Plik (i) Zdjęcie
Struktura typu bachelor
Praca dyplomowa inżynierska
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
Pag
e 6
7
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel rekordu
affiliationowner ID Pole identyfikatora Kolekcja
author
Obiekt
zlozony:
author
Powtarzany Autor
titlePL
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł w języku
polskim
titleEN
Zwykle pole tekstowe
Zgodne z wyrazeniem:
.*[^\.]$
Tytuł w języku
angielskim
supervisor
Obiekt
zlozony:
author
Powtarzany Promotor
conductor
Obiekt
zlozony:
author
Kierownik Pojedynczy
affiliation string Zwykle pole tekstowe Jednostka
dyplomująca
language
Obiekt
zlozony:
language
Język Pojedynczy
status
Pole wyboru: { draft,
approoved, recensed,
finished, }
Status pracy
mark string Zwykle pole tekstowe Ocena
Pag
e 6
8
issueDate string Zwykle pole tekstowe Data wydania
collation string Zwykle pole tekstowe Paginacja
file Plik (i) Plik
reviewers
Obiekt
zlozony:
author
Powtarzany Recenzent
project
Obiekt
zlozony:
project
Powtarzany Projekt
abstractPL string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku polskim
abstractEN string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku angielskim
keywordsPL string Zwykle pole tekstowe
Wymagane
Słowa kluczowe w
języku polskim
keywordsEN string Zwykle pole tekstowe
Wymagane
Słowa kluczowe w
języku angielskim
Struktura typu book reprezentuje książkę
Nazwa pola Typ Ograniczenia Znaczenie
Dodatkow
e
informacj
e
id ID Pole identyfikatora id
recordStatus Pole wyboru: { partial,
completed, }
Status
rekordu
Pag
e 6
9
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
score int Zwykle pole tekstowe Punktacja
orginalType Pole wyboru: { KSIAZKA,
KONFERENCJA, }
Typ z
importu
bookType
Pole wyboru: {
MONOGRAFIA,
PODRECZNIK_AKADEMICK
I, SKRYPT, }
Rodzaj
publikacji
authorsRole Pole wyboru: { editor, author, } Rola autora
author
Obiekt
zlozony:
author
Powtarzany Autor
title
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł
corporateauthor
Obiekt
zlozony:
corporateautho
r
Powtarzany
Autor
intytucjonaln
y
language
Obiekt
zlozony:
language
Powtarzany Język
issueDate int Zwykle pole tekstowe
Wymagane Data wydania
publisher string Zwykle pole tekstowe Wydawca
publisherLocatio
n string Zwykle pole tekstowe
Adres
Wydawcy
Pag
e 7
0
collation string Zwykle pole tekstowe Paginacja
isbn Zwykle pole tekstowe Zgodne z
wyrazeniem: [\d-]*$ ISBN
doi string Zwykle pole tekstowe DOI
url string Zwykle pole tekstowe URL
file Plik (i) Plik
cover Plik (i) Okładka
conference
Obiekt
zlozony:
conference
Konferencja Pojedynczy
bookseries
Obiekt
zlozony:
bookseries
Seria książkowa Pojedynczy
vol string Zwykle pole tekstowe Tom
no string Zwykle pole tekstowe Nr
abstractPL string Ogromne pole tekstowe
Streszczenie
w języku
polskim
abstractEN string Ogromne pole tekstowe
Streszczenie
w języku
angielskim
keywordsPL string Zwykle pole tekstowe
Słowa
kluczowe w
języku
polskim
keywordsEN string Zwykle pole tekstowe
Słowa
kluczowe w
języku
Pag
e 7
1
angielskim
Struktura typu bookseries reprezentuje serię książkową
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
author Obiekt zlozony:
author Powtarzany Autor
shortName string Zwykle pole
tekstowe Skrócona nazwa
seriesTitle string
Zwykle pole
tekstowe
Wymagane
Tytuł serii
issn string Zwykle pole
tekstowe ISSN
corporateauthor Obiekt zlozony:
corporateauthor Powtarzany
Autor
instytucjonalny
language Obiekt zlozony:
language Powtarzany Język
score int Zwykle pole
tekstowe Punktacja
Pag
e 7
2
impactFactor double Zwykle pole
tekstowe Impact Factor
nameOfLists Pole wyboru: { A,
B, C, D, H, } Lista
Struktura typu conference
Reprezentuje dane o konferencji
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
shortName string Zwykle pole tekstowe
Wymagane Skrócona nazwa
fullName string Zwykle pole tekstowe
Wymagane Pełna nazwa
venue string Zwykle pole tekstowe
Wymagane Lokalizacja
date string Zwykle pole tekstowe
Wymagane Rok
Struktura typu corporateauthor
Autor będący instytucją, np. PW
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
Pag
e 7
3
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
fullName string Zwykle pole tekstowe
Wymagane Pełna nazwa
accronym string Zwykle pole tekstowe
Wymagane Skrót
otherForm string Zwykle pole tekstowe Inne formy
Struktura typu file
Dane binarne (Plik)
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole
identyfikatora Id
owner ID Pole
identyfikatora
Właściciel
rekordu
affiliationowner ID Pole
identyfikatora Kolekcja
comment string Zwykle pole
tekstowe Komentarz
permission Obiekt zlozony:
permission Powtarzany Prawa dostępu
Pag
e 7
4
Struktura typu import
Wirtualna struktura importu
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
name string Zwykle pole
tekstowe
article Obiekt zlozony: article Powtarzany
book Obiekt zlozony: book Powtarzany
report Obiekt zlozony: report Powtarzany
translation Obiekt zlozony:
translation Powtarzany
author Obiekt zlozony: author Powtarzany
bachelor Obiekt zlozony: bachelor Powtarzany
master Obiekt zlozony: master Powtarzany
phd Obiekt zlozony: phd Powtarzany
language Obiekt zlozony:
language Powtarzany
journalseries Obiekt zlozony:
journalseries Powtarzany
Struktura typu journaledition
Edycja czasopisma
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
Alternatywnie( journalseries, bookseries, )
journalseries Obiekt zlozony:
journalseries Czasopismo Pojedynczy
Pag
e 7
5
bookseries Obiekt zlozony:
bookseries Seria książkowa Pojedynczy
id ID Pole identyfikatora id
recordStatus Pole wyboru: { partial,
completed, }
Status
rekordu
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
score int Zwykle pole tekstowe Punktacja
orginalType Pole wyboru: {
RED_CZASOPIS, }
Typ z
importu
author Obiekt zlozony:
author Nazwisko edytora Pojedynczy
function string Zwykle pole tekstowe
Wymagane Funkcja
vol string Zwykle pole tekstowe Tom
yearfrom int Zwykle pole tekstowe Rok od
yearto int Zwykle pole tekstowe Rok do
Struktura typu journalissue
Wydanie czasopisma
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
Pag
e 7
6
affiliationowner ID Pole identyfikatora Kolekcja
journalseries Obiekt zlozony:
journalseries
Tytuł
czasopisma/serii Pojedynczy
vol string Zwykle pole
tekstowe Tom
no string Zwykle pole
tekstowe Nr
issueDate int Zwykle pole
tekstowe Data wydania
conference Obiekt zlozony:
conference Konferencja Pojedynczy
Struktura typu journalseries
Seria czasopisma
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
shortName string Zwykle pole tekstowe Skrócona
nazwa
fullName string Zwykle pole tekstowe
Wymagane Pełna nazwa
issn string Zwykle pole tekstowe ISSN
publisher string Zwykle pole tekstowe
Wymagane Wydawca
website string Zwykle pole tekstowe Strona
Pag
e 7
7
domowa
language Obiekt zlozony:
language Powtarzany Język
score int Zwykle pole tekstowe Punktacja
impactFactor double Zwykle pole tekstowe Impact Factor
nameOfLists Pole wyboru: { A, B, C,
D, H, } Lista
Struktura typu language
Język
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel rekordu
affiliationowner ID Pole identyfikatora Kolekcja
code string Zwykle pole tekstowe
Wymagane Kod
namePL string Zwykle pole tekstowe
Wymagane
Nazwa w języku
polskim
nameEN string Zwykle pole tekstowe
Wymagane
Nazwa w języku
angielskim
Struktura typu master
Praca dyplomowa magisterska
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel rekordu
Pag
e 7
8
affiliationowner ID Pole identyfikatora Kolekcja
author
Obiekt
zlozony:
author
Powtarzany Autor
titlePL
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł w języku
polskim
titleEN
Zwykle pole tekstowe
Zgodne z wyrazeniem:
.*[^\.]$
Tytuł w języku
angielskim
supervisor
Obiekt
zlozony:
author
Promotor Pojedynczy
conductor
Obiekt
zlozony:
author
Kierownik Pojedynczy
affiliation string Zwykle pole tekstowe Jednostka
dyplomująca
language
Obiekt
zlozony:
language
Język Pojedynczy
status
Pole wyboru: { draft,
approoved, recensed,
finished, }
Status pracy
mark string Zwykle pole tekstowe Ocena
issueDate string Zwykle pole tekstowe Data wydania
collation string Zwykle pole tekstowe Paginacja
file Plik (i) Plik
Pag
e 7
9
reviewers
Obiekt
zlozony:
author
Powtarzany Recenzent
project
Obiekt
zlozony:
project
Powtarzany Projekt
abstractPL string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku polskim
abstractEN string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku angielskim
keywordsPL string Zwykle pole tekstowe
Wymagane
Słowa kluczowe w
języku polskim
keywordsEN string Zwykle pole tekstowe
Wymagane
Słowa kluczowe w
języku angielskim
Struktura typu permission
Uprawnienia dostepu do plikow
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora Id
owner ID Pole identyfikatora Właściciel rekordu
affiliationowner ID Pole identyfikatora Afiliacyjny
właściciel rekordu
access Pole wyboru: { PRIVATE,
PUBLIC, PROTECTED, } Ograniczenie
affiliation string Zwykle pole tekstowe Dla Afiliacji
dateFrom date Data Wazne od
Struktura typu phd
Pag
e 8
0
Doktorat
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
author
Obiekt
zlozony:
author
Autor Pojedynczy
titlePL
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł w języku
polskim
titleEN
Zwykle pole tekstowe
Zgodne z wyrazeniem:
.*[^\.]$
Tytuł w języku
angielskim
supervisor
Obiekt
zlozony:
author
Powtarzany Promotor
affiliation string Zwykle pole tekstowe Jednostka
dyplomująca
language
Obiekt
zlozony:
language
Język Pojedynczy
status
Pole wyboru: { draft,
approoved, recensed,
finished, }
Status pracy
startDate string Zwykle pole tekstowe Data rozpoczęcia
defenseDate string Zwykle pole tekstowe Data obrony
Pag
e 8
1
endDate string Zwykle pole tekstowe Data zakończenia
honored boolean Wartosc Logiczna Wyróżnienie
collation string Zwykle pole tekstowe Paginacja
file Plik (i) Plik
externalreviewers
Obiekt
zlozony:
author
Powtarzany Recenzent zew.
internalreviewers
Obiekt
zlozony:
author
Powtarzany Recenzent wew.
classPKT string Zwykle pole tekstowe Klasyfikacja PKT
classOPI string Zwykle pole tekstowe Klasyfikacja KBN
classUE string Zwykle pole tekstowe Klasyfikacja
europejska
project
Obiekt
zlozony:
project
Powtarzany Projekt
abstractPL string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku polskim
abstractEN string Ogromne pole tekstowe
Wymagane
Streszczenie w
języku angielskim
keywordsPL string Zwykle pole tekstowe
Wymagane
Słowa kluczowe
w języku polskim
keywordsEN string Zwykle pole tekstowe
Wymagane
Słowa kluczowe
w języku
angielskim
Pag
e 8
2
Struktura typu project
Projekt prowadzony przez uczelnie
Nazwa pola Typ Ograniczenia Znaczenie
Dodatko
we
informac
je
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
status
Pole wyboru: {
WPRZYGOTOWANIU,
ZAAKCEPTOWANY,
ODRZUCONY,
WREALIZACJI,
PRZERWANY,
ZAKONCZONY, }
Status
projektu
projecttype Obiekt zlozony:
projecttype Typ projektu Pojedynczy
executive Obiekt zlozony:
affiliation Powtarzany
Jednostka
wykonująca
na Wydziale
otherexecutive Obiekt zlozony:
corporateauthor Powtarzany
Jednostka
wykonująca
poza
Pag
e 8
3
Wydziałem
titlePL string Zwykle pole tekstowe
Wymagane
Tutuł w
języku
polskim
titleEN string Zwykle pole tekstowe
Wymagane
Tytuł w
języku
angielskim
accronym string Zwykle pole tekstowe
Wymagane Skrót
contractNo string Zwykle pole tekstowe Numer
kontraktu
contract2No string Zwykle pole tekstowe
Numer
umowy
(pracy)
decisionNo string Zwykle pole tekstowe Numer
decyzji
beforeAnnex Obiekt zlozony:
project Przed aneksowaniem Pojedynczy
startDate date Data Data
rozpoczęcia
plannedEndDate date Data
Planowana
data
zakończenia
endDate date Data
Faktyczna
data
zakończenia
type
Pole wyboru: {
BADAWCZYPODSTAWOW
Y,
Rodzaj
projektu
Pag
e 8
4
BADAWCZYROZWOJOWY,
CELOWY, EDUKACYJNY,
INWESTYCYJNYAPARATU
ROWY,
INWESTYCYJNYBUDOWL
ANY, SPECJALNY,
WDROZENIOWY,
EKSPERTYZA, OPINIA, }
cooperationtype
Pole wyboru: {
MIEDZYNARODOWY,
KRAJOWY, }
Rodzaj
współpracy
leader Obiekt zlozony:
author Kierownik Pojedynczy
coworker Obiekt zlozony:
author Powtarzany Wykonawcy
contact string Ogromne pole tekstowe
Wymagane
Dane
kontaktowe
do projektu
contractingAutho
rity
Obiekt zlozony:
corporateauthor Instytucja zlecająca Pojedynczy
partner Obiekt zlozony:
affiliation Powtarzany
Partnerzy,
Wykonawcy
instytucjonal
ni,
Członkowie
sieci/konsorc
jum
coordinator string Zwykle pole tekstowe Koordynator
projecttask Obiekt zlozony: Powtarzany Plan
Pag
e 8
5
projecttask finansowy
projectfinancialr
eport
Obiekt zlozony:
projectfinancialr
eport
Powtarzany
Okres
sprawozdawc
zy
plannedBudget decimal Zwykle pole tekstowe Budżet
planowany
budget decimal Zwykle pole tekstowe Budżet
faktyczny
registrationNum
ber string Srednie pole tekstowe
Numer
ewidencyjny
invoiceNumber string Srednie pole tekstowe Numer
faktury
harmonogram Plik (i) Harmonogra
m
keywordsPL string Zwykle pole tekstowe
Wymagane
Słowa
kluczowe w
języku
polskim
keywordsEN string Zwykle pole tekstowe
Wymagane
Słowa
kluczowe w
języku
angielskim
abstractPL string Ogromne pole tekstowe
Wymagane
Opis w
języku
polskim
abstractEN string Ogromne pole tekstowe
Wymagane
Opis w
języku
angielskim
usageOffer string Ogromne pole tekstowe Oferta
Pag
e 8
6
Wymagane wykorzystani
a wyników
usageDomain Pole wyboru: { IND, ADM,
BUS, SCI, }
Obszar
zastosowań
comments string Ogromne pole tekstowe
Wymagane Uwagi
url string Srednie pole tekstowe
URL do
strony
projektu
logo Plik (i) Logo
mainFiles Plik (i) Pliki
merytoryczne
financialFiles Plik (i) Umowy/anek
sy
previousProject Obiekt zlozony:
project Powtarzany
Projekt
poprzedzając
y
parallelProject Obiekt zlozony:
project Powtarzany
Projekt
równoległy
Struktura typu projectfinancialreport
Raport finansowy dla projektu
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
Pag
e 8
7
owner ID Pole identyfikatora Właściciel rekordu
affiliationowner ID Pole identyfikatora Kolekcja
startDate date Data Początek okresu
rozliczniowego
endDate date Data Koniec okresu
rozliczeniowego
plannedBudget decimal Zwykle pole
tekstowe Przyznano
budget decimal Zwykle pole
tekstowe Wydano
financialFiles Plik (i) Pliki finansowo-
organizacyjne
comment string Ogromne pole
tekstowe Opis
Struktura typu projecttask
Zadanie w obrębie projektu
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
name string Zwykle pole tekstowe
Wymagane Nazwa zadania
description string Ogromne pole tekstowe Opis zadania
startDate date Data Data
rozpoczęcia
Pag
e 8
8
endDate date Data Data
zakończenia
budget decimal Zwykle pole tekstowe Kwota
Struktura typu projecttype
Typ projektu
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
name string Zwykle pole tekstowe
Wymagane
Nazwa typu
projektu
projecttype Obiekt zlozony:
projecttype Typ nadrzędny Pojedynczy
Struktura typu report
Raport instytutowy
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
id ID Pole identyfikatora id
Pag
e 8
9
recordStatus Pole wyboru: { partial,
completed, } Status rekordu
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
score int Zwykle pole tekstowe Punktacja
orginalType Pole wyboru: {
RAPORT, } Typ z importu
author Obiekt zlozony:
author Powtarzany Autor
authorsRole Pole wyboru: { editor,
author, } Rola autora
title
Zwykle pole tekstowe
Wymagane Minimum:
5Znaki Zgodne z
wyrazeniem: .*[^\.]$
Tutuł
publicationDate int Zwykle pole tekstowe Data publikacji
collation
Zwykle pole tekstowe
Zgodne z wyrazeniem:
\d*$
Paginacja
doi string Zwykle pole tekstowe DOI
repNo string Zwykle pole tekstowe Nr raportu
corporateauthor Obiekt zlozony:
corporateauthor Powtarzany
Autor
instytucjonalny
file Plik (i) Plik
language Obiekt zlozony:
language Powtarzany Język
abstractPL string Ogromne pole tekstowe Streszczenie w
Pag
e 9
0
języku polskim
abstractEN string Ogromne pole tekstowe Streszczenie w
języku angielskim
keywordsPL string Zwykle pole tekstowe Słowa kluczowe
w języku polskim
keywordsEN string Zwykle pole tekstowe
Słowa kluczowe
w języku
angielskim
Struktura typu translation
Tłumaczenie książki
Nazwa pola Typ Ograniczenia Znaczenie
Dodatkow
e
informacj
e
id ID Pole identyfikatora id
recordStatus Pole wyboru: { partial,
completed, } Status rekordu
owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
orginalType Pole wyboru: {
TLUMACZENIE, } Typ z importu
bookType
Pole wyboru: {
MONOGRAFIA,
PODRECZNIK_AKADEMIC
KI, SKRYPT, }
Rodzaj
książki
book Obiekt
zlozony: book Książka Pojedynczy
Pag
e 9
1
authorsRole Pole wyboru: { translator, } Rola autora
author
Obiekt
zlozony:
author
Powtarzany Autor
title
Zwykle pole tekstowe
Wymagane Zgodne z
wyrazeniem: .*[^\.]$
Tytuł
corporateauthor
Obiekt
zlozony:
corporateautho
r
Powtarzany
Autor
instytucjonaln
y
language
Obiekt
zlozony:
language
Język Pojedynczy
issueDate int Zwykle pole tekstowe
Wymagane Data wydania
publisher string Zwykle pole tekstowe Wydawca
publisherLocatio
n string Zwykle pole tekstowe
Adres
Wydawcy
collation string Zwykle pole tekstowe Paginacja
isbn string Zwykle pole tekstowe ISBN
doi string Zwykle pole tekstowe DOI
URL string Zwykle pole tekstowe
file Plik (i) Plik
conference
Obiekt
zlozony:
conference
Konferencja Pojedynczy
bookseries Obiekt Seria książkowa Pojedynczy
Pag
e 9
2
zlozony:
bookseries
vol string Zwykle pole tekstowe Tom
no string Zwykle pole tekstowe Nr
abstractPL string Ogromne pole tekstowe
Streszczenie
w języku
polskim
abstractEN string Ogromne pole tekstowe
Streszczenie
w języku
angielskim
keywordsPL string Zwykle pole tekstowe
Słowa
kluczowe w
języku
polskim
keywordsEN string Zwykle pole tekstowe
Słowa
kluczowe w
języku
angielskim
Struktura typu affiliation
Struktura ta reprezentuje afiliacje autorów i pracowników.
Nazwa pola Typ Ograniczenia Znaczenie Dodatkowe
informacje
Id ID Pole identyfikatora Id
Owner ID Pole identyfikatora Właściciel
rekordu
affiliationowner ID Pole identyfikatora Kolekcja
namePL string Zwykle pole tekstowe Nazwa w języku
Pag
e 9
3
Wymagane polskim
nameEN string Zwykle pole tekstowe
Wymagane
Nazwa w języku
angielskim
accronymPL string Zwykle pole tekstowe
Wymagane
Skrót w języku
polskim
accronymEN string Zwykle pole tekstowe
Wymagane
Skrót w języku
angielskim
affiliation Obiekt zlozony:
affiliation Afiliacja nadrzedna Pojedynczy