当前位置:文档之家› spring学习

spring学习

spring学习
spring学习

Spring是什么?

Spring是一个开源的控制反转(Inversion of Control ,IoC)和面向切面(AOP)的容器框架.它的主要目得是简化企业开发.

IOC 控制反转:

例如:

public class PersonAction {

private IPersonDao personDao = new PersonDao();

public void addPerson(){

personDao.save(person);

}

}

PersonDao是在应用内部创建及维护的。所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。

依赖注入(Dependency Injection):

当我们把依赖对象交给外部容器负责创建,那么PersonAction 类可以改成如下:public class PersonAction {

private IPersonDao personDao ;

// 提供getter setter方法

//通过setter构造器注入

所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。

如果使用Spring, 我们就不再需要手工控制事务(AOP) 例如:

// spring 开启事物

Session.save(user)

// spring 提交事物

// spring 关闭session

Spring带给我们好处:

1.DI依赖注入,降低程序之间的耦合度

2.AOP面向方面编程,解决一些公共特性问题,例如,日志,事物

开发spring框架:

1.使用Spring需要的jar

到https://www.doczj.com/doc/2d5644096.html,/download下载spring,然后进行解压缩,在解

压目录中找到下面jar文件,拷贝到类路径下

dist\spring.jar

lib\jakarta-commons\commons-logging.jar

如果使用了切面编程(AOP),还需要下列jar文件

lib/aspectj/aspectjweaver.jar和aspectjrt.jar

lib/cglib/cglib-nodep-2.1_3.jar

如果使用了JSR-250中的注解,如@Resource/@PostConstruct/@PreDestroy,还需

要下列jar文件

lib\j2ee\common-annotations.jar

2.在 src下创建applicationContext.xml文件:

xmlns:xsi="https://www.doczj.com/doc/2d5644096.html,/2001/XMLSchema-instance"

xsi:schemaLocation="https://www.doczj.com/doc/2d5644096.html,/schema/beans https://www.doczj.com/doc/2d5644096.html,/schema/beans/spring-beans-2.5.xsd"

>

.....

该配置模版可以从spring的参考手册或spring的例子中得到。配置文件的取名可以任意,文件可以存放在任何目录下,但考虑到通用性,一般放在类路径下。

https://www.doczj.com/doc/2d5644096.html,.spring.person.dao 包

public interface IPersonDao {

public void save();

}

https://www.doczj.com/doc/2d5644096.html,.spring.person.dao.impl包:

public class PersonDao implements IPersonDao {

public PersonDao(){

System.out.println("PersonDao 无参构造函数");

}

public void save() {

System.out.println("---------personDao save()方法

-----------");

}

public void init()

{

System.out.println("personDao 初始化方法");

}

public void destroy()

{

System.out.println("personDao 销毁方法");

}

}

5.修改application.xml文件,添加如下内容:

class="com.spring.person.dao.impl.PersonDao">

6.测试

使用Junit单元测试(企业级单元测试)

1>导包junit4.1

2>新建com.spring.person.test.PersonDaoTest(测试类取名要测试类

+Test)

3>PersonDaoTest 创建测试方法方法名: test+要测试类的方法

4>例如:

public void testSave()

{

}

5>右键点击方法 Run as – junit test

(注意: 红条表示测试失败,绿条表示测试成功)

实例化spring容器

实例化Spring容器常用的两种方式:

方法一:

在类路径下寻找配置文件来实例化容器

ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});

方法二:

在文件系统路径下寻找配置文件来实例化容器

ApplicationContext ctx = new FileSystemXmlApplicationContext(new String[]{“d:\\ applicationContext.xml“});

PersonDaoTest测试类

testSave方法测试:

BeanFactory/ApplicationContext/ AbstractApplicationContext

factory=new ClassPathXmlApplicationContext("applicationContext.xml"); IPersonDao personDao=(IPersonDao) factory.getBean("personDao"); personDao.save();

// 或者

BeanFactory factory=new

FileSystemXmlApplicationContext("C:\\my_proj\\Spring_Test\\src\\appli cationContext.xml");

IPersonDao personDao=(IPersonDao) factory.getBean("personDao"); personDao.save();

Bean的作用域(后期与struts集成时很重要)

例如:

.singleton

在每个Spring IoC容器中一个bean定义只有一个对象实例。默认情况下会在容器启动时初始化bean,bean默认设置成scope="singleton" 时当IOC容器加载时就实现初始化(加载时初始化)

.prototype

每次从容器获取bean都是新的对象。bean设置成scope="prototype" 时当调用getBean 时才实现初始化(就要用的时候初始化)

测试:

public PersonDao(){// 提供无参构造函数

System.out.println("PersonDao 无参构造函数");

}

运行:

BeanFactory factory= new

ClassPathXmlApplicationContext("applicationContext.xml");

IPersonDao personDao= (IPersonDao) factory.getBean("personDao"); IPersonDao personDao1= (IPersonDao) factory.getBean("personDao"); personDao.save();

扩充:

使用scope="singleton" 调用getBean 初始化呢?

有的,在bean属性中 lazy-init="true" 实现懒加载就会在IOC容器初始化时不加载指定Bean的初始化方法和销毁方法

PersonDao类:

public void init()

{

System.out.println("personDao 初始化方法");

}

public void destroy()

{

System.out.println("personDao 销毁方法");

}

class="com.spring.person.dao.impl.PersonDao"

scope="singleton"

init-method="init"

destroy-method="destroy"

lazy-init="true"

>

测试:

AbstractApplicationContext aac= new

ClassPathXmlApplicationContext("applicationContext.xml"); IPersonDao personDao= (IPersonDao) aac.getBean("personDao"); personDao.save();

aac.close();//关闭IOC容器调用Bean的销毁方法

依赖注入分为三种:

1.接口注入

2.构造函数注入

3.setter注入

4.菜用注解方式实现注入

接口注入:

https://www.doczj.com/doc/2d5644096.html,.spring.person.action包

PersonAction类:

public class PersonAction {

private IPersonDao personDao;

public String save()

{

personDao.save();

return"success";

}

public IPersonDao getPersonDao() {

return personDao;

}

public void setPersonDao(IPersonDao personDao) {

System.out.println("setPersonDao()");

this.personDao = personDao;

}

}

2.修改applicationContext.xml文件:

3.测试:

public void testPersoActionSave()// 接口注入

{

AbstractApplicationContext aac=

new ClassPathXmlApplicationContext("applicationContext.xml");

PersonAction pa=(PersonAction) aac.getBean("personAction");

pa.save();

}

构造函数注入:

https://www.doczj.com/doc/2d5644096.html,.spring.person.bean包

Person类:

public class Person {// 构造函数注入

private int personId;

private String personName;

public Person(){};

public Person(int personId,String personName)

{

this.personId=personId;

this.personName=personName;

}

public int getPersonId() {

return personId;

}

public String getPersonName() {

return personName;

}

}

2.修改applicationContext.xml文件 :

3.测试:

public void testPerson()// 构造函数注入

{

AbstractApplicationContext aac= new

ClassPathXmlApplicationContext("applicationContext.xml");

Person person=(Person)aac.getBean("person");

System.out.println("personId="+person.getPersonId()+",personName= "+person.getPersonName());

}

setter注入:

https://www.doczj.com/doc/2d5644096.html,er.bean包

User类:

public class User {

private int uid;

private String userName;

private Person person;

private List list;

private Map map;

public int getUid() {

return uid;

}

public void setUid(int uid) {

this.uid = uid;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) { https://www.doczj.com/doc/2d5644096.html,erName = userName;

}

public Person getPerson() {

return person;

}

public void setPerson(Person person) { this.person = person;

}

public List getList() {

return list;

}

public void setList(List list) {

this.list = list;

}

public Map getMap() {

return map;

}

public void setMap(Map map) {

this.map = map;

}

}

2.修改applicationContext.xml文件:

张三

李四

王五

3.测试:(新建UserTest类)

public void testUser() // setter注入

{

AbstractApplicationContext aac= new ClassPathXmlApplicationContext("applicationContext.xml");

User user=(User) aac.getBean("user");

System.out.println("uid="+user.getUid());

System.out.println("userName="+user.getUserName());

System.out.println("list集合:");

for(String str : user.getList())

{

System.out.print(str+" ");

}

System.out.println("map集合:");

for(Map.Entry entry: user.getMap().entrySet())

{

System.out.println(entry.getKey()+"="+entry.getValue());

}

System.out.println("person对象:");

System.out.println("personId="+user.getPerson().getPersonId()+",p ersonName="+user.getPerson().getPersonName());

}

菜用注解方式实现注入(spring2.5推出):

实例:

https://www.doczj.com/doc/2d5644096.html,er.dao包:

IUserDao接口:

public interface IUserDao {

public User login(String userName,String password);

}

https://www.doczj.com/doc/2d5644096.html,er.dao.impl包:

public class UserDao implements IUserDao{

public User login(String userName, String password) {

System.out.println("处理登录");

return null;

}

}

3.修改applicationContext.xml文件:

xmlns:xsi="https://www.doczj.com/doc/2d5644096.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/2d5644096.html,/schema/context"

xsi:schemaLocation="https://www.doczj.com/doc/2d5644096.html,/schema/beans

https://www.doczj.com/doc/2d5644096.html,/schema/beans/spring-beans-2.5.xsd https://www.doczj.com/doc/2d5644096.html,/schema/context

https://www.doczj.com/doc/2d5644096.html,/schema/context/spring-context-2.5.xsd "> (注意修改命名空间不然会出错)

https://www.doczj.com/doc/2d5644096.html,er.action包:

public class UserAction {

@Resource(name="userDao")

private IUserDao userDao;

public String login()

{

userDao.login("zhangsan", "zhangsan");

return"success";

}

}

class="https://www.doczj.com/doc/2d5644096.html,erAction">

5.测试:

public void testUser1()

{

AbstractApplicationContext aac= new

ClassPathXmlApplicationContext("applicationContext.xml");

UserAction userAction=(UserAction) aac.getBean("userAction");

userAction.login();

}

采用注解Spring2.5自动扫描(重点核心技术):

https://www.doczj.com/doc/2d5644096.html,.spring.teacher.dao包:

public interface ITeacherDao {

public void addTeacher();

}

https://www.doczj.com/doc/2d5644096.html,.spring.teacher.dao.impl包:

@Repository

public class TeacherDao implements ITeacherDao {

public void addTeacher() {

System.out.println("处理添加Teacher数据");

}

}

https://www.doczj.com/doc/2d5644096.html,.spring.teacher.action包:

@Controller("teacherAction")

public class TeacherAction {

@Resource(name="teacherDao")

private ITeacherDao teacherDao;

public String add()

{

teacherDao.addTeacher();

return"success";

}

}

4.修改applicationContext.xml文件:

开启spring2.5自动扫描

5.测试:

public class TeacherTest extends TestCase {

public void testAddTeacher()

{

AbstractApplicationContext aac= new

ClassPathXmlApplicationContext("applicationContext.xml");

TeacherAction ta= (TeacherAction) aac.getBean("teacherAction");

ta.add();

}

}

spring IOC 实现依赖注入结束

Aop面向方面编程

1.JDK动态代理

2.使用CGLIB生成代理

首先讲讲spring底层实现原理

JDK动态代理:

新建项目有 spring_aop(导包..)

https://www.doczj.com/doc/2d5644096.html,.aop.util包:

JDKProxy类:

/**

*jdk动态代理实现Aop思想

*@author Administrator

*

*/

public class JDKProxy implements InvocationHandler {

private Object targetObject;

public Object createProxyInstance(Object targetObject)

{

this.targetObject=targetObject;

/**

*第一个参数:目标类的类加载器

*第二个参数:目标类的接口

*第三个参数设置回调对象,当代理对象的方法被调用时,会委派给该参数指定对象的invoke方法

*/

return

Proxy.newProxyInstance(targetObject.getClass().getClassLoader(),

targetObject.getClass().getInterfaces(),

this);

}

/**

*第一个参数:目标对象

*第二个参数:目标方法

*第三个参数:目标方法参数

*

*/

public Object invoke(Object target, Method method, Object[] arg) throws Throwable {

TransationManager tm=new TransationManager();//切面类

try {

tm.startTransation();// 前置通知

// 调用目标方法

Object obj = method.invoke(targetObject, arg);// 切入点

https://www.doczj.com/doc/2d5644096.html,mitTransation();// 后置通知

return obj;

} catch (RuntimeException e) {

e.printStackTrace();

tm.rollbackTansation(); // 异常通知

}finally

{

tm.closeSession();// 最终通知

}

return null;

}

}

TransationManager类:

public class TransationManager {// 切面类

public void startTransation()

{

System.out.println("开启事务");

}

public void commitTransation()

{

System.out.println("提交事务");

}

public void rollbackTansation()

{

System.out.println("回滚事务");

}

public void closeSession()

{

System.out.println("关闭session");

}

}

测试:

public void testJDK()

{

JDKProxy jdkProxy=new JDKProxy();

IPersonDao personDao=(IPersonDao)

jdkProxy.createProxyInstance(new PersonDao());

personDao.addPerson("张三");

}

使用CGLIB生成代理:

public class CGLIBProxy implements MethodInterceptor {

private Object targetObject;

public Object createProxyInstance(Object targetObject)

{

this.targetObject=targetObject;

//1. cglib库中创建代理方式

Enhancer enhancer=new Enhancer();

//2. 设置目标类(让代理类派生子类),并重写目标类的非final方法

enhancer.setSuperclass(targetObject.getClass());

//3.设置回调方法

enhancer.setCallback(this);

//4. 创建代理类,这个代理类是目标类的子类

return enhancer.create();

}

/**

*第一个参数:目标对象

*第二个参数:目标方法

*第三个参数:目标方法参数

*第四个参数:代理类对象的方法

*/

public Object intercept(Object target, Method method, Object[] arg, MethodProxy methodProxy) throws Throwable {

try {

System.out.println("开启事物");

Object obj=methodProxy.invoke(targetObject, arg);

System.out.println("提交事物");

return obj;

} catch (RuntimeException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println("回滚事物");

}finally

{

System.out.println("关闭session");

}

return null;

}

}

测试:

public void testCGLIB()

{

CGLIBProxy cglibProxy=new CGLIBProxy();

IPersonDao personDao= (IPersonDao)

cglibProxy.createProxyInstance(new PersonDao());

personDao.addPerson("李四");

}

Spring基于xml文件配置方式实现Aop

1.定义一个切面类

import https://www.doczj.com/doc/2d5644096.html,ng.ProceedingJoinPoint;

public class XmlInterceptor {// 基于spring xml文件配置实现 aop

public void beforeAdvice()

{

System.out.println("前置通知");

}

public void afterAdvice()

{

System.out.println("后置通知");

}

public void exceptionAdvice()

{

System.out.println("异常通知");

}

public void finallyAdvice()

{

System.out.println("最终通知");

}

public Object aroundAdvice(ProceedingJoinPoint pjp)throws Throwable {

System.out.println("进入环绕通知");

Object result= pjp.proceed();

System.out.println("退出环绕通知");

return result;

}

}

2.src下新建applicationContext_xml.xml文件

xmlns:xsi="https://www.doczj.com/doc/2d5644096.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/2d5644096.html,/schema/context"

xmlns:aop="https://www.doczj.com/doc/2d5644096.html,/schema/aop"

xsi:schemaLocation="https://www.doczj.com/doc/2d5644096.html,/schema/beans

https://www.doczj.com/doc/2d5644096.html,/schema/beans/spring-beans-2.5.xsd https://www.doczj.com/doc/2d5644096.html,/schema/context

https://www.doczj.com/doc/2d5644096.html,/schema/context/spring-context-2.5.xsd https://www.doczj.com/doc/2d5644096.html,/schema/aop

https://www.doczj.com/doc/2d5644096.html,/schema/aop/spring-aop-2.5.xsd">

class="com.aop.person.dao.impl.PersonDao">

class="com.aop.util.XmlInterceptor" >

method="exceptionAdvice"/>

method="finallyAdvice"/>

测试:

public void testXmlAop()

{

ApplicationContext ac=new

ClassPathXmlApplicationContext("applicationContext_xml.xml");

IPersonDao personDao=(IPersonDao) ac.getBean("personDao");

//personDao.addPerson("张三");

//personDao.findPersonByPersonId(1);

//personDao.deletePerson(1);

personDao.updatePerson("李四");

}

Spring基于注解方式实现Aop

1.AnnotationInterceptor类:

@Aspect

public class AnnotationInterceptor {// 基于spring 注解实现 aop

@Pointcut("execution(* com.aop.*.dao.impl.*.add*(..))||execution(* com.aop.*.dao.impl.*.delete*(..)) ||execution(*

com.aop.*.dao.impl.*.update*(..))")

public void allMethod(){};

@Before("allMethod()")

public void beforeAdvice()

{

System.out.println("前置通知");

}

@After("allMethod()")

public void afterAdvice()

{

System.out.println("后置通知");

}

@AfterThrowing("allMethod()")

public void throwingAdvice()

{

System.out.println("异常通知");

}

@AfterReturning("allMethod()")

public void afterReturningAdvice()

{

System.out.println("最终通知");

}

@Around("allMethod()")

public Object aroundAdvice(ProceedingJoinPoint pjp)throws Throwable {

System.out.println("进入环绕通知");

Object obj= pjp.proceed();

System.out.println("环绕通知退出");

return obj;

}

}

2.src下新建applicationContext_annotation.xml文件

xmlns:xsi="https://www.doczj.com/doc/2d5644096.html,/2001/XMLSchema-instance"

xmlns:context="https://www.doczj.com/doc/2d5644096.html,/schema/context"

xmlns:aop="https://www.doczj.com/doc/2d5644096.html,/schema/aop"

xsi:schemaLocation="https://www.doczj.com/doc/2d5644096.html,/schema/beans

https://www.doczj.com/doc/2d5644096.html,/schema/beans/spring-beans-2.5.xsd https://www.doczj.com/doc/2d5644096.html,/schema/context

https://www.doczj.com/doc/2d5644096.html,/schema/context/spring-context-2.5.xsd https://www.doczj.com/doc/2d5644096.html,/schema/aop

https://www.doczj.com/doc/2d5644096.html,/schema/aop/spring-aop-2.5.xsd">

class="com.aop.util.AnnotationInterceptor">

class="com.aop.person.dao.impl.PersonDao">

3.测试:

public void testAnnotationAop()

{

ApplicationContext ac= new

ClassPathXmlApplicationContext("applicationContext_annotation.xml");

IPersonDao personDao= (IPersonDao) ac.getBean("personDao");

personDao.addPerson("张三");

}

Spring结束

Struts2+Hibernate+Spring整合

1. 基于spring的xml配置文件整合

2. 基于spring2.5自动扫描整合

Spring2.0时代整合(痛苦时代):

1.导包(最少依赖包)

2.src下添加 struts.xml,struts.property文件

struts.xml文件:

认知语言学

认知语言学是语言学中的一种新范式, 它包含许多不同的理论、方法及研究课题。认知语言学肇始于20 世纪70 年代, 80 年代中期以后其研究范围扩展到了语言学中的许多领域, 如句法、意义、音系以及语篇等。其成熟的重要标志是1989 年春在德国杜伊斯堡召开的第一次国际认知语言学会议以及1990 年出版的5认知语言学6杂志。自诞生之日起, 认知语言学就把自己置于认知科学这一大学科中, 与哲学、心理学、人类学、计算机科学以及神经科学等结下了不解之缘, 并逐渐成为当代语言学中的一门显学。 在过去20 多年里, 认知语言学研究在几个重要领域里已卓有成效, 如范畴化、概念隐喻、转喻、多义性、拟象性以及语法化等( 参见文旭1999, 2001) 。尽管认知语言学家内部在具体方法、感兴趣的课题、研究的切入点等方面还存在一些差别, 但他们的研究目标和基本原则有许多共同之处。为了进一步理解并准确把握这一新的认知范式, 本文拟对认知语言学的研究目标、基本原则、研究方法作一些解释与探讨。认知语言学的研究目标 语言是人类表达观念和思想的最明确的方式之一。从/ 表达观念和思想0的角度来研究人类语言, 这种观点就是通常所说的/ 认知观0。这种观点认为, 语言是认知系统的一部分, 而认 知系统由感知、情感、范畴化、抽象化以及推理等组成。这些认知能力与语言相互作用并受语言的影响, 因此从某种意义上来说, 研究语言实际上就是研究人类表达或交流观念和思想的方式。 当代语言学的一个基本特点就是对认知现实主义( cognitive realism) 的承诺, 即确认语言是一种心理或认知现象。语言学诸多门派都以探索隐藏在大脑中具有普遍性的人类语言机制作为终极目标, 换句话说, 语言分析的目的不只是描写人们的语言行为, 而是解释引起语言行为的心理结构和心理过程, 揭示语言行为背后内在的、深层的规律。像乔姆斯基、杰肯道夫(R. Jackendoff) 、兰格克(R. Langacker) 、雷科夫(G. Lakoff) 、比尔沃思(M. Bierwisch ) 以及赫德森(R. Hudson) 这些代表不同理论方法的语言学家, 他们的研究都具有这一目的。如果仅从这一目的来看, 那么乔姆斯基的生成语法、杰肯道夫的概念语义学、赫德森的词语法(word gram2 mar) 与兰格克、雷科夫等人的认知语言学是完全一致的, 这样他们的理论似乎可以合法地称为/ 认知语言学0。然而/ 认知的承诺0只是一个纲领性的东西, 它本身对语言理论的具体研究原则和方法并不起支配作用, 对语言描写的内容和形式也未作具体的要求。因此, 尽管乔姆斯基的生成语法、杰肯道夫的概念语义学、赫德森的词语法与兰格克、雷科夫等人的认知语言学都许下认知的承诺, 但前者与后者代表的却是两个极端, 所以前者也就不属于今天公认的认知语言学。 认知语言学主要包括雷科夫、兰格克、菲尔莫(C. Fillmore) 、约翰逊(M. Johnson) 、杰拉茨(D. Geeraerts) 、福科尼耶(G. Fauconnier) 以及塔尔米(L. Talmy) 等人的语言学理论或方法。它认为自然语言是人类心智的产物, 其组织原则与其他认知领域中的组织原则没有差别。语言作为人类认知的一个领域, 与其他认知领域密切相关, 并且本身也是心理、文化、社会、生态等因素相互作用的反映。语言结构依赖并反映概念的形成过程, 而概念的形成过程又以我们自身的经验为基础, 即是说, 语言不是一个由任意符号组成的系统, 其结构与人类的概念知识、身体经验以及话语的功能相关, 并以它们为理据。语言单位( 如词、短语、句子) 是通过范畴化来实现的, 而范畴化通常以典型( prototype) 为基础, 并且涉及隐喻和转喻过程。语言单位的意义以身体经验为基础, 其描写需参照相关的认知结构, 如通俗模型( folk models) 、文化模型( cultural models) 以及认知模型( cognitive models) 。把语言使用置于人类经验基础之上的最重要结果之一, 就是要首先强调意义的研究。正如维尔茨比卡(Wierzbicka 1988: 1) 指出: / 语言是一个整合的系统, 在这个系统中一切都通力协作, 传递意义) ) ) 词、语言结构以及言外手段( 包括语调) 。0费斯米尔( Fesmire 1994: 150) 也指出, 认知语言学摆脱了主流生成语言学的传统, / 尽力解决人类是如何理解自己世界的意义这一问题0, 并且把自己/ 置于人类经验这一潮流中, 而不是纯粹的形式王国里0, 因此, 认知语言学/ 发展了一套人类理解的生态理论0。简言之, / 认知语言学明确地承诺要把意义的身体维度、文化维度以及想象维度( imaginative dimension) 结合起来0。很明显, 意义是认知语言学研究的重要内容, 而隐喻就成了认知语言学研究的焦点。语言学也就不再是对语言内部特征的一种自足的解释, 而是揭示和解释人类认知的一种有力工具。 据上论述, 我们大致可明确认知语言学的研究目标: 寻找不能脱离形体的概念知识的经验证据, 探索概念系统、身体经验与语言结构之间的关系以及语言、意义和认知之间的关系, 即所谓的/ 关系问题0( the relationship question) , 发现人类认知或概念知识的实际内容, 从而最终揭示人类语言的共性、语言与认知之间的关系以及人类认知的奥秘。显然, 认知语言学的这一宏伟目标与当今人类最感兴趣的四大课题之一/ 揭示人类智能的奥秘0完全一致。 三、认知语言学的理论原则 认知语言学中虽有不同的理论方法, 但它们在很大程度上是相互一致的, 具有共同的理论原则。兰格克( 1987: 2) 曾把认知语言学的理论原则概括为三个重要主张: 第一, 语义结构并不是普遍的, 在很大程度上因语言而异。语义结构建立在约定俗成的意象( conventional image) 基础之上, 其描写与知识结构有关。第二, 语法或句法并不构成一个自主的表征形式层次, 相反, 语法实际上具有符号性, 存在于语义结构的规约符号化中。第三, 语法与词汇之间没有意义上的区别。词汇、形态和句法形成一个符号结构的连续统, 这些符号结构虽因不同的参数有别, 但可以任意划分为不同的成分。雷科夫从更基本的层次阐述了认知语言学的理论原则。不过, 他是用/ 承诺0 ( commit2 ments) 来谈的。他( 1990: 3) 认为, 认知语言学有 两个根本承诺: 第一, 概括的承诺: 对支配人类语言各个方面的一般原则进行描写; 第二, 认知的承诺: 从语言学以及其他学科出发, 使对语言的解释与有关心智和大脑的一般知识一致。当然, 兰格克和雷科夫提出的理论原则只代表两家之言, 并未囊括认知范式中所有的基本原则。笔者认为, 至少有六个基本原则可以把认知语言学中的不同理论方法联系起来: 1) 概念语义原则 意义等同于概念化( conceptualization) , 即心理经验的各种结构或过程, 而不是可能世界中的真值条件: 一个表达式的意义就是在说话人或听话人的大脑里激活的概念, 更为具体地说, 意义存在于人类对世界的解释中, 它具有主观性, 体现了以人类为宇宙中心的思想, 反映了主导的文化内涵、具体文化的交往方式以及世界的特征。这一原则表明, 意义的描写涉及词与大脑的关系, 而不是词与世界之间的直接关系。 2) 百科语义原则 词及更大的语言单位是进入无限知识网络的入口。对一个语言表达式的意义要进行全面的解释, 通常需要考虑意象( 视觉的和非视觉的) 、隐喻、心理模型以及对世界的朴素理解等。因此, 一个词的意义单靠孤立的词典似的定义一般来说是不能解决问题的, 必须依赖百科知识方可达到目的。 3) 典型范畴原则 范畴并不是由标准) 属性模型( criterial2at2 tribute models) 定义的, 也不是由必要和充分特征定义的(Lakoff 1987; Taylor 1989) ; 相反, 范畴是围绕典型、家族成员相似性, 范畴中各成员之间的主观关系组织起来的。 4) 语法性判断的渐进原则 语法性判断涉及范畴化。一个话语的语法性或可接受性并不是二分的, 即要么可接受, 要么不可接受, 而是渐进的。因此, 语法性判断是渐进的, 并且同语境、语义以及语法规则密切相关。认知语言学家并不像生成语法学家那样, 要把语法写成是一部生成一种语言中所有并且是唯一合乎语法的句子那样的语法, 因为语法性判断具有渐进性、可变性以及语境的依赖性, 要实现生成语法学家所期望的目标显然十分艰难。 5) 语言与其他认知机制相关原则 认知语言学之所以为认知语言学, 是因为它要在一般的认知中寻找语言现象的类似物。认知语言学家积极吸收心理学关于人类范畴化、注意以及记忆等的研究成果来丰富自己的理论, 从而使认知语言学更加具有活力。由此可见, 语言与其他认知机制具有密切的关系。

浅谈认知语言学

浅谈认知语言学 发表时间:2018-10-22T16:13:42.363Z 来源:《语言文字学》2018年第10月作者:封锋林聖典肖冲 [导读] 认知语言学对于语言学教学具有重大影响和意义,它体现人们对于语言的认知能力,有助于人们对语义的理解。 武警警官学院四川成都 610213 摘要:认知语言学对于语言学教学具有重大影响和意义,它体现人们对于语言的认知能力,有助于人们对语义的理解。框架语义学,作为认知语言学的重要分支,它从语境的角度解释词汇的含义,是人们理解词义的重要联系和过渡过程。然而,人们对于该理论的了解和认识并不多,关注并深入研究该理论的学者也屈指可数。本文对于框架语义学的核心思想、哲学基础、理论目标、理论方法及其在应用中的作用和影响有所探析,同时,对其所得到的评价及几点不足也有所提及。 关键词:认知语言学; 社会语言学; 社会认知语言学 1认知语言学理论概述 虽然语言普遍地只是被看作是人类之间一种交流的工具,但是其认知能力和方法尤为关键,它也是连接各类语言学之间的一个锁链。一个人的认知能力和方法,可以体现出其心理活动以及周围的环境特征。认知语言学的理论方法有很多种分支和分类,例如认知语义学、框架语义学、认知语法、构式语法等。 对于认知语言学的基本思想,乔姆斯基(Chomsky)提出了几个基本假设。其一,语言是一个自足的系统,它具有数学的特征,其自足性使其可以基本脱离范围更广的认知系统加以研究。其二,语法(尤其是句法)是语言结构的一个独立部分,与词汇和语义有着根本的区别。其三,如果意义在语法分析范围内,那么,最恰当的描述方法是通过建立在真值条件基础上的某种形式逻辑[1]。 在认知语言学中,人们对于语义的理解极其重要。正如《认知语言学杂志》(Journal of Cognitive Linguistics)在1990年首刊编者按中所述,认知语言学的研究路向将语言视为“组织、处理、传达信息的工具”,即语言最重要的是语义。所以,语言研究的认知方法主要侧重于语义。其中,框架语义学虽然并不算其分支中最热门的理论,但是,它在理解语义中的作用和影响同样不可忽视。 2框架语义学的基本理论 2.1核心思想 在人们理解词汇和句子的过程中,即在理解一个概念结构中的任何一个概念时,必须以理解它所适应的整个结构为基础,理解它所存在的概念结构,当这样一个概念结构中的一个概念被置入一个文本或交谈环境中时,该概念结构中其他所有概念都自动被激活。那么,基于对框架语义学的应用,人们在词语所激活的语义框架中理解词语的意义,并且,通过对真实场景的反复体验,人们会在大脑中形成一种意象图式[3]。因此,框架是人们在大脑中形成的一种框架概念结构,是一种相对抽象的结构[4]。 2.2哲学基础 框架语义学是由菲尔莫尔最早提出的自然语言语义学的一个具体路向[5],并以经典主义哲学及皮亚杰(J.Piaget)的楗构论为思想基础。同时,语义又是非自主的,是和经验紧密结合的,那么,语义是以经验为基础的[6]。所以,框架语义学又属于经验主义语义学(empirical semantics)的范畴,它源自经验语义学传统,而不是形式语义学(formal semantics),它与经验之间相互联系,并不代表割裂[7]。因此,框架语义学是以经典主义哲学、建构论以及经验主义为哲学基础的语言学理论思想。 2.3理论目标 框架语义学作为一种理论思想,为词义的研究提供了一种具体且便捷的方式,也为描述新词语创生、旧词添加新义,以及将语篇中各成分的意义组配成语篇整体意义的原则提供了一种有效的方法[8]。因此,框架语义学的理论目标就是在结合语境以及相关背景知识的同时,帮助人们理解词义、句义以及语篇的含义。 2.4理论方法 菲尔莫尔认为,框架语义学中的“框架”并非是在现实中的实体,而是一个概念意识上的原型,它可以充分解释真实情景与词语使用之间相互适应的复杂性,并且受到特定语境的影响[9]。因为语义会随着环境的变化而变化,那么,如果要理解一个单词的含义,就要运用联想的方法,进而掌握与这个单词有关的知识,了解与之相关的同一框架或交替框架的词汇的含义,并且熟悉其语境,理解一个框架中相互联系的概念的含义。 在借助于框架语义学理解语义的过程中,许多多义词都可适用于多个不同的框架,同样的,一种事实经常可以在不同的框架中进行阐述,一个情景可以用两种相对立的方式框定[10]。因此,语言的框架结构还应该是灵活可变的。 3框架语义学在教学中的作用及影响 框架语义学主要是描述语义和句式结构的理论,其应用主要集中在对于意义的研究,尤其是在词汇语义研究方面。例如,陈勇提出,在框架理论的指导下,词汇的同义现象应被分为框架之间的同义、同一框架内的同义这两种情况。而李春华和李勇忠则从认知功能的角度出发,以理想化的认知模型为基础,系统分析了框架转化在建构意义中的重要作用。另一方面,毛海燕以汉语框架网络知识库为基础,研究英汉词汇对比的程序和方式,构建了一个特殊的词汇语义对比模型,并且对该模型进行了一定程度的尝试性应用[11]。类似这类研究都使框架语义学对于语义理解的意义显得尤为重要,使人们对于框架语义学的理解更为深刻,也为语言学中语义语境方面的研究提供了重要的启发意义。 在阐释词汇、句法和语义现象的同时,框架语义学在编撰字典和创新语料库等方面也有所运用,同时,它还有助于第一语言习得、外语学习和外语教学。双语框架语料库可被用于课堂教学过程中,学生学习单词及其语义框架。而语义框架提供的背景知识可以提高学生学习单词及其他新知识的效率。教师则可使用语料库里的有关信息来编写练习,以弥补教学软件的不足。框架语义学作为认知语义学的一部分,是人们理解词义的过渡和桥梁,它以概念框架结构为基础,使人们在理解及表达语义的同时,对其框架中相互联系的概念、范畴及背景知识也有所了解。 4结语 认知语言学框架内的术语研究是一个全新的研究领域,这一领域已开始被冠之以专名“认知术语学”。[10]认知术语学是术语学与认知语言学相结合的产物,其中需要探讨和解决的问题还有很多。比如说,不同类型思维活动之间、某一知识领域概念的不同发展阶段之间存在

近期认知语言学相关国际刊物

《认知语言学》2010年第3期 Journal Title: Cognitive Linguistics Volume Number: 21 Issue Number: 3 Issue Date: September 2010 Main Text: Cognitive Linguistics Volume: 21, Number: 3 (September 2010) ________________________________________ The above issue is now available online from De Gruyter Mouton at: https://www.doczj.com/doc/2d5644096.html,/toc/cogl/2010/21/3?ai=ru&ui=w6&af=H The English past tense: Analogy redux Steve Chandler Who thinks that a piece of furniture refers to a broken couch? Count-mass constructions and individuation in English and Spanish Maria D. Sera and Whitney Goodrich Fields and settings: French il and ?a impersonals in copular complement constructions Michel Achard Differences in continuity of force dynamics and emotional valence in sentences with causal and adversative connectives Yurena Morera, Manuel De Vega, and Juan Camacho From premodal to modal meaning: Adjectival pathways in English An Van Linden The relation between iconicity and subjectification in Portuguese complementation: Complements of perception and causation verbs Rainer Vesterinen 《构式与框架》2010年第2卷第1期 Journal Title: Constructions and Frames Volume Number: 2 Issue Number: 1

认知语言学的研究目标_原则和方法

2002年3月 第34卷 第2期 外语教学与研究(外国语文双月刊) F oreign Language T eaching and Research(bim onthly) Mar.2002 V ol.34N o.2 认知语言学的研究目标、原则和方法 西南师范大学 文 旭 提要:认知语言学是语言学中的一种新范式,它包含许多不同的理论和研究方法。由于认知语言学把人们的日常经验看成是语言使用的基础,因此,在许多方面它与生成语言学存在很大的差别。本文在整合认知语言学各种理论方法的基础上,探讨了这一认知范式的研究目标、基本原则及研究方法。 关键词:认知语言学、语义、语法 [中图分类号]H0[文献标识码]A[文章编号]100020429(2002)02-009028 一、引言 认知语言学是语言学中的一种新范式,它包含许多不同的理论、方法及研究课题。认知语言学肇始于20世纪70年代,80年代中期以后其研究范围扩展到了语言学中的许多领域,如句法、意义、音系以及语篇等。其成熟的重要标志是1989年春在德国杜伊斯堡召开的第一次国际认知语言学会议以及1990年出版的《认知语言学》杂志。自诞生之日起,认知语言学就把自己置于认知科学这一大学科中,与哲学、心理学、人类学、计算机科学以及神经科学等结下了不解之缘,并逐渐成为当代语言学中的一门“显学”。 在过去20多年里,认知语言学研究在几个重要领域里已卓有成效,如范畴化、概念隐喻、转喻、多义性、拟象性以及语法化等(参见文旭1999,2001)。尽管认知语言学家内部在具体方法、感兴趣的课题、研究的切入点等方面还存在一些差别,但他们的研究目标和基本原则有许多共同之处。为了进一步理解并准确把握这一新的认知范式,本文拟对认知语言学的研究目标、基本原则、研究方法作一些解释与探讨。二、认知语言学的研究目标 语言是人类表达观念和思想的最明确的方式之一。从“表达观念和思想”的角度来研究人类语言,这种观点就是通常所说的“认知观”。这种观点认为,语言是认知系统的一部分,而认知系统由感知、情感、范畴化、抽象化以及推理等组成。这些认知能力与语言相互作用并受语言的影响,因此从某种意义上来说,研究语言实际上就是研究人类表达或交流观念和思想的方式。 当代语言学的一个基本特点就是对认知现实主义(cognitive realism)的承诺,即确认语言是一种心理或认知现象。语言学诸多门派都以探索隐藏在大脑中具有普遍性的人类语言机制作为终极目标,换句话说,语言分析的目的不只是描写人们的语言行为,而是解释引起语言行为的心理结构和心理过程,揭示语言行为背后内在的、深层的规律。像乔姆斯基、杰肯道夫(R. Jackendoff)、兰格克(https://www.doczj.com/doc/2d5644096.html,ngacker)、雷科夫(G. Lakoff)、比尔沃思(M.Bierwisch)以及赫德森(R.Huds on)这些代表不同理论方法的语言学家,他们的研究都具有这一目的。如果仅从这一目的来看,那么乔姆斯基的生成语法、杰肯道夫的概念语义学、赫德森的词语法(w ord gram2 ? 9 ?

认知语言学

对Goldberg构式语法的理解 构式语法(Construction Grammar)是上个世纪90年代兴起的、基于认知语言学而形成的一种语言研究的新方法,目前已经发展成为一种相对比较完善的语言学理论。构式语法理论一面世,很快引起语言学界的瞩目,目前已经成为国际语言学领域的研究热点之一。当然,国内也有不少学者介绍其理论,或运用该理论尝试解释现代汉语的一些语言现象,亦或对该理论加以评论。 构式语法理论是以认知语言学为理论背景的,通常被看作是认知语言学的一个分支,符合认知语言学的“整体大于部分之和”的完形原则,与Fillmore的“框架语义学”具有密切的联系。框架语义学是研究词义及句法结构的一种方法,从词汇语义视角阐释形式和意义之间的关系,认为要理解词语的意义就必须先具备概念结构,语义框架为词义的存在及其使用提供了背景和动因,为语义的描述与表征提供了思路,对构式语法理论是一个语义上的补足。 构式语法理论是在对转换生成语法理论批判的基础上产生的,是对形式语言学理论反思的结果。转换生成语法学派认为,语法格式是由生成规则或普遍原则的操作而产生的,表层结构的背后还有深层结构,不同的语法结构之间可以转换。构式语法理论则区分了动词的论元结构与构式结构,主张用构式义来解释语言中各种句法格式的语义,认为句法不是生成的,词汇项和语法结构之间没有绝对的界线,每个句法格式本身表示某种独立的意义,不同的句法格式有不同的句式意义。 Goldberg是构式语法理论建设的领军人物之一。在1995年出版的专著《构式:论元结构的构式语法研究》,Goldberg 建立了自己的构式语法理论框架。她表明,她的构式语法理论是在Fillmore,Lakoff等人的构式语法思想的基础上建立起来的。Goldberg认为,如果某一结构的特征不能完全从语法中业已存在的其他结构的相关知识推知,该结构可确定为独立存在的构式:C 是一个构式当且仅当C 是一个形式--意义的配对〈Fi,Si〉,且C的形式(Fi)或意义(Si)的某些方面不能从C的构成成分或其他先前已有的构式中得到完全预测。 构式被认为是语言的基本单位,如果短语型式的形式或意义的某些方面不能从其构成成分的特征或其他构式中得到完全预测,那么该短语型式是一个构式。也就是说,我们在语法中提出某个构式的原因是该构式的意义和\或型式不能从

认知语言学

认知语言学是语言学中的一种新范式,它包含许多不同的理论、方法及研究课题。认知语言学肇始于20世纪70年代,80年代中期以后其研究范围扩展到了语言学中的许多领域,如句法、意义、音系以及语篇等。其成熟的重要标志是1989年春在德国杜伊斯堡召开的第一次国际认知语言学会议以及1990年出版的5认知语言学6杂志。自诞生之日起,认知语言学就把自己置于认知科学这一大学科中,与哲学、心理学、人类学、计算机科学以及神经科学等结下了不解之缘,并逐渐成为当代语言学中的一门显学。 在过去20多年里,认知语言学研究在几个重要领域里已卓有成效,如范畴化、概念隐喻、转喻、多义性、拟象性以及语法化等(参见文旭 1999,2001)。尽管认知语言学家内部在具体方法、感兴趣的课题、研究的切入点等方面还存在一些差别,但他们的研究目标和基本原则有许多共同之处。为了进一步理解并准确把握这一新的认知范式,本文拟对认知语言学的研究目标、基本原则、研究方法作一些解释与探讨。认知语言学的研究目标 语言是人类表达观念和思想的最明确的方式之一。从/表达观念和思想0的角度来研究人类语言,这种观点就是通常所说的/认知观0。这种观点认为,语言是认知系统的一部分,而认 知系统由感知、情感、范畴化、抽象化以及推理等组成。这些认知能力与语言相互作用并受语言的影响,因此从某种意义上来说,研究语言实际上就是研究人类表达或交流观念和思想的方式。 当代语言学的一个基本特点就是对认知现实主义(cognitive realism)的承诺,即确认语言是一种心理或认知现象。语言学诸多门派都以探索隐藏在大脑中具有普遍性的人类语言机制作为终极目标,换句话说,语言分析的目的不只是描写人们的语言行为,而是解释引起语言行为的心理结构和心理过程,揭示语言行为背后内在的、深层的规律。像乔姆斯基、杰肯道夫(R.Jackendoff)、兰格克(https://www.doczj.com/doc/2d5644096.html,ngacker)、雷科夫(https://www.doczj.com/doc/2d5644096.html,koff)、比尔沃思(M.Bierwisch)以及赫德森(R.Hudson)这些代表不同理论方法的语言学家,他们的研究都具有这一目的。如果仅从 这一目的来看,那么乔姆斯基的生成语法、杰肯道夫的概念语义学、赫德森的词语法(word gram2mar)与兰格克、雷科夫等人的认知语言学是完全一致的,这样他们的理论似乎可以合法地称为/认知语言学0。然而/认知的承诺0只是一个纲领性的东西,它本身对语言理论的具体研究原则和方法并不起支配作用,对语言描写的内容和形式也未作具体的要求。因此,尽管乔姆斯基的生成语法、杰肯道夫的概念语义学、赫德森的词语法与兰格克、雷科夫等人的认知语言学都许下认知的承诺,但前者与后者代表的却是两个极端,所以前者也就不属于今天公认的认知语言学。 认知语言学主要包括雷科夫、兰格克、菲尔莫(C.Fillmore)、约翰逊(M.Johnson)、杰拉茨(D.Geeraerts)、福科尼耶(G.Fauconnier)以及塔尔米(L.Talmy)等人的语言学理论或方法。它认为自然语言是人类心智的产物,其组织原则与其他认知领域中的组织原则没有差别。语言作为人类认知的一个领域,与其他认知领域密切相关,并且本身也是心理、文化、社会、生态等因素相互作用的反映。语言结构依赖并反映概念的形成过程,而概念的形成过程又以我们自身的经验为基础,即是说,语言不是一个由任意符号组成的系统,其结构与人类的概念知识、身体经验以及话语的功能相关,并以它们为理据。语言单位(如词、短语、句子)是通过范畴化来实现的,而范畴化通常以典型 (prototype)为基础,并且涉及隐喻和转喻过程。语言单位的意义以身体经验为基础,其描写需参照相关的认知结构,如通俗模型(folk models)、文化模型(cultural models)以及认知模型(cognitive models)。把语言使用置于人类经验基础之上的最重要结果之一,就是要首 先强调意义的研究。正如维尔茨比卡(Wierzbicka1988:1)指出:/语言是一个整合的系统,在这个系统中一切都通力协作,传递意义)))词、语言结构以及言外手段(包括语调)。0费斯米尔(Fesmire1994:150)也指出,认知语言学摆脱了主流生成语言学的传统,/尽力解决人类是如何理解自己世界的意义这一问题0,并且把自己/置于人类经验这一潮流中,而不是纯粹的形式王国里0,因此,认知语言学/发展了一套人类理解的生态理论0。简言之,/认知语言学明确地承诺要把意义的身体维度、文化维度以及想象维度(imaginative dimension)结合起来0。很明显,意义是认知语言学研究的重要内容,而隐喻就成了认知语言学研究的焦点。语言学也就不再是对语言内部特征的一种自足的解释,而是揭示和解释人类认知的一种有力工具。 据上论述,我们大致可明确认知语言学的研究目标:寻找不能脱离形体的概念知识的经验证据,探索概念系统、身体经验与语言结构之间的关系以及语言、意义和认知之间的关系,即所谓的/关系问题0(the relationship question),发现人类认知或概念知识的实际内容,从而最终揭示人类语言的共性、语言与认知之间的关系以及人类认知的奥秘。显然,认知语言学的这一宏伟目标与当今人类最感兴趣的四大课题之一/揭示人类智能的奥秘0完全一致。 三、认知语言学的理论原则 认知语言学中虽有不同的理论方法,但它们在很大程度上是相互一致的,具有共同的理论原则。兰格克(1987:2)曾把认知语言学的理论原则概括为三个重要主张:第一,语义结构并不是普遍的,在很大程度上因语言而异。语义结构建立在约定俗成的意象(conventional image)基础之上,其描写与知识结构有关。第二,语法或句法并不构成一个自主的表征形式层次,相反,语法实际上具有符号性,存在于语义结构的规约符号化中。第三,语法与词汇之间没有意义上的区别。词汇、形态和句法形成一个符号结构的连续统,这些符号结构虽因不同的参数有别,但可以任意划分为不同的成分。雷科夫从更基本的层次阐述了认知语言学的理论原则。不过,他是用/承诺0(commit2ments)来谈的。他(1990:3)认为,认知语言学有 两个根本承诺:第一,概括的承诺:对支配人类语言各个方面的一般原则进行描写;第二,认知的承诺:从语言学以及其他学科出发,使对语言的解释与有关心智和大脑的一般知识一致。当然,兰格克和雷科夫提出的理论原则只代表两家之言,并未囊括认知范式中所有的基本原则。笔者认为,至少有六个基本原则可以把认知语言学中的不同理论方法联系起来: 1)概念语义原则 意义等同于概念化(conceptualization),即心理经验的各种结构或过程,而不是可能世界中的真值条件:一个表达式的意义就是在说话人或听话人的大脑里激活的概念,更为具体地说,意义存在于人类对世界的解释中,它具有主观性,体现了以人类为宇宙中心的思想,反映了主导的文化内涵、具体文化的交往方式以及世界的特征。这一原则表明,意义的描写涉及词与大脑的关系,而不是词与世界之间的直接关系。 2)百科语义原则 词及更大的语言单位是进入无限知识网络的入口。对一个语言表达式的意义要进行全面的解释,通常需要考虑意象(视觉的和非视觉的)、隐喻、心理模型以及对世界的朴素理解等。因此,一个词的意义单靠孤立的词典似的定义一般来说是不能解决问题的,必须依赖百科知识方可达到目的。 3)典型范畴原则 范畴并不是由标准)属性模型(criterial2at2tribute models)定义的,也不是由必要和充分特征定义的(Lakoff1987;Taylor1989);相反,范畴是围绕典型、家族成员相似性,范畴中各成员之间的主观关系组织起来的。 4)语法性判断的渐进原则 语法性判断涉及范畴化。一个话语的语法性或可接受性并不是二分的,即要么可接受,要么不可接受,而是渐进的。因此,语法性判断是渐进的,并且同语境、语义以及语法规则密切相关。认知语言学家并不像生成语法学家那样,要把语法写成是一部生成一种语言中所有并且是唯一合乎语法的句子那样的语法,因为语法性判断具有渐进性、可变性以及语境的依赖性,要实现生成语法学家所期望的目标显然十分艰难。 5)语言与其他认知机制相关原则 认知语言学之所以为认知语言学,是因为它要在一般的认知中寻找语言现象的类似物。认知语言学家积极吸收心理学关于人类范畴化、注意以及记忆等的研究成果来丰富自己的理论,从而使认知语言学更加具有活力。由此可见,语言与其他认知机制具有密切的关系。

相关主题
文本预览
相关文档 最新文档