Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:miw08_dokuviz [2008/05/21 21:42] miw |
pl:miw:miw08_dokuviz [2019/06/27 15:50] (aktualna) |
====== Opis ====== | ====== Opis ====== |
| __**Projekt zakończony**__ |
| |
Michał Kotra, <mkotra@student.agh.edu.pl> | Michał Kotra, <mkotra@student.agh.edu.pl> |
| |
[[:GraphViz]] plugin dla Dokuwiki, renderowanie diagramow z zamieszczonego w wiki kodu DOT oraz plikow umieszczanych w wiki. | [[misc:GraphViz]] plugin dla Dokuwiki, renderowanie diagramow z zamieszczonego w wiki kodu DOT oraz plikow umieszczanych w wiki. |
| |
====== Spotkania ====== | ====== Spotkania ====== |
* jak zadawać scope, co może Panu przeszukać wiki? regexp | * jak zadawać scope, co może Panu przeszukać wiki? regexp |
* defaultowe wypisywanie w celu? | * defaultowe wypisywanie w celu? |
| <code> |
<prolog goal="kobieta(X),write(X),nl,fail"> | <prolog goal="kobieta(X),write(X),nl,fail"> |
<prolog goal="kobieta(X)" wrt="y"> | <prolog goal="kobieta(X)" wrt="y"> |
| </code> |
* mieszana składnia wiki... -> msc | * mieszana składnia wiki... -> msc |
| |
| |
| |
| |
| |
| ===== Prolog plugin dla DokuWiki===== |
| |
| Kolejnym celem było zbudowanie pluginu dla DokuWiki umożliwiającego uruchamianie kodu prologu. Plugin miał umożliwić podanie bazy wiedzy w postaci, kodu, adresu url, lub pliku zamieszczonego w wiki, oraz celu. Po zapisaniu strony miał zostać wyświetlony efekt działania. Dodatkowo należało umożliwić cache'owanie kodu prologu zgromadzonego na stronach DokuWiki, oraz zadawanie przestrzeni nazw (również w postaci wyrażeń regularnych), która miała zostać przeszukana. |
| |
| ===== Instalacja pluginu===== |
| * plugin dostarczony jest w postaci archiwum TAR. Instalacja polega na wskazaniu odpowiedniej lokalizacji w managerze pluginów Dokuwiki. Dalszy proces instalacji przebiega automatycznie. |
| |
| ===== Sposób działania ===== |
| * aby kod Prologu został przetworzony należy umieścić go pomiędzy odpowiednimi tagami, oraz zadać goal i określić co chcemy wypisać: |
| <code xml> |
| <prolog goal="kobieta(X),write(X),nl,fail"> |
| kobieta(kasia). |
| mezczyzna(jasiu). |
| </prolog> |
| </code> |
| |
| * istnieje również możliwość podania pliku w wiki: |
| <code xml> |
| <prolog goal="kobieta(X),write(X),nl,fail" file="pl:miw:test.pl"> |
| </prolog> |
| </code> |
| |
| * lub adresu url: |
| <code xml> |
| <prolog goal="kobieta(X),write(X),nl,fail" url="http://costam.org/test.pl"> |
| </prolog> |
| </code> |
| |
| * dodatkowa funkcjonalność to możliwość cache'owania zgromadzonego na poszczególnych stronach kodu prologu, i określenie przestrzeni która ma zostać przeszukana. Przy podawaniu scope można stosować wyrażenia regularne, tak jak w przypadku grepa. PRzy czym ".*" określa całą przestrzeń wiki: |
| <code xml> |
| <prolog goal="kobieta(X),write(X),nl,fail" scope="pl:miw:proj.*08"> |
| </prolog> |
| </code> |
| |
| * jeżeli chcemy jedynie zapamiętać w cache kod należy zastosować następującą składnię: |
| <code xml> |
| <prolog cache="true"> |
| kobieta(anna). |
| </prolog> |
| </code> |
| |
| |
wiki/data/media/graphviz | wiki/data/media/graphviz |
Można również użyć opcji NOCACHE -> http://wiki.splitbrain.org/wiki:caching | Można również użyć opcji NOCACHE -> http://wiki.splitbrain.org/wiki:caching |
| |
| |
| |
| ==== Testy ==== |
| [[pl:miw:miw08_dokuviz:testyprolog]] |
| |
| [[pl:miw:miw08_dokuviz:testyprolog2]] |
| |
====== Materiały ====== | ====== Materiały ====== |