在Rascal中使用外语API?

时间:2018-01-06 12:22:31

标签: stanford-nlp rascal

有没有办法在Rascal中调用外语API?特别是,我一直在考虑具有Java API的Stanford Core NLP

1 个答案:

答案 0 :(得分:2)

Rascal拥有出色的Java API。本质上,外部函数被定义为以关键字java为前缀的普通Rascal函数和定义函数实现的类的属性javaClass

size的{​​{1}}函数为例。在Rascal中,List模块List的定义如下:

size

在java类@javaClass{org.rascalmpl.library.Prelude} public java int size(list[&T] lst); 中,方法org.rascalmpl.library.Prelude的实现方式如下:

size

请注意,所有Rascal值都实现为(不可变的)public IValue size(IList lst) { return values.integer(lst.length()); } s并且某些封送是不可避免的。

最后的注意事项:与NLP库的接口非常有趣(并且实际上在我们的清单上),但要注意保留Rascal的不可变数据精神和主要功能解决方案。在为这样的库设计Rascal API时必须考虑到这一点。