To jest stara wersja strony!
Opis
Projekt
Pluginy do zainstalowania
Sprawozdanie
Celem projektu było stworzenie mechanizmu semantycznej wikipedii.
Semantyczna wikipedia to taka która potrafi sama wyciągać „znaczenie”
poszczególnych zdań, i tworzy linki (bądź wyciąga informacje) z innych
stron, haseł zawartych w Wiki. W tym celu trzeba było zastosować, lub
napisać maszynę wnioskującą. W moim projekcie rolę takiej maszyny pełni
Prolog. Zostało obsłuzenie poszczególnych Tagów w wikipedii. Tak więc
fakty będziemy wprowadzać kodem:
<swp>fakt</swp>
Który następnie mozemy odczytać na dowolnej ilości stron. Aby
zrealizować odczyt faktów naleŜy skorzystać z Tagu:
<swp goal=”cel” scope=”przestrzen” />
Gdzie przestrzeń jest to zbiór stron, lub poszczególna strona z której
fakty są w obrębie naszego zainteresowania.
Swój projekt zrealizowałem na bazie dwóch pluginów. W jednym
nazwanym „swpinput” obsługuję zdarzenia wprowadzenia, lub zmiany
jakiegoś faktu, w drugim „swp” obsługuję „wyciąganie” poszczególnych
informacji z określonej przestrzeni. Takie podejście będzie uzasadnione na
poziomie cacha. Cachowanie stron na poziomie Wiki było najpowaŜniejszym
problemem z jakim miałem do czynienia podczas realizacji projektu.
Problem polegał na tym iŜ strona która wyciągała dane informacje z innej
strony była cachowana przez Wiki, natomiast na stronie z której pobierane
był informacje, mogły one zostać zmienione.
Spotkania
<swp>
spotkanie(data(3.4.8)).
</swp>
<swp goal="spotkanie(X)" scope="pl:miw"/>
swipl -f mojpliktymcz.pl -g 'spotkanie(X),write(X),halt.'
08.03.04
080318
080408
080527
080603
beta pluginu do zainst
zarys sprawozd: cel, specyfi (fun), możliwe realizacje+projekt, implementacja, problemy+uwagi, etc..
opis koncepcji cache w sprawozd
Projekt
Sprawozdanie
Materiały
Wybrane Wikis
Propozycja Dr Wojnickiego
To support AI teaching process and idea of a Semantic Wiki based on Prolog emerged.
It would support running Prolog code on the web server while rendering a wiki page.
Contents of such a page consists of a human-readable text, and optionally images, attachments etc, and a machine-readable and automatically interpreted knowledge expressing what the page is about.
To support Prolog programming within the wiki there is an ongoing prototype implementation of a Prolog inference engine embedded into a DokuWiki system working as its extension.
It is called Prolog DokuWiki.
As a result, in addition to text-based human-readable contents, there are Prolog clauses embedded into wiki pages.
These clauses can be automatically interpreted upon requesting the page.
Results of the interpretation (inference) process are directly rendered into the page.
This constitutes a Semantic Wiki System based on Prolog.
It is similar, to some extent, to the semantic wiki systems currently available (Semantic MediaWIki, IkeWiki, SweetWiki).
Other semantic wiki systems use XML to annotate gathered information semantically while Prolog DokuWiki uses Prolog language clauses.
Furthermore, the clauses are interpreted upon displaying a given page.
The extension introduces a new element indicated by a tag called prolog
.
Any text within the element is treated as Prolog clauses, it is interpreted by an externally launched Prolog inference engine.
As the inference engine SWI-Prolog is used.
Upon rendering a page with a prolog
element, the wiki system launches the inference engine which process clauses within the tag.
Standard output of the inference process is displayed in place of the element.
There are special predicates which allow populating knowledge base with clauses from arbitrary chosen pages or namespaces.
There is a wiki/1
predicate defined which triggers the inference engine to interpret clauses embedded within other wiki pages.
If the first argument is a valid wiki page, the predicate browses it and interprets (consults) all clauses within prolog
tags on this page.
If the argument is a namespace it browses all pages from this namespace and interprets all clauses found within the pages.
There is another predicate wiki_recursive/1
which interprets clauses from all pages in the given as a first argument namespace and all namespaces within it recursively.