Panie dyrektorze, tworzymy klasy

To chyba moja ulubiona część, bo klasy tworzy się przyjemnie i miło się człowiekowi patrzy na to rozrastające się drzewko. A zatem, nie przedłużając...

Klikamy na element „owl:Thing", żeby zacząć naszą pracę. W oknie klasy pojawiło się coś nowego, jednak jeszcze nic tam nie ruszamy. Zamiast tego klikamy na opcję „Create", czyli ósemkę z poprzedniego wpisu.

Tutaj sprawa jest prosta: wprowadzamy nazwę naszego elementu, language tag natomiast, podobnie jak na samym początku, pozostawiamy nietknięty. Możemy wprowadzać klasy po kolei, tak jak zrobiłam ja dla ukazania drzewa, lub wprowadzić kilka naraz, rozdzielając je Enterem.

To teraz jedziemy z tworzeniem elementów. Zróbmy może tak: zacznijmy z jakimś prostym, głupim przykładem, żeby się oswoić, a na samym końcu, w ostatniej części tego przewodnika, pokażę, jak można wykorzystać to do planowania opowiadania na przykładzie swojej pracy. Stoi?

Możemy stworzyć dowolną ilość elementów i powoli powstaje nam drzewo. Kolejne klasy, jeśli robimy je pojedynczo, są tworzone wewnątrz tej, którą aktualnie mamy wybraną, tylko że gdy tworzymy nową, wybór automatycznie przeskakuje na nią. Jeśli więc po prostu tworzymy kolejne elementy, nie porządkując ich po drodze, w oknie hierarchii klas powstaje nam coś takiego:

(jak coś – nie musicie robić tak jak ja, unikając spacji i polskich znaków; przyzwyczaiłam się do tej formy podczas zajęć i się jej trzymam, nie przeszkadza mi ona, jednak spokojnie możecie robić po swojemu i program nie powinien się z tego powodu wysypać, bo testowałam, jak reaguje na spacje i polskie znaki, więc tym się martwić nie musicie)

Jeżeli tworzymy klasy naraz, w oknie dodawania rozdzielając je Enterem, wtedy wszystkie będą się wyświetlać jedna pod drugą, bez żadnych powiązań.

Oczywiście możemy też utworzyć wszystkie klasy, za każdym razem przeklikując się do miejsca, w którym nowa ma się znaleźć. Według mnie jednak w przypadku, kiedy mamy do utworzenia dużo klas naraz, łatwiej jest utworzyć takie właśnie schodki lub listę, a potem porządkować elementy ręcznie, po prostu przeciągając je myszką. Najwygodniej jest zacząć to przenoszenie od samego końca, w tym przypadku od pomarańczy. Jeśli zaczniemy przenosić nasze klasy od góry, po przeniesieniu całe drzewko będzie nam się chować i za każdym razem będziemy musieli znowu je rozwijać (no chyba że robimy listę, czyli wprowadzamy ileś elementów naraz, wtedy problem zwijającego się drzewka znika – tutaj jednak jak kto woli).

Od razu zaznaczam: elementy są automatycznie porządkowane alfabetycznie (nie od razu, dzieje się to po ponownym otwarciu projektu lub następnego dnia) i jeśli komuś to przeszkadza, niestety nic się z tym nie zrobi. Można obejść to poprzez zaczynanie nazw elementów cyframi, ale to już zależy od Was.

Po takiej korekcie zostaje nam coś takiego:

Oczywiście ilość tworzonych przez nas kategorii jest dowolna, podobnie jak dowolny jest stopień rozbudowania i ilości rozgałęzień naszego drzewa. 

Ale dobra, bo coś tu się nie zgadza: była ta akcja z pomidorem, kiedy w Unii nie mogli się dogadać, czy to warzywo, czy owoc. Skoro więc przynależność pomidora do warzyw lub owoców to kwestia sporna, chyba najlepiej będzie go dać do obu kategorii jednocześnie, co nie? I tym sposobem płynnie przechodzimy do okna edycji klasy.

No i mamy naszego pomidora. Przy okazji przeanalizujmy, co się właściwie teraz w tym oknie znajduje.

Na samej górze mamy trzy ikony: ikonka ołówka daje nam dostęp do edycji klasy i to do niej w pierwszej kolejności jesteśmy automatycznie przenoszeni. Ikonka numer dwa, której na ten moment chyba nie potrafię składnie opisać, to graficzna wizualizacja naszego pomidora na stworzonym przez nas drzewie zależności. No, teraz to może nie wyglądać źle, ale jak dojdą relacje... To będzie wyglądać źle. To będzie wyglądać BARDZO źle, zwłaszcza gdy postanowicie zrobić nieco bardziej rozbudowany projekt. I właśnie dlatego graficzną wizualizację stworzymy sobie gdzieś indziej. Trzecia ikonka natomiast, ta z zegarkiem, zawiera historię wszystkich zmian tej konkretnej klasy.

Lecimy niżej. IRI to adres internetowy, który określa dokładne miejsce w sieci, w którym znajduje się ta klasa i powiązane z nią specyfikacje. Zasadniczo IRI służy przede wszystkim do tego, żeby nasz program nie pogubił się sam w sobie (ma również inne funkcje, ale one nie są nam do niczego potrzebne, więc nie ma sensu tego tu omawiać).

Niżej mamy „Annotations". Słówek „rdfs:label" nie tykamy, bo ta magiczna formułka z języka OWL informuje nasz program, że słowo obok to nazwa, którą nadaliśmy naszemu elementowi i którą możemy zmienić w razie potrzeby. Jeśli dodamy pomidora również do owoców, po zmianie nazwy w tym miejscu zmieni się jego nazwa absolutnie wszędzie, gdzie się pojawia jako klasa. Mamy pod spodem jednak dodatkowe miejsce, w którym możemy coś wpisać. Po wpisaniu w pole „Enter property" dowolnej litery rozwinie nam się lista dostępnych opcji zaczynających się na tę literę. Możemy więc również tam wstawić komentarz, notatkę, ukryć daną klasę, zrobić odnośnik i milion innych rzeczy – tu też zapraszam do eksperymentowania, ponieważ w razie wpadki można to łatwo cofnąć – wystarczy usunąć nieudaną edycję krzyżykiem po prawej. Przy okazji podsunę kilka opcji, które mogą się okazać najbardziej przydatne: 

rdfs:seeAlso daje nam możliwość zalinkowania jakiejś strony, na której są dodatkowe informacje;

schema:image pozwala wstawić obrazek za pomocą linku;

skos:definition umożliwia umieszczenie zwięzłej definicji, czegoś w rodzaju notatki lub skrótowego opisu;

rdfs:comment i skos:comment pozwalają na umieszczenie komentarza bezpośrednio wewnątrz klasy, a nie gdzieś obok.

Ale dobra: czy w takim razie możemy nadać jednemu elementowi dwie różne nazwy? Cóż... teoretycznie tak, ale niekoniecznie tą samą komendą. Kiedy dodamy linijkę, która również będzie określana opcją „rdfs:label", będzie ona podkreślona na czerwono i po najechaniu na nią myszką pojawi się ostrzeżenie. To oznacza, że w takim przypadku w kodzie może wystąpić błąd, jeśli to tak zostawimy. Jeżeli chcemy dodać drugą nazwę, musimy zastosować opcję „skos:altLabel".

Jeśli natomiast skasujemy główną nazwę (określaną przez „rdfs:label"), nie wprowadzając nowej ani nie kasując całej klasy (opcją „Delete" tuż obok „Create"), na jej miejscu pojawi się bardzo brzydkie ID klasy, które wyświetlałoby się na wizualizacji domyślnie, gdybyśmy dłubali przy language tagach. Kiedy zrobi się coś takiego, WebProtege lubi się bugować i często jedynym sposobem na naprawienie klasy w takim przypadku jest usunięcie jej i stworzenie od nowa.

Zaznaczam od razu: musimy albo bardzo zwracać uwagę na to, w jaki sposób zapisujemy nazwy tych opcji, albo po prostu korzystajmy z możliwości autouzupełniania, którą oferuje WebProtege. Na samym początku tego tutorialu wspomniałam, że OWL bazuje na XML-u i to wynika właśnie z tego; opcje, które tu wymieniłam, a także wszystkie inne, które są dostępne, to komendy, które mają znaczenie wyłącznie w takiej formie, więc każdy znak i każda wielka litera ma znaczenie.

Dalej mamy rodziców, czyli kategorię, w której zamknięty jest nasz element. Jest tu wyświetlana wyłącznie ta kategoria, w której bezpośrednio zawiera się dana klasa, czyli w naszym przypadku pomidor, który w tej chwili bezpośrednio zawiera się wyłącznie w kategorii warzyw. I tutaj właśnie możemy pobawić się w dowolną ilość rodziców: poniżej też mamy pole do wprowadzenia kolejnego rodzica, więc gdy wpiszemy tam „Owoce", pomidor będzie jednocześnie w obu kategoriach, cały czas pozostając dokładnie tym samym pomidorem. 

Oczywiście możemy dodać tego pomidora do dowolnej kategorii, możemy też sprawić, że będzie swoim własnym rodzicem. To da nam nieskończoną pętlę, ponieważ wtedy każdy pomidor, niezależnie od tego, gdzie go przeniesiemy, będzie w sobie zawierał kolejnego pomidora, który będzie zawierał kolejnego pomidora, który... (oto jak informatycy grają w pomidora xD).

Sekcją „Relationships" zajmiemy się później, ponieważ to właśnie za jej pomocą przypisujemy relacje do konkretnych klas, a relacji jeszcze nie mamy – ich tworzeniem zajmiemy się w kolejnej notce, więc dopiero w niej opiszę tę część.

Oczywiście kiedy już mamy utworzone klasy, możemy dodawać komentarze – w poprzednim wpisie opisałam, w jaki sposób można to zrobić.

Możemy edytować nasz komentarz lub na niego odpowiedzieć, natomiast opcja „Resolve" sprawia, że wątek jest uznawany za zakończony i archiwizowany. Ikona po prawej, te trzy paski z kulkami, to filtr, który pozwala nam ponownie te zarchiwizowane komentarze wyświetlić i ewentualnie przywrócić za pomocą opcji „Re-open" wyświetlającej się przy zarchiwizowanych komentarzach.

Dobra, pomidorki, temat tworzenia klas chyba już został wyczerpany. Jak widzicie, w klasach określiliśmy, że ogórek jest warzywem, jabłko jest owocem, a pomidor obydwoma jednocześnie. Teraz pora wziąć się za ustalanie właściwości i relacji.

Bạn đang đọc truyện trên: AzTruyen.Top