Export page to Open Document format

MIW 2010 PLCS3

Zrealizował: Marcin Książek (4RI)

opracować plwiki cases (czyli przykłady aplikacji dla semwikis)

Prezentacja

Sprawozdanie

Opis Projektu

Zrealizowany projekt można podzielić na dwa etapy. Pierwszy etap polegał na zaznajomieniu się z istniejącymi rozwiązaniami bazujących na technologiach semwikis. Klasyfikacja serwisów pod względem treści, zastosowanych w nich dodatkach (pluginach), pozwoli wybrać te serwisy, których funkcjonalność zostanie odtworzona w drugiej cześci projektu. Etap wdrażania serwisu w systemie plwiki, ma dać odpowiedź jakich funkcjonalności brakuje w obecnym serwisie.

Przegląd istniejących rozwiązań

Metacafe

Jest to serwis typu społecznościowego, który umożliwia użytkownikom tworzenie i dzielenie się plikami video. Rzeczą która wyróżnia ten serwis od innych jest zastosowanie Semantic Media Wiki. W 2008 roku użytkownicy serwisu otrzymali możliwość edytowania metadanych plików video. Odpowiednie opisywanie plików, umożliwiło użytkownikom efektywnie wyszukiwać pożądane materiały video. Użytkownik podczas dodawania filmu może przypisać tagi do pliku. Niektóre tagi dodawane są automatycznie ( np. tak jak w przykładzie zamieszczonym poniżej „banana” jest rozpoznawana jako owoc i jedzenie). Dużym plusem aplikacji jest automatyczne tłumaczenie tagów na inne języki. http://www.metacafe.com/ metacafe_edit_tag.jpg

One Laptop Per Child

Jest to serwis związany z programem zakupu komputerów do krajów rozwijających się. Jak przyznają twórcy, wykorzystanie Semantic Media Wiki a w szczególności Semantic Forms, pozwoliło twórcom serwisu kontrolować pracę testerów, woluntariuszy, programistów. Uzyskano to dzięki przygotowaniu formularzy zawartych w oknu edycji strony (Semantic Forms), które to poszczególne osoby wypełniały.

Duke University Medical Center

Wykorzystanie Semantic MediaWiki, pozwoliło w efektywny sposób manipulować trudnymi danymi medycznymi ( problem zgodności danych rzeczywistych z danymi przechowywanymi fizycznie). W serwisie tym wykorzystano następujące rozszerzenia Semantic MediaWiki:

  • Semantic Forms - formularze wbudowane w stronę podczas edycji
  • Header Tabs - podział strony na części
  • Data Transfer - import, export danych przy wykorzystaniu szablonów, które także są wykorzystywane przy Semantic Forms
  • Semantic Result Formats - dodatek umożliwiający odpowiednie sformatowanie wyników inline query

SNPedia

Serwis zawierający informację na temat różnych wariancji danego genu. Celem serwisu jest wyjaśnienie ludzkiego DNA. Niestety nie udało mi się uzyskać informacji na temat użycia Semantic MediaWiki.

TechPresentations

Celem serwisu jest umożliwienie użytkownikowi w łatwy sposób odnaleźć informację na temat prezentancji przedstawionych podczas różnych konferencji. Materiały pogrupowane są na tematycznie lub czasowo. Wykorzystanie możlwości Semantic MediaWiki dotyczących dynamicznego generowanie kalendarzy spotkań, znacząco poprawiło czytelność serwisu. Użytkownik może dodwać prezentację, konferencję, spotkania cykliczne ( cecha charakteryzująca Semantic MediaWiki). Poniżej przykład formularza umożliwiającego dodanie konferencji ( po raz kolejny wykorzystanie Semantic Forms).

Mikomos

Celem serwisu jest możliwośc znalezenie lokacji o ściśle określonych cechach. Wykorzystano Semantic Google Maps do znalezienia miejsc w danym punkcie lub w pewnej odległości od tego punktu. Po raz kolejny głównym czynnikiem, który sprawia że serwis jest czytelny i przejrzysty jest wykorzystanie Semantic Forms w celu wprowadzenia, edycji danych dotyczących pożądanej lokalizacji.

Peacecorps

Celem serwisu jest zgrupowanie, uzyskanie informacji na temat pracy wolontariuszy U.S Peace Corps. Zastosowanie Semantic Media Wiki pozwoliło w sposób automatyczny generować kalendarz na podstawie informacji zawartych na poszczególnych serwisach wiki. Dzięki temu użytkownik serwisu może w łatwy sposób kontrolować wydarzenia z działaniem U.S Peace Corps.

MadeMan Chickipedia

Jest to serwis stworzony specjalnie dla mężczyzn. Twórcy określają serwis jak internetowy magazyn dla mężczyzn. Zawierający informację o tym jak dobrze żyć ( kuchnia, kobiety, filmy, motoryzacja). Serwis umożliwia inteligentne wyszukiwanie pożądanych danych ( np. najlepsza chińska restauracja w Nowym Yorku). Wprowadzenie danych zostało uproszczone poprzez zastosowanie Semantic Forms.

Videoville

Serwis który głównym celem jest zgromadzenie materiałów video (teledysków), informacji o nich, informacji o ich twórcach i rodzaju muzyki. Serwis w chwili obecnej nie jest rozwijany. Informacje zawarte często nie są w odpowiedni sposób podlinkowane, co uniemożliwia sprawne korzystanie z serwisu. Zastosowanie tagów umożliwia w łatwy sposób wyszukiwać pożądane informacje ( kategoryzacja kryteriów). Wprowadzanie danych odbywa się przy zastosowaniu Semantic Forms i

Hackerspaces

Jest to przykład ciekawego serwisu internetowego bardzo podobnego do TechPresentation. Główną ideą serwisu jest stworzenie użytkownikowi miejsca pracy w którym będzie możliwe koordynowanie projektów związanych z tematami „hakerskimi”. Dodatkowo jest możliwość dodawania spotkań ludzi zainteresowanych tematami bezpieczeństwa. W serwisie zastosowano Semantic Forms i Semantic Google Maps. Serwis jest stale aktualizowany.

Ani-jobs

Przykład ciekawego serwisu skierowanego do pracodawców i osób poszukujących pracy związanych z grafiką komputerową. Pozwala pracownikowi dodać swoje umiejętności, obsługę programów i doświadczenie zawodowe. Serwis pozwala pracodawcom wyszukać pracowników o ściśle określonych umiejętności i doświadczeniu zawodowym. Wiki zawiera także tutoriale dla początkujących grafików. Serwis wykorzystuje najpopularniejsze rozszerzenie Semantic Media Wiki czyli Semantic Forms. Serwis ciągle funkcjonuje i jest stale aktualizowany. Należy zwrócić na niego uwagę bo w sposób użyteczny wykorzystuje semantyczne wiki.

TextbookRevolution

Jest to serwis internetowy skierowany dla studentów zawierający pogrupowane książki. Materiały są dzielone ze względu na typ (przedmiot) i licencji. W chwili obecnej serwis zawiera dużą ilość darmowych e-booków. Jest to serwis, który pozwala użytkownikowi w prosty sposób wyszukać pożądane pozycje. Książki do bazy danych dodawane są przy użyciu Semantic Forms.

OpenEnergyInfo

Celem serwisu jest gromadzenie i umożliwienie swobodnego dostępu do informacji związanych z tematyką energii. Serwis analizuje informacje zawarte, aby skutecznie móc je analizować. Dodatkowo można znaleźć materiały dotyczące rozwijanych, zakończonych projektów związanych z uzyskaniem czystej energii. Serwis jest ciągle aktualizowany, jako jedyny serwis ma poparcie rządu U.S.A.

Ontology Design Patterns

Zaimplementowane wiki posłużyło do łatwego pogrupowanie, wyszukiwania informacji związanych z ontologicznymi wzorcami projektowymi (ODP's). Serwis zawiera dużą ilość wzorców, więc może posłużyć jak kompendium wiedzy w tym temacie. Wykorzystano Semantic Forms i Semantic Calendar

Klasyfikacja serwisów

Typ serwisu

  • społecznościowy
  • naukowo-badawczy
  • rozrywkowy
  • informacyjny
  • inny

Wielkość serwisu, zasięg ( ilość unikatowych odsłon, użytkowników, stron )

  • duży
  • średni
  • mały

Korzyści osiągnięte z zastosowania Semantic MediaWiki

  • inteligentne wyszukiwanie
  • zarządzanie wydarzeniami ( automatyczne generowanie kalendarza z informacji zawartych na stronach )
  • koordynacja pracy

Zastosowane dodatki SMW (wyszczególnienie głównych dodatków )

Tabela

Typ serwisu Wielkość serwisu Korzyści wynikające z SMW Zastosowane rozszerzenia SMW
Metacafe społecznościowy , rozrywkowy duży inteligentne wyszukiwanie SemanticForms, Header Tabs
One Laptop per Child inny średni koordynacja pracy SemanticForms
Duke University Medical Centre naukowo-badawczy mały koordynacja pracy brak danych
SNPedia naukowo-badawczy mały koordynacja pracy SemanticForms
TechPresentations społecznościowy, informacyjny średni inteligentne wyszukiwanie, zarządzanie wydarzeniami SemanticForms, Semantic Result Formats
Mikomos społecznościowy mały inteligentne wyszukiwanie SemanticForms, Header Tabs, Semantic Google Maps,
PeaceCorps społecznościowy, informacyjny średni inteligentne wyszukiwanie, zarządzanie wydarzeniami SemanticForms, Header Tabs,Semantic Result Formats
MadeMam społecznościowy, informacyjny duży inteligentne wyszukiwanie SemanticForms, Semantic Result Formats
Videoville społecznościowy, rozrywkowy mały inteligentne wyszukiwanie SemanticForms
Hackerspace społecznościowy, informacyjny średni inteligentne wyszukiwanie , zarządzanie wydarzeniami SemanticForms ,Semantic Google Maps, Semantic Calendar
Ani-jobs serwis pracy średni inteligentne wyszukiwanie SemanticForms
Textbookrevolution społecznościowy, informacyjny średni inteligentne wyszukiwanie, udostępnianie zasobów SemanticForms
OpenEnergyInfo badawczy, informacyjny średni inteligentne wyszukiwanie, koordynacja pracy, udostępnianie danych naukowych SemanticForms, Semantic Google Maps, Semantic Calendar
Ontology Design Pattern informacyjny, naukowy średni inteligentne wyszukiwanie SemanticForms

Ocena możliwości odtworzenia w plwiki

TechPresentation

Celem tego etapu projektu jest zbadanie możliwości odtworzenia funkcjonalności serwisu TechPresentation.

Semantic Form

Jest do dodatek wiki, który dostarcza możliwość łatwego stworzenia „formularza semantycznego”. Poprzez jego edycję użytkownik dostaje możliwość łatwej edycji, dodawania nowych wartości do istniejących kategorii. Dodatek umożliwia dodawanie następujących parametrów do wiki.

  • Page
  • String
  • Text
  • Code
  • URL
  • Number
  • Date
  • Enumeration
  • Boolean

Zastosowanie formularzy umożliwia kontrolowanie wprowadzonych danych do serwisu ich walidację. Powoduje to że informacje zawarte w serwisie są wartościowe (pełne), a wyszukiwane informacje są wiarygodne ( brak niepotrzebnych wyników). Dlatego należy rozważyć możliwość dodania do istniejącego wiki narzędzia pozwalającego tworzyć i generować formularze. Przykład formularza znajdującego się w serwisie TechPresentation.


Semantic Forms zawiera funkcjonalność dopełniającą wprowadzane wyrażenia. Jest to zrealizowane poprzez zastosowanie biblioteki napisanej w JavaScript.
Stworzenie dodatku o podobnej funkcjonalności do Semantic Forms umożliwi stworzenie podobnej funkcjonalności podobnej do opisanych przykładów realizacji. Specjalnie przygotowane formularze są podstawą efektywnego działania wyżej wymienionych serwisów. Stworzenie takiego formularza może odbyć się poprzez dodanie nowego znacznika, podobnego składniowa do znacznika tworzącego tabelę. Gdzie kolejne pola będą miały przykładowe znaczenie:

  • nazwa właściwości
  • typ pola
  • wartość domyślna, w przypadku pól typu radio lub checkbox wartość parametru true będzie oznaczała że zostaną wypisane wszystkie dostępne pola w danej kategorii
  • rodzaj walidacji

Odpowiednie sparsowanie znacznika pozwoli wygenerować kod html, który będzie realizował wprowadzony przez administratora formularz. Po zatwierdzeniu formularza odpowiednie sparsowanie umożliwi wywołanie poszczególnych funkcji typowych dla semantycznego wiki.

Semantic Result Formats

Jest dodatek do SMW umożliwiający przejrzyste wyświetlania informacji zawartych na stronach wiki. Pozwala wynik zapytania wyświetlić w wielu opcjach takich jak:

  • graph
  • googlebar
  • googlepie
  • timeline
  • eventline
  • calendar
  • average
  • sum
  • gallery

Przykładowe zapytanie wyświetlające kalendarz:

{{#ask:
  [[Category:Events]]
  [[Has date::>{{#calendarstartdate:}}]]
  [[Has date::<{{#calendarenddate:}}]]
  |? Has date
  |format=calendar
}}

Przykład zaimplementowanego kalendarza na stronie TechPresentation

\\ {{:pl:dydaktyka:miw:2010:plcs3:techpresentation_calendar.png?640x400}}
Semantic Calendar

Serwis TechPresentation niestety nie zawiera zaimplementowane rozszerzenia tworzącego kalendarz. Przy próbie odtworzenia serwisu należy postarać się zaimplementować ten dodatek, ponieważ zarządzanie konferencjami stanie się efektywne a znalezienie poszukiwanych informacji stanie się intuicyjne. Przykład zaimplementowanego kalendarza w serwisie The Music Snob.


Po analizie funkcjonalności serwisu TechPresentation i sposobie organizacji informacji próba odtworzenia serwisu powinna zakończyć się sukcesem. Główną rzeczą którą należy zrobić jest próba stworzenia SemanticForms, która znacząco podniesie użyteczność korzystania z serwisów opartych na SMW.

OLPC

Po przeglądnięciu funkcjonowania serwisu OLPC stwierdziłem że serwis nie zawiera żadnego ciekawego rozwiązania. Serwis działa na zasadzie takiej że każdy projekt to oddzielna strona na wiki. Jeżeli chodzi o koordynację pracy zarządcy projektu tworzą stroną z wymaganiami co należy zrobić ( testosowanie). Tester podczas testów poprzez edytowanie strony dzieli się wynikami z pozostałymi osobami związanymi z projektami. Po zapoznaniu się z serwisem odtworzenie serwisu nie powinno sprawić problemu. Główną ideą działania serwisu jest odpowiednie pogrupowanie stron wg. projektu co umożliwia łatwą koordynację pracy.

Implementacja w plwiki

OLPC

Adres serwisu: OLPC

Celem tego przykładu jest próba odtworzenia funkcjonalności, serwisu OLPC. W skład funkcjonalności wchodzi zarządzanie projektami i ludźmi. Każdy projekt zawiera listę osób, które w nim uczestniczą ( istnieje relacja zwrotna że osoba jest przydzielona do projektów). Do dwóch wymienionych kategorii, można przypisać zadania i raporty.

Serwis został podzielony na następujące kategorie

Person

Kategoria zawiera podstawowe dane personalne. Dane związane z SMW są to:

  • wiek- atrybut
  • Lista przydzielonych projektów ( Kategoria: Project )
  • Lista zadań do zrealizowania ( Kategoria: Task )
  • Lista raportów { Kategoria: Report}

W celu lepszego przeglądania wiedzy, będzie istniała możliwość zobaczenie raportów i zadań do zrobienia, a także lista raportów z bliskim „deadline”.

Project

Kategoria zawierające elementy opisujące projekt

  • Osoby uczestniczące w projekcie - jest to relacja do kategorii persons
  • Raporty - zapytanie zwracające listę przypisanych do niej raportów
  • Zadania zakończnone - zapytanie zwracające listę zrealizowanych zadań
  • Zadania niezakończone - zapytanie zwracające listę niezrealizowanych zadań
Raport

Kategoria opisująca raporty występujące w systemie

  • project relacja do kategorii project
  • person relacja do kategorii person
  • status atrybut opisujące fazę wykonania zadania
Task

Kategoria opisująca zadania występujące w systemie

  • project relacja do kategorii project
  • person relacja do kategorii person
  • status atrybut opisujące fazę wykonania zadania

Podczas próby odtworzenia funkcjonalności serwisu wykorzystano następujące zapytania

  • lista przydzielonych zadań dla danego użytkownika
{{#ask: [[category:project]] [[persons::prolog:semwikis:olpc:persons:adam_kowalski]] }}
  • lista raportów stworzonych przez użytkownika
{{#ask: [[category:raport]] [[raportPerson::prolog:semwikis:olpc:persons:adam_kowalski]] }}
  • lista zadań do wykonania
{{#ask: [[category:task]]  [[persons:=adam_kowalski]] [[status:=unfinished]] }}
  • lista zadań wykonanych
{{#ask: [[category:task]]  [[persons:=adam_kowalski]] [[status:=finished]] }}
  • pobranie listy osób których wiek wynosi 22
{{#ask: [[category:persons]] [[age:=22]] }}
  • pobranie przypisanych do danego projektu zadań
{{#ask: [[category:raport]] [[project::prolog:semwikis:olpc:project:test]] }}
  • pobranie listy wykonanych zadań
{{#ask: [[category:task]] [[project::prolog:semwikis:olpc:project:test]] [[status:=finished]]}}
  • pobranie listy niewykonanych zadań
{{#ask: [[category:task]] [[project::prolog:semwikis:olpc:project:test]] [[status:=unfinished]]}}

Metacafe

Adres serwisu: metacafe

Celem tego przykładu jest próba odtworzenia funkcjonalności, serwisu metacafe. Twórcy serwisu zachwalają produkt, tym że dostarczają użytkownikowi tylko pożądane treści, tzn oferują możliwość dostosowania treści do upodobań osoby odwiedzającej serwis. W tym przykładzie chciałbym pokazać możliwość wyszukiwania filmów na podstawie upodobań użytkownika (tagi). Użytkownik również otrzyma możliwość komentowania filmów, dodawania nowych i definicji tagów. Dodatkowo użytkownikowi będą proponowane filmy, które spodobały się jego znajomym. W tym serwisie wykorzystano także dostępne mechanizmy prologowe ( klauzule, cele).

Serwis podzielono na następujące kategorie:

Comment

Kategoria przechowująca komentarze w serwisie

  • user relacja do kategorii user
  • movie relacja do kategorii movie
movie

Kategoria zawierająca informacje o filmach przechowywanych w serwisie

  • link - atrybut prowadzący do materiału wideo
  • tags -relacja do kategorii tag pozwala klasyfikować film
  • klauzula movie - dodanie do bazy wiedzy faktu movie-tag
  • klauzula movieLike - dodanie do bazy wiedzy faktu movie - user - like/dislike
tag

Kategoria zawiera tagi, służy do klasyfikacji filmów

  • tagKey - atrybut pozwalający dokładniej opisać dany tag
user

Kategoria opisująca użytkowników serwisu

  • tag - relacja do tagów, pozwala dostosować treść do użytkownika
  • klauzula userFriend - dodanie do bazy danych faktu przyjaźnie pomiędzy dwoma osobami

Podczas próby odtworzenia wykorzystano następujące zapytania:

  • zapytanie zwracające komentarze do danego filmu
{{#ask: [[category:comment]] [[movie::prolog:semwikis:metacafe:movie:pga_tour]] }}
  • zapytanie zwracające filmy danego typu
{{#ask: [[category:movie]] [[tag::prolog:semwikis:metacafe:tag:sport]] }} 
<pl goal="movie(X,sport),write(X),nl,fail." scope="prolog:semwikis:metacafe:">
  • zapytanie zwracające filmy proponowane do obejrzenia
{{#ask: [[category:movie]] [[tag::prolog:semwikis:metacafe:tag:sport]] }}
  • zapytanie zwracające ocenione filmy przez użytkownika
{{#ask: [[category:movie]] [[tag::prolog:semwikis:metacafe:tag:sport]] }}
  • zapytanie prologowe zwracające filmy które lubię
<pl goal="movieLike(X,adam_giersz,like),write(X),nl,fail." scope="prolog:semwikis:metacafe">
  • zapytanie prologowe zwracające filmy których nie lubię
<pl goal="movieLike(X,adam_giersz,dislike),write(X),nl,fail." scope="prolog:semwikis:metacafe">
  • zapytanie prologowe zwracające filmy które lubi mój znajomy
<pl goal="userFriend(adam_giersz,X),movieLike(Y,X,like),write('moj_przyjaciel..'),write(X),write('..lubi..'),write(Y),nl,fail." scope="prolog:semwikis:metacafe:">
  • zapytanie prologowe zwracające filmy których nie lubi mój znajomy
<pl goal="userFriend(adam_giersz,X),movieLike(Y,X,dislike),write('moj_przyjaciel..'),write(X),write('..lubi..'),write(Y),nl,fail." scope="prolog:semwikis:metacafe:">
  • zapytanie prologowe zwracające listę moich znajomych
<pl goal="userFriend(adam_giersz,X),write('moj_przyjaciel..'),write(X),nl,fail." scope="prolog:semwikis:metacafe:">

TechPresentation

Adres serwisu: techpresentation

Celem tego przykładu jest próba odtworzenia funkcjonalności, serwisu techpresentation. Serwis dla użytkownika ma być źródłem informacji na temat aktualnych i planowanych konferencjach. Miejscem gdzie znajdzie materiały z odbytych konferencji, a także źródłem informacji o prelegentach.

Serwis podzielono na następujące kategorie:

City

Kategoria opisujące miasto w których odbywają się konferencje

  • zapytanie zwracające listę konferencji w danym miejscu
Conference
  • tag - relacja do kategorii tag pozwalająca kategoryzować konferencję
  • status - atrybut określający status konferencji will/was
  • city - relacja do kategorii city
  • data -atrybut określający datę konferencji
  • participant - zapytanie zwracające listę uczestników danej konferencji
  • speakears - relacja do kategorii speaker, charakteryzuje prelegentów
  • material - zapytanie zwracające listę materiałów dostępnych do danej konferencji
  • klauzula conferenceuser - przypisująca użytkowników do konferencji
  • klauzula conference - przypisująca do konferencji , tag i miasto konferencji
Material

Kategoria zawierające informację o dostępnych materiałach dla danych konferencji

  • author - relacja do kategorii speaker - opisuję twórcę materiałów
  • conference - relacja do kategorii conference - konferencja na której dany materiał został wykorzystany
Tag
  • conference - zapytanie zwracające listę konferencji o danej tematyce
  • people -zapytanie zwracające listę osób zainteresowanych daną tematyką
User

Kategoria opisująca osoby uczestniczące w konferncji

  • tag -relacja to kategorii tag, pozwala określić zainteresowania uczestnika
  • city - relacja do miejsca zamieszkania, preferowanego miejsca konferencji
  • usercity - klauzula przypisująca użytkownika do miasta
  • friend - relacja do kategorii user, pozwalająca pokazać preferencję znajomych
  • friend - klauzula opisującą znajomość użytkowników
  • zapytanie zwracające listę konferencji, którymi użytkownik może być zainteresowany
  • zapytanie zwracające listę konferencji moich znajomych
  • zapytanie zwracające listę konferencji w moim miejscu zamieszkania

Podczas próby odtworzenia wykorzystano następujące zapytania:

  • zapytanie zwracające listę konferencji w danym miejscu
<pl goal="conference(X,Y,krakow),write('konferencja..'),write(X),write('..tematyka..'),write(Y),nl,fail." scope="prolog:semwikis:techpresentation">
</pl>
  • zapytanie zwracające listę uczestników danej konferencjii
{#ask: [[category:user]] [[conference::prolog:semwikis:techpresentation:conference:phpKrakow]] }}
  • zapytanie zwracające listę materiałów dostępnych do danej konferencji
 {{#ask: [[category:material]] [[conference::prolog:semwikis:techpresentation:conference:phpKrakow]] }}
  • conference - zapytanie zwracające listę konferencji o danej tematyce
{{#ask: [[category:conference]] [[tag::prolog:semwikis:techpresentation:tag:PHP]] }}
<pl goal="conference(X,php,Y),write('Konferencja..o..php..to..'),write(X),write('..w..'),write(Y),nl,fail."  scope="prolog:semwikis:techpresentation">
</pl>
  • people -zapytanie zwracające listę osób zainteresowanych daną tematyką
{{#ask: [[category:user]] [[tag::prolog:semwikis:techpresentation:tag:php]] }}
  • zapytanie zwracające listę konferencji, którymi użytkownik może być zainteresowany
{{#ask: [[category:conference]] [[tag::prolog:semwikis:techpresentation:tag:php]][[status:=will]]}}
  • zapytanie zwracające listę konferencji moich znajomych
<pl goal="friend(annafajna,X),conferenceuser(Y,X),write('..znajomy..'),write(X),write('..konferencja..'),write(Y),nl,fail." scope="prolog:semwikis:techpresentation">
</pl>
  • zapytanie zwracające listę konferencji w moim miejscu zamieszkania
<pl goal="usercity(annakosek,X),conference(Z,Y,X),write('..konferencja..'),write(Z),write('..miasto..'),write(X),nl,fail." scope="prolog:semwikis:techpresentation">
</pl>

Podsumowanie

Podczas próby odtworzenia serwisów napotkano następujące problemy.

Prolog

Problem z wyświetlaniem wyników zapytań prologowych. Podczas próby odtworzenia serwisu zapytanie zawierające wrtie('text spacje text'), nie zwracały wyniku. Problem z sparsowaniem tekstu zawierającym białe znaki. Powodowało to nieprzejrzystą formę wyników ( wykorzystanie .. zastępujących spację). Kolejnym następstwem faktu jest to że wynik nie jest w postaci linku. Należy rozważyć napisanie, funkcji pozwalających odpowiednio sformatować wynik.

Należy rozważyć możliwość bardziej „przyjacielskiego” wprowadzenia informacji do serwisu. W tym celu można napisać funkcje w php, którą umożliwią „wizualne” ( wykorzystanie list rozwijanych, checkboxów)

Uwagi ogólne

Problem który pojawił się podczas tworzenie serwisów był związany z zmianą logiki strony (dodanie nowych relacji, atrybutów, klauzul, zapytań). Powodowało że jedna zmiana musiał być ręcznie wprowadzana na każdej stronie w danej kategorii. Dlatego należy rozważyć możliwość stworzenia w serwisie szablonów, które będę automatycznie zastosowane w każdej stronie. Dobrym przykładem, który realizują tą funkcjonalność jest Semantic Forms

Szablon powinien być wypełniony danymi, które można uzyskać z adresu url, ponieważ adres jest postaci kategoria:wartość. Pozwoli to na szybsze i efektywniejsze zarządzanie treścią na stronach wiki.

Wyniki wyświetlane w serwisie nie są przejrzyste (np. przykład z białymi znakami). Zapytań zwracające dane geograficzne mogą być wyświetlane na mapie. Wydarzenie umiejscowione w czasie powinny być wyświetlane w postaci kalendarza. Stworzenie modułu takiego jak Semantic Result Formats

Pojawił się również problem z podwójnym wprowadzeniem danych typu relacja user→friend. Jest to relacja zwrotna, która powinna być także zapisana na drugiej stronie relacji ( dotyczy to także dodawania faktów do bazy wiedzy, problem powinno wyeliminować stworzenie systemu szablonów).

Problem z manipulacją danymi zapisanymi w serwisie. Typu zarządzanie czasem, trudność z określeniem czy to wydarzenie jest aktualne, czy nastąpi w najbliższym czasie, czy dana konferencja jest w moim zasięgu ( zapytania geograficzne). Należy stworzyć „helpery”, które umożliwią manipulację tymi danymi

Spotkania

Projekt

Materiały

pl/dydaktyka/miw/2010/plcs3/start.txt · ostatnio zmienione: 2017/07/17 08:08 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0