To jest stara wersja strony!


Opis

Marcin Juszkiewicz, monitorr@interia.pl

prolog wiki plugin, semantic wiki research, comparison

Projekt

Pluginy do zainstalowania

Sprawozdanie

  • Cel

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.

  • Realizacja

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

  • prototyp

080527

  • cache?

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.

pl/miw/miw08_semantic_wiki.1213206674.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (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