Q是一个数据语言,目前被限定为一个数据定义语言(DDL)。Q采用JSON/XML模式,其配备了一个专用的用于定义数据的类型系统,和一个称为“信息合约”的理论,用于程序和数据交换语言之间的互操作。
Q可以应用在很多需要获取数据的地方,比如:
如果要获取医疗系统中一些病人的诊断信息,下面显示了典型的JSON数据格式文档和采用Q语言的获取方式。
{
"patient": {
"id": "27b3ceb0-7e10-0131-c9f1-3c07545ed162",
"name": "Marcia Delgados",
"dob": "1975-11-03"
},
"symptoms": [
"Nausea",
"Fever"
],
"temperature": 39.5
}Temp = <celsius> Real( f | f >= 33.0 and f <= 45.0 )
{
patient : {
id : Uuid,
name : String( s | s.size > 0 ),
dob : Date( d | alive: d.year > 1890 ),
},
symptoms : [ String( s | s.size > 0 ) ],
temperature : Temp
}目前Q语言已经有了一些实现:
原文来自:ITeye