Skip to content

Latest commit

 

History

History
38 lines (28 loc) · 1.53 KB

File metadata and controls

38 lines (28 loc) · 1.53 KB

Aula 32

Continuei a falar do projeto de uma biblioteca em Common Lisp para manipular arquivos CoNLL-U. A biblioteca está agora no repositório:

https://github.com/own-pt/cl-conllu

Aprendemos no livro do SICP que construir camadas de abstração é uma importante disciplina de programação que permite modularidade e isolamento de partes do sistema. O meu código acima respeita esta modularidade? Onde poderia ser melhor?

Em outras palavras, se eu decidir mudar a forma como represento sentenças e tokens, digamos, ao invés de usar classes usar apenas hash-tables, quanto do resto do código do arquivo read-write.lisp seria afetado?

E se eu resolvesse experimentar representar estas duas estruturas de dados como structures?

(defstruct token 
  id form lemma upostag xpostag feats head deprel deps misc)

(defstruct sentence
  start meta tokens)

O que precisaria ser mudado? Quais as partes mais difícieis de adaptar?

Agora que as funções de leitura e escrita de arquivos CoNLL-U estão prontas, seria interessante começarmos a pensar em funções mais interessantes de validação de sentenças e filtro de uma lista de sentenças segundo algum critério. Uma inspiração inicial pode ser a seção de ‘query’ do cap 3 PCL.