Stanford nlp 在Rascal中使用外语API?

Stanford nlp 在Rascal中使用外语API?,stanford-nlp,rascal,Stanford Nlp,Rascal,有没有办法在Rascal中调用外语API?特别是,我一直在考虑具有Java API的应用程序。Rascal具有出色的Java API。本质上,外部函数定义为一个普通的Rascal函数,前缀为关键字java和一个属性javaClass,该属性定义了实现该函数的类 以Lists上的size函数为例。在Rascal的列表中模块大小定义如下: @javaClass{org.rascalmpl.library.Prelude} public java int size(list[&T] lst);

有没有办法在Rascal中调用外语API?特别是,我一直在考虑具有Java API的应用程序。

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

List
s上的
size
函数为例。在Rascal的
列表中
模块
大小
定义如下:

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

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

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