To jest stara wersja strony!


Marcin Juszkiewicz,

prolog wiki plugin, semantic wiki research, comparison



<swp goal="spotkanie(X)" scope="pl:miw"/>
swipl -f -g 'spotkanie(X),write(X),halt.'




  • prototyp


  • cache?


  • beta pluginu do zainst
  • zarys sprawozd: cel, specyfi (fun), możliwe realizacje+projekt, implementacja, problemy+uwagi, etc..
  • opis koncepcji cache w sprawozd




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.1212491924.txt.gz · ostatnio zmienione: 2019/06/27 15:58 (edycja zewnętrzna) Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0