科大讯飞语义开放平台《abnf文法规范》1科大讯飞语义开放平台——abnf文法规范科大讯飞语义开放平台《abnf文法规范》2目录目录.
2第1章规范概述41.
1.
基本概念41.
2.
名词解释61.
3.
文档注释6第2章文法档头部.
72.
1.
简介.
72.
2.
ABNF文档自标识头.
72.
3.
引用文件声明.
82.
4.
类型.
92.
5.
ROOT规则.
92.
6.
文档头部结束标记92.
7.
词典资源文件格式9第3章文法档正文.
113.
1.
综述.
113.
2.
终结词113.
3.
变量分类123.
3.
1.
显式和隐式变量的效果.
123.
3.
2.
变量引用133.
3.
2.
1.
本地引用.
133.
3.
2.
2.
外部引用.
143.
3.
2.
3.
转义字符变量和通配符.
143.
3.
2.
4.
声明变量.
153.
4.
运算符163.
4.
1.
规则声明引用符——$'和163.
4.
2.
定义符—163.
4.
3.
注释符——'//'或'163.
4.
4.
语义符—163.
4.
5.
串连——空格符、TAB.
173.
4.
6.
选择—173.
4.
7.
可选——中括号173.
4.
8.
分组——小括号173.
4.
9.
重复——尖括号'183.
4.
10.
语义—193.
4.
11.
权重——反引号'193.
4.
12.
文法单元.
19科大讯飞语义开放平台《abnf文法规范》33.
4.
13.
语义信息.
203.
4.
14.
权重(分值)详细解释.
223.
4.
14.
1.
通配符默认权重:223.
4.
14.
2.
通配符自定义权重.
223.
4.
14.
3.
使用举例:233.
4.
15.
运算符、辅助符的优先级.
23第4章文法规范的其他说明254.
1.
1.
不能写的结构.
254.
1.
2.
语义中的字符.
264.
1.
3.
文法书写的方法.
26科大讯飞语义开放平台《abnf文法规范》4第1章规范概述《搜索句文法规范》基于万维网联盟(WorldWideWebConsortium简称W3C)的语音识别语法规范1.
0标准(简称SRGS1.
0)进行了删减、修改和扩展,采用ABNF格式;配套的有从文法档到解析网络的编译工具.
标准的ABNF(AugmentedBNFsyntax)格式的SRGS1.
0语法文档不一定能在编译工具上正确运行.
正确编写的文法档经编译工具处理可生成匹配网络,网络作为匹配引擎的输入,可由匹配引擎对用户输入进行匹配.
因此,文法档的编写是句文法匹配的基础,本文档提供给用户的搜索句文法的开发指南,用户阅读本指南可以迅速的开发出自己需要的文法;文档的最后给出了支持本规范的编译工具的使用说明.
相关参考信息:1.
SRGS1.
0语法规范:http://www.
w3.
org/TR/speech-grammar/2.
ABNF格式文档:http://www.
ietf.
org/rfc/rfc2234.
txt1.
1.
基本概念文法的目的:文法等同于正则表达式,它定义了一个句子集合.
解码器将根据文法生成的集合,对输入的句子进行一个搜索句文法主要包含两部分:文档头部和文档正文,后续章节将对它们详细阐述,下面给出一个简单的文法例子:开发一个文法用来匹配话费查询类的用户输入,可有如下定义:#ABNF1.
0UTF-8;roottask_final;#ABNFHEAD-END;$want=要|想;$查询=查|查询;科大讯飞语义开放平台《abnf文法规范》5$费用=手机费|话费;$task_final=[我][$want]$查询$费用;以上实现了一个简单的话费查询文法,涵盖了如下可能的说法:查手机费查话费查询手机费查询话费我查手机费我查话费我查询手机费我查询话费要查手机费要查话费要查询手机费要查询话费想查手机费想查话费想查询手机费想查询话费我要查手机费我要查话费我要查询手机费我要查询话费科大讯飞语义开放平台《abnf文法规范》6我想查手机费我想查话费我想查询手机费我想查询话费凡是以上范围中的任意一个,均可以被系统匹配.
如果用户输入不在上述范围之内,会被"拒识".
1.
2.
名词解释空白符:空格、回车、换行、横/竖向制表符.
1.
3.
文档注释文发文档中可以使用注释,形式如下(同C++编程语言)://C++/Java-stylesingle-linecomment/*C/C++/Java-stylecomment*/科大讯飞语义开放平台《abnf文法规范》7第2章文法档头部2.
1.
简介文档头部定义了文档的各种属性,主要包括:ABNF文档自标识头(Self-IdentifyingHeader)模式(Mode)type元数据(Meta)引用文件声明部分类型说明type文档头部结束标记文档头部必须出现在文档的开头部分,文档头部的每一语句必须以英文半角分号;标记语句结束.
从现在开始,如果不特别说明,所有的符号均为英文半角.
一个典型的头部如下:2.
2.
ABNF文档自标识头ABNF文档自标识头(Self-IdentifyingHeader),在所有语句之前强制出现,定义了文档的版本和编码格式,形式如下:#ABNFVersionNumberCharEncoding;其中:科大讯飞语义开放平台《abnf文法规范》8VersionNumber指定文法档版本号,与相应的编译工具对应.
CharEncoding指定文法档字符编码类型,目前只支持UTF-8,如果文法是gbk编码将不会编译.
目前必须书写为:#ABNF1.
0UTF-8;不能有任何不同.
2.
3.
引用文件声明3.
0扩充了引用的功能,即可以引用其他文法,也可以引用词典源文件,也可以引用声明文件.
必须使用#include,格式和C语义一致,并用分号结尾,否则会出错.
同时提供了运行时"加载关键字",此关键词和解析器相匹配.
起资源检查的作用.
#ABNF1.
0UTF-8;.
.
.
.
#includeCommon\common.
abnf";#includelst\singer_name.
lst";#mount"video_name";#ABNFHEAD-END;命令名功能备注#mount#mount"词典的逻辑名称";声明解码时需要的词典资源.
解码时会检查输入,查找有没有符合该逻辑名的词典资源存在.
编译时并不要求该资源存在.
一般用于同一个文法,加载不同的定制资源在资源头部会有额外记录3.
0新增#include#include"引用的文法或者词典的相对路径"编译时会检查该路径上的文件,必须存在引用的资源会和文法网络合成一个文件,比如引用词典,词典不会单独生成一个科大讯飞语义开放平台《abnf文法规范》92.
4.
类型type模式名一般不需要额外指定2.
5.
Root规则2.
6.
文档头部结束标记文档头部的最后,必须有结束标记语句(指明文档头部的结束):#ABNFHEAD-END;如果是lst文件,则为#DICTHEAD-END;2.
7.
词典资源文件格式词典lst文件格式简单:头部是:#DICT1.
0UTF-8;#DICTHEAD-END;文件,而包含于资源内部用法功能备注root规则名;将root指定的规则,编译成二进制文法网络并输出.
规则名不要加$,只名字即可此功能在检查子文法是否正确时很便利,只需指定root为该子文法规则即可规则名不需要加$前缀此为3.
0新增句式科大讯飞语义开放平台《abnf文法规范》10体:格式与前半本相同.
另外,文件最后一行必须加上:#IFLY_NLI_RES_END;否则会报告文件不完整.
词典规则名只允许字母数字和下划线.
科大讯飞语义开放平台《abnf文法规范》11第3章文法档正文3.
1.
综述文法文件,实际上就是一些列规则定义的组合.
文法档正文由一个或多个"赋值"表达式组成.
基本格式如下:$vName=vDefinition;表达式必须包含三部分:变量声明,等号,变量定义.
这三个部分合起来,叫做"规则",在本文档中不严格的叫做"变量".
变量声明以$或者@(辅助符)开始,后续紧跟变量名称(vName),变量名称可以是英文字母、数字、下划线的任意组合(反对中文),见到空白符视为变量名结束.
变量定义(vDefinition)包含四种基本元素:终结词、其他变量、运算符、辅助符;变量定义是这四种元素在符合文法要求情况下的各种组合.
3.
2.
终结词在文法中,终结词不能被继续扩展.
它定义了用户输入可能表达的实体,句文法匹配最终的目的就是识别出这些终结词.
例如在下面的文法中:$fee=手机费|话费;"手机费"、"话费"就是终结词.
而$fee就不是.
目前定义的终结词包括以下这些:终结词类型示例英文(半角)aabc数字(半角)1科大讯飞语义开放平台《abnf文法规范》121234汉字好中国特殊字符4.
1节以上各种组合3.
3.
变量分类一般只需要使用$,其后加规则名来定义一个规则.
规则名可以包含中文,但不推荐.
3.
3.
1.
显式和隐式变量的效果以下截图取自2.
0引擎执行weather业务的结果$w2_2{biz:weather}=[$query{opera:query}]$date{param:date}[$interval][$time][$SW_De][$place][$here][$SW_De][$interval]$r1[情况|状况];其生成的调试信息为:可以清楚的看到w2引用了w2_2.
如果定义w2_2为隐式变量,科大讯飞语义开放平台《abnf文法规范》13@w2_2{biz:weather}=[$query{opera:query}]$date{param:date}[$interval][$time][$SW_De][$place][$here][$SW_De][$interval]$r1[情况|状况];调试信息为:用@定义的变量不会输出到调试信息中,也就没有精细结构.
3.
3.
2.
变量引用变量引用有三类1.
本地引用:引用本文法中所定义的变量.
2.
外部引用:引用其他文档中定义的变量.
3.
预定义变量引用:引用系统预定义的特殊变量这三类引用的格式已经统一到本地引用的格式.
3.
3.
2.
1.
本地引用对于本地引用,仍以前面的话费查询的文法为例,如下$want=要|想;$查询=查|查询;$费用=手机费|话费;$task_final=[我][$want]$查询$费用;科大讯飞语义开放平台《abnf文法规范》14其中最后一行变量$task_final的定义部分的$want、$查询、$费用三个变量即为本地引用,它们都是在本文档内定义的.
3.
3.
2.
2.
外部引用外部引用的格式和本地引用一样.
和C编程语言保持一致.
但是需要两点:1.
被引用的规则必须用public修饰,声明为公有变量;2.
引用者的头部中使用#include"XXX";包含需要引用的文法文件.
然后就可以像引用本地变量一样引用外部的变量.
include中使用相对路径,且一定要以分号结尾,并写在文法头部.
举例:schedule.
abnf引用common.
abnf中的$DateTime:另外需要特别注意的是,外部引用时,不能出现循环引用,即A引用B,B不能再引用A.
3.
3.
2.
3.
转义字符变量和通配符所有的特殊变量均已$_ti_(英文半角)开头,以下划线_(英文半角)结尾,注意,此形式的变量都作为系统预留,用户定义的变量不能采用这样的形式.
目前主要有两大类特殊变量.
科大讯飞语义开放平台《abnf文法规范》15第一,在文法中用到的特殊意义的符号,要想出现在文法中作为匹配实体(终结词),需要给它们特殊的格式,此时需使用特殊变量.
以下本版本不支持但可以进行转义$_ti_blank_空格或制表符$_ti_space_空格$_ti_tab_制表符$_ti_backslash_\$_ti_slash_/$_ti_dollar_$$_ti_semicolon_;$_ti_or_|$_ti_eq_=$_ti_la_(leftangle)$_ti_lb_(leftbrace){$_ti_rb_(rightbrace)}$_ti_ls_(leftsquare)[$_ti_rs_(rightsquare)]$_ti_lr_(leftround)($_ti_rr_(rightround))$_ti_qt_"第二,系统预定义了一些有特殊含义的变量:$_ti_ch_通配符:任意一个字符(字母、数字、汉字);支持自定义权重,提取需要提取的内容.
$_ti_filler_通配符:0到任意多个字符;不支持自定义权重,纯粹用于过滤.
$_ti_main_现已废弃.
$_ti_garbage_保留,暂未定义.
3.
3.
2.
4.
声明变量如果要应用的规则,所在的文法不可见,但又要引用它,则可以使用动态变量关键字来声明,小型文法一般不需要.
科大讯飞语义开放平台《abnf文法规范》163.
4.
运算符变量定义部分从逻辑上看,是几种不同的逻辑结构,这些结构由不同的运算符共同形成.
主要涉及的结构和运算符为:串连(空白符)、选择(分割符)、可选(中括号)、分组(小括号)、重复(尖括号).
3.
4.
1.
规则声明引用符——$'和'@'单目操作,用于规则定义中的声明或规则的引用.
如"$x=$y一下",第一个'$'表示声明,声明x规则,第二个表示引用,引用y规则.
引用时只用$,定义时两者皆可.
区别前述已经介绍.
3.
4.
2.
定义符——'='双目操作,如上规则中的'=',在一个规则定义中必须且只能出现一次.
3.
4.
3.
注释符——'//'或'前者行注释,后者块注释.
和C语言的使用方式一致,但是//行注释在末尾时不能用反斜杠续行.
$rule=a/*这里是注释*/b;相当于$rule=ab;3.
4.
4.
语义符——'{''}'必须左右配对使用,不可嵌套内容包含两种操作符':'和'%'分别表示语义输出符号分级及幅值左右配对操作符之间可嵌套,但不可交错科大讯飞语义开放平台《abnf文法规范》173.
4.
5.
串连——空格符、TAB双目操作,左右结合顺序无关紧要,在后接符号为其他操作符时可以不写,如$a$b串连相当于程序设计中的顺序结构.
由终结词、变量以空白符相隔、顺序排列,其形式如下:我查话费//终结词的串连$查询$费用//变量引用的串连我$want$查询$费用//终结词和变量引用的串连3.
4.
6.
选择——'|'选择表示匹配用户输入时,经过几条并行路径中的一条路径.
不同的选择分支使用英文半角|来分隔,形式如下:查|查询//终结词的选择$查询|$取消//变量引用的选择开通|$查询|$取消//终结词和变量引用的选择3.
4.
7.
可选——中括号'['']'可选表示匹配用户输入时,可以经过一条路径也可以不经过此路径.
可选部分由英文半角中括号[]来标记,[]之间的部分为可选,形式如下:[我]//终结词的可选[$want]//变量的可选3.
4.
8.
分组——小括号'('')'通过英文半角小括号()可以将若干个文法单元封装界定为一个结构,()以内的部分为一个整体单元,可避免文法在阅读上产生歧义.
科大讯飞语义开放平台《abnf文法规范》18必须左右配对使用,可嵌套,通常用于改变优先级可以改变文法单元的结合优先级.
例如:$order=我想|要查话费;这样的结构阅读起来让人费解,因为优先级不如串联符号,这一句等价于:$order=(我想)|(要查话费);而文法开发者的意图并非如此,此时可以加上括号来改变结合优先级:$order=我(想|要)查话费;又比如,想要给多个文法单元加上一个语义的时候,会起到很好的作用.
后文会介绍语义的详细内容.
3.
4.
9.
重复——尖括号''注意,3.
0的重复结构和语义的使用方式完全相同.
重复结构用来在文法中表示需要重复说出的内容,它特别适合表示诸如数字串等一些终结词反复出现的结构.
重复结构的基本格式有如下四种:$digit//变量重复出现n次(n>0)$digit//变量重复出现n次以上(n>=0)$digit//变量重复出现m次以下(m>0)//等价于$digit//变量重复出现n至m次(n>=0,m>n)可以看到,重复结构处于英文半角以内,其中有一英文半角"逗号",作为分隔辅助符,"逗号"之前的部分为要重复的内容,"逗号"之后的部分给定了重复的次数信息.
以上$digit变量也可以是终结词或者终结词、变量、运算符等组成的复杂语句.
科大讯飞语义开放平台《abnf文法规范》19如果要匹配重复0次,比如0到3个数字建议写成[$digit]而不是$digit,这样能够很容易的发现空弧穿透的错误.
3.
4.
10.
语义——'{''}'语义符必须左右配对使用,不可嵌套,具体用法见后文.
3.
4.
11.
权重——反引号'`''`'不可以嵌套.
其使用方式和语义相同.
用法:反引号包上数字:`数值`.
默认所有的文法单元都是0分.
不可以嵌套使用.
详细内容请见后文.
3.
4.
12.
文法单元文法单元是指文法中相对独立的文法部分,某种程度上可以当作一个整体来看待:如果文法中只有普通字符,则称为独立文法单元.
普通字符,就是中英文字母字符文本.
如果包含任何非普通字符,则称为复合文法单元.
非普通字符,就是上文提到的各种运算符.
对于终结词,各符号直接相连的终结词是一个文法单元,如"手机话费",若中间有空白符隔开,如手机话费则表示两个独立文法单元:手机、话费.
由运算符(构成的文法单元、由辅助符({}、\\)构成的文法单元以及变量彼此直接相连,或它们与终结词直接相连,都仍然是不同的文法单元,比如:[我]想$查询(话费|手机费)科大讯飞语义开放平台《abnf文法规范》20包含四个文法单元:[我]、想、$查询、(话费|手机费).
另外,一个文法单元内部可以嵌套"更小"的文法单元,如以下文法单元([手机]话费)由两个"小"文法单元:[手机]、话费,串联而成.
文法单元的概念与语义信息、属性、权重信息的定义直接相关,后面将详细介绍.
3.
4.
13.
语义信息语义,可以理解成一种集合.
概括表明用户输入的真实意图,例如"话费"、"电话费"、"电话费用"、"手机费"等不同的讲法都是一种费用.
而"我想""我要""我想要"都表示"需要做某事"的意向.
后续的业务处理程序需要这些信息.
语义信息放在一对英文半角大括号{}(语义辅助符)之间.
语义信息给定语义的对象是:语义左边与之最邻近的文法单元.
一个文法单元可以被两个或两个以上语义信息"修饰".
例如:匹配成功字串:"我想查合肥明天的天气",其中包含3个语义:地点"合肥",日期"明天",操作"查天气"用json结构来表示就是:{"biz":"weather","opera":"query","param:city":"合肥","param:date":"明天"}科大讯飞语义开放平台《abnf文法规范》21而biz:weather,opera:query等都是由《语义处理协议(互联网电视)v1.
1.
pdf》中定义,文法中只需要将这些语义信息的添加涉及到"语义信息档",其内容格式如下:1业务2操作3资费4旧密码5新密码每一行指定一个语义,分为三个部分:第一部分为唯一的语义ID,要求是英文半角阿拉伯数字串;第二部分为分隔符,分隔符包括空格,Tab和逗号(分隔符同样都是英文半角);第三部分为语义定义,定义内部不能有第二部分中的分隔符.
文法档中进行语义信息的添加时,目前暂只支持将一个语义定义(不是语义ID)放置于大括号{}中,并且此处添加的语义定义必须包含于上述"语义信息档"的定义中.
举例如下:$order=我(想|要)查{操作}话费{资费};注意,语义添加时,语义须与"语义信息档"的语义定义部分保持一致,语义与两个大括号{}之间可以有空白符.
另外,语义定义在字符的使用上有一定的限制,具体可见4.
2节中的描述.
禁止写法:对于可选结构,如果要附加语义,必须要将语义放在可选结构的中括号内,否则编译器将会报错.
因为文法的目的是:只有可选单元中的文法单元匹配成功,语义才会输出.
$ruleName=[文法单元]{语义内容};错误$ruleName=[文法单元{语义内容}];正确科大讯飞语义开放平台《abnf文法规范》223.
4.
14.
权重(分值)详细解释权重直接修饰左边最靠近的文法单元,给其添加上一个得分.
该得分可以是小数或整数,支持正负号,但不支持指数形式!
举例:$rule`+1.
0`;(你好|大家好)`-0.
4`;权重和语义的用法和注意事项一致禁止[XXX]`权值`的写法,需写成[XXX`权值`]!
3.
4.
14.
1.
通配符默认权重:系统会给如下两个变量隐式的增加分值,$_ti_filler_-1分(此分值由编译器决定,不支持自定义)$_ti_ch_-0.
8分(此分值由编译器决定.
)文法中,所有的单元,初始权重都是0,但系统会在通配符的后面增加`-1`和`-0.
8`,这是隐藏于编译器内部的实现.
3.
4.
14.
2.
通配符自定义权重如果用户给$_ti_ch_附加权重,则使用用户所写的权重.
$_ti_ch_自定义权重,但注意用法:$_ti_ch_`-0.
4`每个被通配符匹配的字都会扣-1.
2分$_ti_ch_,`-0.
4`只要是满足2-5个字的字符串.
$_ti_ch_后面没有用户自定义权重,使用系统内置权重,除了每个字扣0.
8分,总共再扣0.
4分科大讯飞语义开放平台《abnf文法规范》233.
4.
14.
3.
使用举例:之所以支持通配符权重,是为了某些有明确的上下文的场景.
比如:"我想听**这首歌".
此时,XX可以确定是歌名,可以减少通配符的扣分,有可能让此条规则胜出.
另外有些场景,是因为通配符权重的存在要特别小心:如map中,$adr允许全通配符.
下面rule1和rule2都可以走通"XX到XXX怎么走"这句话.
$rule1=$adr$how$go/*XX到XXX可以匹配$adr*/$rule2=$adr(到|去)$adr$how$go若通配符的权重设置为0,两规则得分相同,输出结果未定义.
此时,文法中就应提高"到|去"的权重.
让rule2胜出,或让通配符扣分再看权重对文法的匹配结果的影响比如(改写自BasicPhrase.
abnf)$rule=ab{param:ab}|a{param:a}|b{param:b};$output=;对于输入串"ab"有两种匹配方式,一种是直接匹配ab,循环一次.
另一种是先匹配a,再匹配b,循环两次.
这两种都合法,故给出的结果不确定.
有可能是{param:ab},也可以是{param:a}{param:b}$rule=ab{param:ab}`0.
1`|a{param:a}|b{param:b};$output=;则{param:ab}会胜出3.
4.
15.
运算符、辅助符的优先级符号优先级(由高至低)注释>串>语义符>声明引用>配对操作符及循环>连接>可选>定义符运算符含义[]()括号会改变优先级科大讯飞语义开放平台《abnf文法规范》24一元运算符tabspace串联二元运算符串联|二元运算符并联=二元运算符赋值科大讯飞语义开放平台《abnf文法规范》25第4章文法规范的其他说明4.
1.
1.
不能写的结构重复结构的嵌套要谨慎,否则会引起效率的降低.
通常情况下会导致文法上正确,但实际意义很不明确例如:$ruleName=[];或者$ruleName=我[(([想][要]))]查话费;严禁空弧穿透结构:$ruleName=[我想要][打电话];这个规则可以什么实际内容也不匹配,却仍然可以通过编译生成的网络.
这会引起引擎异常.
同理,可以允许零次的重复结构也会有问题:一下文法,可以什么文字也不匹配,却抛出语义内容.
$ruleName=内容{语义};需要写成$ruleName=[{语义}]严禁连续多个通配符直接相连:$ruleName=$_ti_filler_$_ti_filler_假设输入的句子长为n,文法中连续串联了k个通配,则增加的复杂度是:O(n的k次方)科大讯飞语义开放平台《abnf文法规范》264.
1.
2.
语义中的字符语义定义的大括号{}内可以是如下字符:大部分ASCII字符(但不包括4.
1节表格第一列中所列字符)、全角符号、中文;如果语义定义中出现第三章介绍过的节表格第一列中所列字符,会导致文法编译错误.
如果一定要使用,请在前面增加转义字符'\'.
4.
1.
3.
文法书写的方法原则:模块化方法:自顶向下和自底向上.
请参考《从零开始写abnf文法》的内容.
如今我们还有在做个人网站吗?随着自媒体和短视频的发展和兴起,包括我们很多WEB2.0产品的延续,当然也包括个人建站市场的低迷和用户关注的不同,有些个人已经不在做网站。但是,由于我们有些朋友出于网站的爱好或者说是有些项目还是基于PC端网站的,还是有网友抱有信心的,比如我们看到有一些老牌个人网站依旧在运行,且还有新网站的出现。今天在这篇文章中谈谈有网友问关于个人网站备案的问题。这个也是前几天有他在选择...
今天获得消息,vdsina上了AMD EPYC系列的VDS,性价比比较高,站长弄了一个,盲猜CPU是AMD EPYC 7B12(经过咨询,详细CPU型号是“EPYC 7742”)。vdsina,俄罗斯公司,2014年开始运作至今,在售卖多类型VPS和独立服务器,可供选择的有俄罗斯莫斯科datapro和荷兰Serverius数据中心。付款比较麻烦:信用卡、webmoney、比特币,不支持PayPal...
古德云(goodkvm)怎么样?古德云是一家成立于2020年的商家,原名(锤子云),古德云主要出售VPS服务器、独立服务器。古德云主打产品是香港cn2弹性云及美西cn2云服务器,采用的是kvm虚拟化构架,硬盘Raid10。目前,古德云香港沙田cn2机房及美国五星级机房云服务器,2核2G,40G系统盘+50G数据盘,仅35元/月起,性价比较高,可以入手!点击进入:古德云goodkvm官方网站地址古德...
开放平台为你推荐
三星iphone搜狗360360浏览器为什么不能让我自动登录了重庆网站制作我想做个网站,我是重庆的人。想在本地找个做网站的公司,请教一下在重庆那个公司比较好一点,,,,谢谢曲目ios开放平台微信的开放平台是干什么用的银花珠树晓来看晚来天欲雪,能饮一杯无。相似的句子刚刚网刚刚在网上认识了一个女孩子,不是很了解她,就跟她表白了。瑞东集团中粮集团是什么性质的企业tumblr上不去我家里的网络打不开个别网站400电话查询400电话号码可以查询归属地吗?办理400电话是不是很贵?
com域名抢注 息壤备案 163网 优key 日志分析软件 彩虹ip 三拼域名 anylink 申请个人网站 有奖调查 七夕促销 idc资讯 789电视网 idc是什么 福建铁通 台湾谷歌 空间购买 空间登入 网购分享 阿里云免费邮箱 更多