[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
courses:pfl080 [2007/03/30 13:46]
ufal vytvořeno
courses:pfl080 [2008/01/03 13:40] (current)
smrz
Line 1: Line 1:
 ~~NOTOC~~ ~~NOTOC~~
  
-====== PFL080 [návrh] Haskell nejen pro informatiky ====== 
  
-**Vyučující:** +====== PFL080 Haskell nejen pro informatiky ======
-Otakar Smrž+
  
-středa 12:20-13:50, východní chodba ve 4. patře (jako v ZS) +[[pfl080-en|English version]]
  
 +^ Vyučující  | Otakar Smrž, Ph.D.  |
 +^ Rozsah     | 2/1 Z+Zk            |
 +^ Platnost   | od ZS 2007          |
 +^ Souřadnice | Čt 10:40--13:05 SU1 |
  
-[[http://www.cis.upenn.edu/~bcpierce/courses/advprog/index.html|Advanced programming by B. C. Pierce]] -- volná inspirace pro tento předmět 
  
-[[http://www.mff.cuni.cz/vnitro/is/sis/predmety/kod.php?kod=PFL080|Studijní informační systém]] 
  
  
-** Nabídka témat na letní semestr:** 
-  - Valence 
-      * Charakteristiha aktantů ve FGD 
-      * Alternační model slovníku 
-      * Valence u dalších slovních druhů 
-  - Koreference  
-      * Kučová et al.: Anotování koreference v Pražkém závislostním korpusu. UFAL/CKL Technical Report, TR 2003-19. 
-      * Kučová, L., Žabokrtský, Z.: Anaphora in Czech: large Data end Experiments with Automatic Anaphora Resolution. In: Preoceedings of TSD 2005, LNCS/Lecture Notes in Artificial Intelligence 3658, pp. 93-98, 2005. 
-      * Kučová, L., Hajičová, E.: Prague Dependency Treebank: Enrichment of the Underlying Syntactic Annotation by Coreferential Mark-Up. The Prague Bulletin of Mathematical Linguistics 81, pp. 23-34, 2004.  
-  - Aktuální členění (dr. Šárka Zigánová) 
-  - Význam ve FGD - synonymie, homonymie, vágnost 
-  - Slovosled a neprojektivita  
-     * Holan, T., Kuboň, V., Oliva, K., Plátek, M.: On Complexity of Word Order. In: Les grammaires de dépendance - Traitement automatique des langues, Vol 41, No 1, pp. 273-300, 2000. 
-     * Kuhlmann, M., Nivre, J.: Mildly Non-Projective Dependency Structures. In: proccedings of COLING-ACL 2006 Conference, Companion Volume, Sydney, 2006. 
-     * Havelka, J.: Projectivity in Totally Ordered Rooted Trees: An Alternative Definition of Projectivity and Optimal Algorithms for Detecting Non-Projective Edges and Projectivizing Totally Ordered Rooted Trees. The Prague Bulletin of Mathematical Linguistics 84, pp. 13-30, 2005. 
-     * Hajičová, E., Havelka, J., Sgall, P., Veselá, K., Zeman. D.: Issues of Projectivity in the Prague Dependency Treebank. The Prague Bulletin of Mathematical Linguistics 81, pp. 5-22, 2004.  
-     * Zeman, D.: Neprojektivita v Pražském závislostním korpusu (PDT).UFAL/CKL Technical Report TR-2004-22. 2004. 
-     * Hajičová, E.: K některým otázkám závislostní gramatiky. Slovo a Slovesnost 67, pp. 3-26, 2006. 
-  - Segmentace 
-     * Kuboň, V.: A Method for Analyzing Clause Complexity. The Prague Bulletin of Mathematical Linguistics 75, pp. 5-27, 2001. 
-     * Kuboň, V., Lopatková, M., Plátek, M., Pognan, P.: A Linguistically-Based Segmentation of Complex Sentences. In: Proceedings of Flairs 2007 Conference (in press). 
-  - Formální model TR ve FGD  
-     * Petkevič, V.: A New Formal Specification of Underlying Structure}. Theoretical Linguistics 21, 1995. 
-     * Lopatková, M.. Formální specifikace podkladové struktury pro popis přirozeného jazyka. In: Proceedings of Malý informatický seminář (MIS). Matfyzpress, Charles University, 2005. 
  
-===== Párování rámců ===== 
-Cílem je vytvořit vzájemné mapování rámců z našich valenčních slovníků. 
-Ve Vallexu i v PDT-Vallexu má každý rámec jednoznačný identifikátor. 
-Zajímá nás, které rámce nebo skupiny rámců si navzájem odpovídají. 
  
-  * **PDT-VALLEX** {{:courses:pdt-vallex.pdf|pdt-vallex.pdf}} 
-identifikátor (např. 'v-w113f4') je zapsán v horním indexu u rámce 
-pozor na **stará data** z adresy http://ufal.mff.cuni.cz/pdt2.0/visual-data/pdt-vallex/vallex.html **neuživat prosím** 
  
-  * **Vallex 2.0** [[http://ufal.mff.cuni.cz/vallex/2.0/|http://ufal.mff.cuni.cz/vallex/2.0/]] 
-identifikátory (například 'blu-v-pamatovat-se-1') jsou pro normální smrtelníky neviditelné. 
-pokud podržíte myš nad číslem rámce (v rámečku) identifikátor se objeví jako tooltip 
  
-**idéčka pro lepší kopírování si můžete zobrazit i následovně**: 
-  * v opeře si zvolte View/Style/User mode 
-  * ve firefoxu je nejlepší do souboru chrome/userContent.css v adresáři vašeho profilu zapsat <code>.invisible {display:inline!important;}</code> 
-  * v IE si předchozí css kód nastavíte podle [[http://webdesign.about.com/od/css/ht/htcssuseriewin.htm|tohoto návodu]] 
-  * ve firefoxu si také můžete následující bookmarklet uložit to bookmarků a vyvolat ho na stránce s vallexem 2.0 <html> 
- (<a href="javascript:(function(){var c = '.invisible {display:inline;}';var n;n=window.frames[3].document.createElement('link');n.rel='stylesheet';n.type='text/css';window.frames[3].document.getElementsByTagName('head')[0].appendChild(n);if(window.opera) n.href='javascript:unescape(\''+escape(c)+'\')'; else if(navigator.userAgent.indexOf('MSIE')!=-1) n.href='javascript:unescape(\''+escape(escape(c))+'\')';else n.href='data:text/css,'+escape(c);})()">showID</a> bookmarklet) 
-</html> 
  
-===== Rámce k párování ===== 
  
-Přihlašte se pomocí tlačítka v levém menu, vyberte si skupinu sloves a připište k ní své jméno. Odhalená párování pak zapisujte na stránky jednotlivých sloves. 
  
-^ Skupina 1 (Jan Ptáček) ^ ^ 
-| [[lexaling:vidět (se)]] | 8+1 | 
-| [[lexaling:přijít, přicházet]] | 21 | 
-| [[lexaling:uvést, uvádět]] | 7 | 
-| [[lexaling:zůstat, zůstávat]] | 14 | 
-| [[lexaling:padat]] | 23 | 
-| [[lexaling:vytahovat, vytáhnout (se)]] | 13+3 | 
-| [[lexaling:platit]] | 9 | 
-| [[lexaling:změnit (se)]] | 3+3 | 
-| [[lexaling:jednat (se)]] | 4+1 | 
-| [[lexaling:otevřít, otevírat, otvírat (se)]] | 2+2 | 
  
  
Line 80: Line 26:
  
  
-=====  ===== 
-^Skupina 2 (Martin Popel)^^ 
-| [[lexaling:hrát (si)]] | 8+2 | 
-| [[lexaling:dělat (se, si)]] | 23+1+2 | 
-| [[lexaling:říkat, říci (si)]] | 8+1 | 
-| [[lexaling:najít, nacházet (se)]] | 4+3 | 
-| [[lexaling:ležet]] | 13 | 
-| [[lexaling:táhnout]] | 20+7 | 
-| [[lexaling:dojít, docházet]] | 12 | 
-| [[lexaling:stačit (I,II)]] | 5 | 
-| [[lexaling:dokázat, dokazovat]] | 3+1 | 
-| [[lexaling:rozhodnout, rozhodovat (se)]] | 2+2 | 
  
-  * Významy, které chyběly ve Vallexu, jsem přidal a označil //a, b, c,...// 
-  * Místo významů, které chyběly v PDT-V., jsem nechal prázdnou buňku v tabulce. Stejně se v PDT-V. stává, že některý význam (rámec) u dokonavého tvaru je a u nedokonavého chybí (a naopak) - tyto významy jde automaticky doplnit podle Vallexu. 
-  * Také jsem narazil na případy, kdy si rámce v podstatě odpovídají, jen je třeba doplnit/pozměnit funktory. Těchto případů je dost, ale jen v několika jsem změnu naznačil vallexím identifikátorem s připojeným písmenem (např. blu-v-říci-říct-říkat-7a) a vysvětlením v popisu. 
  
  
-=====  ===== 
-^ Skupina 3 (Pavel Češka) ^  ^ 
-| [[lexaling:získat, získávat (si)]] | 6+1 | 
-| [[lexaling:nechat, nechávat]] | 16+1+3 | 
-| [[lexaling:vydat, vydávat (se)]] | 8+2 | 
-| [[lexaling:přijmout, přijímat]] | 10 | 
-| [[lexaling:vyjít, vycházet (si)]] | 14+1 | 
-| [[lexaling:ukázat, ukazovat (se)]] | 5+3 | 
-| [[lexaling:cítit (se)]] | 4+3 | 
-| [[lexaling:zdát se]] | 5 | 
-| [[lexaling:začínat, začít (si)]] | 3+1 | 
-| [[lexaling:znát]] | 2+2 | 
  
-=====  ===== +===== Osnova =====
-^ Skupina 4 (David Mareček) ^  ^ +
-| [[lexaling:patřit (se), I, II]] | 5+1+2 | +
-| [[lexaling:vzít, brát (se,si)]] | 28+2+8 | +
-| [[lexaling:vrátit, vracet]] | 4+3 | +
-| [[lexaling:mluvit]] | 10 | +
-| [[lexaling:natáhnout, natahovat (se)]] | 13+5 | +
-| [[lexaling:pracovat]] | 8 | +
-| [[lexaling:čekat (se)]] | 4+1 | +
-| [[lexaling:skončit]] | 6 | +
-| [[lexaling:tvrdit]] | 1+3 | +
-| [[lexaling:vytvořit, vytvářet (se)]] | 2+1 |+
  
-  * používám stejného značení jako Martin+11.10.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-01.pdf|Introduction -- Types and Polymorphism -- Laziness]]
  
-=====  ===== +18.10.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-02.pdf|"Why FP Matters" -- Higher-Order Functions -- Tree Structures]]
-^ Skupina 5 (Kateřina Topilová) ^  ^ +
-| [[lexaling:vést (se, si)]] | 8+2+1 | +
-| [[lexaling:dávat, dát (se, si)]] | 32+6+4 | +
-| [[lexaling:vypadat I,II, vypadávat, vypadnout]] | 7+3 | +
-| [[lexaling:pouštět, pustit (se,si)]] | 13+4+1 | +
-| [[lexaling:stavět I,II]] | 14+10+1+2 | +
-[[lexaling:představovat, představit (si)]] 5+2 | +
-| [[lexaling:počítat]] | 6 | +
-| [[lexaling:dodat, dodávat]] | 5 | +
-| [[lexaling:psát]] | 4 | +
-| [[lexaling:pokračovat, pokročit]] | 3 |+
  
-=====  ===== +25.10.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-03.pdf|"Haskell and XML" -- Type Classes -- Pretty-Printing]]
-^ Skupina 6 (Petra Hoffmannova)^ +
-[[lexaling:udělat (se)]] 7+3 | +
-| [[lexaling:mít (se)]] | 22+3 | +
-| [[lexaling:myslit, myslet (si)]] | 7+1 | +
-| [[lexaling:chytat, chytnout, chytit]] | 13+6 | +
-| [[lexaling:jít]] | 14 | +
-| [[lexaling:dosáhnout, dosahovat]] | 6 | +
-| [[lexaling:připravit, připravovat (se)]] | 4+1 | +
-| [[lexaling:žít I, II]] | 4+2 | +
-| [[lexaling:působit]] | 4 | +
-| [[lexaling:věřit]] | 3 |+
  
-=====  ===== +01.11.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-04.pdf|"A Prettier Printer" -- Monads -- Parsing]]
-^ Skupina 7 ^  ^ +
-| [[lexaling:házet, hoditI, hoditII se]] | 12+5 | +
-| [[lexaling:pokládat, položit (se)]] | 12+3 | +
-| [[lexaling:postavit (se, si)]] | 12+6+1 | +
-| [[lexaling:přecházet, přejít, přechodit]] | 12 | +
-| [[lexaling:tlouci, tlouct (se)]] | 12+4 | +
-| [[lexaling:činit (se)]] | 11+1 | +
-[[lexaling:držet (se)]] 11+6 | +
-| [[lexaling:koukat, kouknout (se)]] | 11+6 | +
-| [[lexaling:nést (se)]] | 11+2 | +
-| [[lexaling:scházet, sejít (se)]] | 11+2 | +
-| [[lexaling:skládat, složit (se)]] | 11+5 | +
-| [[lexaling:stahovat, stáhnout (se)]] | 11+6 | +
-| [[lexaling:svádět, svést]] | 11 |+
  
 +08.11.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-05.pdf|"Monadic Parsing in Haskell" -- Monad Laws -- Input/Output]]
  
-===== Q&===== +15.11.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-06.pdf|"Cabal" -- "Haddock" -- Functional Dependencies]] 
-V pdt-vallexu mi nefunguje hledání zřejmě kvůli kódování češtiny, + 
-neví kdojak to opravitptacek+22.11.2007    [[http://ufal.mff.cuni.cz/~smrz/HaskellDSL/haskell-dsl-07.pdf|"Fun with FD" -- Curry-Howard Correspondence -- Existential Types]] 
 + 
 +29.11.2007    LECTURE CANCELLED 
 + 
 +06.12.2007    "Proofs are Programs" -- Combinatory Categorial Grammar 
 + 
 +13.12.2007    "Using Types to Parse Natural Language" -- Finite Maps -- Arrays 
 + 
 +20.12.2007    "Functional Morphology" -- Functional Queues -- Red-Black Trees 
 + 
 +03.01.2008    Haskell versus OCaml -- Projects -- Darcs 
 + 
 +10.10.2008    QuickCheck -- MapReduce et al. -- Concluding Notes 
 + 
 +===== Anotace ===== 
 + 
 +[[http://www.haskell.org/|Haskell]] je čistě funkcionální programovací jazyk. Jeho studium vybízí k hledání souvislostí mezi různými oblastmi informatiky, logiky i lingvistiky. Haskell je ale též moderní prostředek pro přesný, přitom stručný a srozumitelný popis ření obecných problémů. 
 + 
 +V přednášce se budeme věnovat výrazným rysům jazyka a zaměříme se na jeho aplikace v podobě tzv. doménově specifických jazyků. Ve cvičeních budou studenti diskutovat své referáty z odborné literatury. 
 + 
 +Předmět je určen pro studenty magisterského nebo doktorandského studia zmiňovaných oborů. Absolvování [[http://is.mff.cuni.cz/sis/predmety/index.php?do=predmet&kod=NPRG005|PRG005]] není ani podmínkou, ani překážkou účasti. S kterými probíranými tématy se lze setkat i v [[http://is.mff.cuni.cz/sis/predmety/index.php?do=predmet&kod=NPRG040|PRG040]]příp. [[http://is.mff.cuni.cz/sis/predmety/index.php?do=predmet&kod=NAIL006|AIL006]] a [[http://is.mff.cuni.cz/sis/predmety/index.php?do=predmet&kod=NAIL078|AIL078]]. V našem případě bude míra teoretického detailu věcí dohody a složení referátů bude záviset na zájmu studentů. 
 + 
 + 
 + 
 +===== Literatura ===== 
 + 
 +  * Hal Daumé III. 2002--2006. //[[http://www.cs.utah.edu/~hal/docs/daume02yaht.pdf|Yet Another Haskell Tutorial]]//
 +  * Paul Hudak. 2000. //The Haskell School of Expression: Learning Functional Programming through Multimedia//. Cambridge University Press. 
 +  * Paul Hudak, John Peterson, Joseph Fasel. 2000. //[[http://www.haskell.org/tutorial/|A Gentle Introduction to Haskell]]//
 +  * John Hughes. 1984. //[[http://www.cs.chalmers.se/~rjmh/Papers/whyfp.html|Why Functional Programming Matters]]//
 + 
 +  * Richard A. Frost. 2006. //[[http://portal.acm.org/citation.cfm?id=1177353|Realization of Natural Language Interfaces Using Lazy Functional Programming]]//. ACM Computing Surveys, Volume 38, Issue 4. 
 +  * Peter Ljunglof. 2002. //[[http://www.ling.gu.se/~peb/pubs/p02-lic-thesis.pdf|Pure Functional Parsing. An Advanced Tutorial]]//. Licenciate thesis, Goteborg University & Chalmers University of Technology. 
 +  * Philip Wadler. 2003. //[[http://homepages.inf.ed.ac.uk/wadler/papers/prettier/prettier.pdf|A Prettier Printer]]//. In Jeremy Gibbons and Oege de Moor, editors, //The Fun of Programming//, Cornerstones of Computing, pages 223--243. Palgrave Macmillan, March 2003. 
 + 
 + 
 +===== Sylabus ===== 
 + 
 +  - Základní funkce a datové typy 
 +  - Výpočetní model a lambda kalkulus 
 +  - Rekurze, abstrakce, funkce vyššího řádu 
 +  - Polymorfní typy versus třídy typů 
 +  - Monády a jejich využití 
 +  - Parsing a pretty-printing 
 +  - Doménově specifické jazyky 
 +  - Související teoretické otázky 
 +  - Užitečné nástroje pro programátory 
 + 
 + 
 + 
 +===== Odkazy ===== 
 + 
 +[[http://www.cis.upenn.edu/~bcpierce/courses/advprog/|Advanced Programming by Benjamin C. Pierce]] -- volná inspirace pro tento předmět 
 + 
 +[[http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/|Advanced Functional Programming at Saarbrücken]]  
 + 
 +[[http://ufal.mff.cuni.cz/~smrz/FunnyThing/impressive-haskell.pdf|"Impressive Haskell" by Otakar Smrž]] 
 + 
 +[[http://is.cuni.cz/studium/predmety/index.php?do=predmet&kod=NPFL080|Studijní informační systém]]
  
-  * Také mi to u diakritiky nefunguje. Mohu se úplně mýlit, ale vypadá to, jako by byla použita technologie minulého století: 7bitové (tedy jen ascii) písmo a samostatné akcenty nalepene TeXem nad patřičné znaky. Vypadá to pak jako čeština, ale v podstatě není. Hledání akcentovaných znaků tedy funguje dobře (hledá), leč nic nenajde (nejsou tam). Oprava v LaTexovém zdrojáku by neměla být příliš složitá. --P. Straňák 

[ Back to the navigation ] [ Back to the content ]