Download Jordi Saludes, UPC MOLTO 1st meeting, Varna

Document related concepts
no text concepts found
Transcript
Using GF from Python
Jordi Saludes, UPC
MOLTO 1st meeting,Varna
miércoles 8 de septiembre de 2010
Goal
miércoles 8 de septiembre de 2010
Goal
• Part of WP2
miércoles 8 de septiembre de 2010
Goal
• Part of WP2
• To use gf from the NLTK
miércoles 8 de septiembre de 2010
Goal
• Part of WP2
• To use gf from the NLTK
• …which is python-based
miércoles 8 de septiembre de 2010
Goal
• Part of WP2
• To use gf from the NLTK
• …which is python-based
• Mainly STM
miércoles 8 de septiembre de 2010
Plugin
miércoles 8 de septiembre de 2010
Plugin
• python
miércoles 8 de septiembre de 2010
C
Plugin
• python
• FFI layer: C
miércoles 8 de septiembre de 2010
C
Haskell
Plugin
C
• python
Haskell
• FFI layer: C
• Inspired by Kevin Kofler on c-bindings
miércoles 8 de septiembre de 2010
Features
miércoles 8 de septiembre de 2010
Features
• Reading pgf modules
miércoles 8 de septiembre de 2010
Features
• Reading pgf modules
• Parsing/linearization
miércoles 8 de septiembre de 2010
Features
• Reading pgf modules
• Parsing/linearization
• Breaking down the structure of a gf
expression.
miércoles 8 de septiembre de 2010
The C side
• GFpgf, GFLang, GFType, GFTree
• Each struct stores a opaque reference to a
haskell structure.
miércoles 8 de septiembre de 2010
The Haskell side
miércoles 8 de septiembre de 2010
The Haskell side
• Storable class
miércoles 8 de septiembre de 2010
The Haskell side
• Storable class
• therning.org/ magnus » hsc2hs
miércoles 8 de septiembre de 2010
The Haskell side
• Storable class
• therning.org/ magnus » hsc2hs
• A Haskell class where you define:
miércoles 8 de septiembre de 2010
The Haskell side
• Storable class
• therning.org/ magnus » hsc2hs
• A Haskell class where you define:
• peek
miércoles 8 de septiembre de 2010
The Haskell side
• Storable class
• therning.org/ magnus » hsc2hs
• A Haskell class where you define:
• peek
• poke
miércoles 8 de septiembre de 2010
Demo
miércoles 8 de septiembre de 2010
Haskell: f a1 a2 …
miércoles 8 de septiembre de 2010
Haskell: f a1 a2 …
miércoles 8 de septiembre de 2010
Haskell: f a1 a2 …
Python:[f, a1, a2, …]
miércoles 8 de septiembre de 2010
Haskell: f a1 a2 …
Python:[f, a1, a2, …]
CId
miércoles 8 de septiembre de 2010
Expr
Expr
miércoles 8 de septiembre de 2010
• Features
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
• Unicode
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
• Unicode
• Only for Linux
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
• Unicode
• Only for Linux
• depends on ghc
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
• Unicode
• Only for Linux
• depends on ghc
• Integration into nltk core?
miércoles 8 de septiembre de 2010
• Features
• parsing/linearizing
• Expression structure
• Unicode
• Only for Linux
• depends on ghc
• Integration into nltk core?
miércoles 8 de septiembre de 2010