Abstract A Complete Guide to the Future
ABSTRACT

Semantic Web Services: description requirements and current technologiesRubén Lara Holger Lausen Sinuhé Arroyora@uibk.ac.at usen@uibk.ac.at sinuhe.arroyo@uibk.ac.atJos de Bruijn Dieter Fenseljos.de-bruijn@uibk.ac.at dieter.fensel@uibk.ac.atUniversität Innsbruck/Technikerstrasse, 136020, Innsbruck, AustriaABSTRACTSemantic Web Services aim at providing a new level of functionality on top of the current Web and current services, by enabling automatic discovery, composition, invocation and interoperation of Web Services. Different efforts are addressing some of the requirements to enable such next generation services, with different degree of success. Nevertheless, to achieve the main goals addressed by Semantic Web Services, an appropriate semantic description, supporting automation of discovery, composition, invocation and interoperation, must be defined. In this paper, a set of requirements on the information a Semantic Web Service must expose in order to fulfill these major objectives is presented. These requirements are related to the different initiatives in the area, and proposals for useful extensions and combinations of these efforts are discussed.Categories and Subject DescriptorsH.3.5 [Information Storage and Retrieval]: Online Information Services – web-based services, commercial services.General TermsStandardization, Languages.KeywordsWeb services, semantics, semantic web, semantic web services, semantic web services description, service ontology, WSMF, DAML-S, BPEL4WS, BPML, WSCI. 1.INTRODUCTIONWeb services extend the Web from a distributed source of information to a distributed source of service. Semantic Web has added machine-interpretable information to Web content in order to provide intelligent access to heterogeneous and distributed information. In a similar way, Semantic Web concepts are used to define intelligent web services, i.e., services supporting automatic discovery, composition, invocation and interoperation. This joint application of Semantic Web concepts and web services in order to realize intelligent web services is usually referred as Semantic Web Services.Due to the huge potential impact of semantic web services (SWSs for short) in areas like enterprise application integration and electronic commerce, several efforts, both academic and industrial, have jumped into the arena with the purpose of bringing semantic web services to its full potential. These initiatives are addressing different aspects of the requirements needed to realize semantic web services. They are sometimes complementary, but conflicts between the different approaches also appear. These efforts try to improve current web service technology around SOAP, WSDL and UDDI, which provides very limited support for real automation of services.One of these initiatives is the Web Services Modeling Framework (WSMF), which aims at providing an appropriate conceptual model for developing and describing services and their composition, based on the principles of maximal decoupling and scalable mediation [8].Another running project is DAML-S, a DARPA effort to describe an ontology of web services with the objective of making web services computer-interpretable and hence enabling discovery, invocation, interoperation, composition, verification and execution monitoring of services [5].BPEL4WS [1] and BPML [4]/WSCI [20] have similar functionalities, both aiming at defining a language to describe process models, as well as public process interfaces and servicechoreography support, to provide conversational and interoperation means for web services.Regarding W3C activities in the area, its initiative to define a setof requirements on service description pays little or no attentionto semantic support, hence offering a weak basis to make automation of functionality possible [21].Among the presented approaches, WSMF is the one with the widest scope, as it describes a full-fledged framework with the purpose of making the use of semantic web services a reality. Nevertheless, a concrete realization of the conceptual requirements it presents is still under development in the contextof the EU-funded project SWWS1. DAML-S focuses on providing semantics to web services descriptions, although some caveats, limitations and lacks have been identified within the proposed ontology. The initiatives focusing on the modeling of business processes, BPEL4WS and BPML/WSCI, do not incorporate any semantics to their modeling primitives, neither for private nor for public processes, thus providing limited support for dynamic discovery, composition and invocation [18].Whatever the approach and intended purpose, every initiative relies on a specific way to describe web services. Discovery, composition, invocation and interoperation strongly depend on how services are described and exposed for subsequent use. The way a service is described determines to what extent other constructs can provide automation support.WSMF proposes a service description framework which fulfillsthe requirements for semantic web services. Nevertheless, it needs some refinements and a specific grounding of the proposed description concepts. Therefore, the approach presented in this paper takes this framework as a starting point to determine the requirements for a meaningful service description.In this paper, and taking WSMF as a basis, we present a set of requirements for web services description and present grounding guidelines considering the features provided by current efforts. The paper is structured as follows. In section 2, capabilities are presented as the central description support for discovery and composition. Section 3 presents description needs for interoperation of services. Section 4 addresses the concrete grounding of services for invocation. In Section 5, other issues such as service compensation are discussed. Finally, section 6 presents conclusions and future work.2.Capabilities and description requirementsfor discovery and compositionAutomatic discovery and composition of services are probably the biggest challenges Semantic Web Services are facing. Finding a suitable way to put these two features together has become one ofthe key points to convert the Web in a distributed source of computation, as they enable the location and combination of distributed services to perform a required functionality.Automatic Web service discovery involves automatically locating Web Services that provide a particular functionality and that adhere to requested properties [11]. To provide such an automatic1 Semantic Web enabled Web Services. / location, the discovery process should be based on the semantic match between a declarative description of the service being sought, and a description of the service being offered. This problem requires not only an algorithm to match these descriptions, but also a language to declaratively express the capabilities of services [12].Furthermore, composition of Web Services requires something more than representing combinations of services where flow and bindings to the services are known a priori. It also must allow the combination of services to provide a given functionality when a request can not be fulfilled by using available services individually [15].Discovering and composing services needs an approach based on semantic descriptions, as the requester required functionally has to be expressed in a high-level and abstract way to enable reasoning procedures.Composition and discovery work together in different ways. The following examples depict different scenarios where location and combination of services take place:- A user wants to book a flight from Innsbruck to Madrid, for next Wednesday and with a fixed maximum price. With this information, discovery will look for a service accepting origin, destination, date and maximum price and providing a seat for an appropriate flight. In the case where such a service is not available, but only a service to look for flight information given trip data and another service to book a flight given flight information can be found, combination must be performed. By combining these two services, the requested functionality can be provided.- A travel agency models its business process to provide a “make a trip” service. The agency explicitly models control and data flow between the different services involved (book a flight, book a hotel, book a car…). In this case, composition is explicitly modeled at provider side. But in the situation where the agency does not want to limit the book flight service to a given company, a high-level description of the required service must be provided in the process model to enable dynamic discovery (and composition if not a single service can fulfill the requirements) of the best available service to book the flight based on requester criteria.These two examples illustrate the main roles of composition and discovery to provide a required functionality. Although these use cases can be modified and extended in a number of ways and different examples can be depicted, all of them rely on a high-level description of the functionality being sought.2.1Capability descriptionThe required high-level functionality description can be viewed as the capability of the service. Different services can provide the same capability, e.g., book a flight, and the same service can provide different capabilities, e.g., search a book and search a movie.In this sense, capabilities must be naturally described separately from specific service descriptions [8] for several reasons:- Express generic functionalities: Several services offering the same functionality but with different specific refinements should be related to the same generic high-level capability. Refinements can then be specified by different services. This approach is related to concepts taken from Problem Solving Methods research, and it inherits some of their advantages, as the ones highlighted in [7] and [9].- Use different terminologies: Refinements done by a given web service can be expressed using a different terminology from the one used to describe their capability, thus increasing flexibility, as requiring the use of the same terminology is sometimes unrealistic.- Allow a given service to present two different capabilities while exposing only one service description.- Support discovery process: Discovery first needs capability descriptions. Refinement based on actual input, output and requirements is performed in subsequent steps. Thus, separating capabilities and referring service refinements to them establishes a natural link to the discovery process.Declarative means to define capabilities, as well as specific service refinements and the link between refinements and capabilities are needed. This description must allow reasoning about the information presented by the service. Several works in the area use subsumption reasoning, i.e., determining whether a given concept is more general than another, to support discovery and composition, either looking for just one service providing the required functionality [12] or composing different services [2], like in the travel agency example exposed before.To support dynamic discovery and composition, a capability must include the following information:- Pre-conditions: High-level inputs to the service together with conditions over these inputs. These inputs are concepts of a given domain ontology. Each pre-condition will include an identifier to allow future references. High-level input means that more specific concepts in the ontology can be found, e.g. indicating payment information as a pre-condition, instead of credit card information or bank information or even data types. If a too specific concept is given as a pre-condition, then the capability will hardly express generic functionalities. It is important to notice that the pre-conditions of a given capability are not independent of each other, as they all define the functionality expressed in the capability.- Post-conditions: High-level results of the service execution together with conditions over these results. The results are also concepts of a given domain ontology. Identifiers are also defined for post-conditions, and as with pre-condition, they cannot be considered independent, as the removal of one of them changes the functionality expressed by the capability.- Textual description: To allow human interpretation.- Services: References to the services presenting the described capability.- Identifier: Identifier to allow references to the capability. Pre and post-conditions define the capability of the service in terms of the information needed to use the service and the results of its invocation. Describing capabilities by expressing their functionalities in terms of required high-level input and high-level results covers the following requisites:- Modeling a process at design time. In this case, the workflow and data flow is defined a priori, at least partially. Thus, the declaration of the use of a capability must enable the specification at design time of the input and the result of the service. This information is needed to model data and control flow. Nevertheless, this information must be kept general enough to describe generic service functionalities, allowing dynamic location and combination of services. For example, in a business process using a service to buy some goods and another service to ship them, the result of the buy_goods service must be used by the ship_goods service, and the required data and control flow must be designed. Other approaches like relating the capability to a task ontology describing possible requested functionalities cannot be used in this context, as they don’t provide enough information to define flow at design time.- Dynamic discovery: Subsumption algorithms, as the ones presented in [12] and [2] are supported by relating pre and post-conditions to the appropriate domain ontology and by using the specific services refinements, presented in the next subsection.- Dynamic composition: Combination of services to fulfill a given functionality can be performed by expressing functionality in terms of pre and post-conditions, as described in [2].- n to m mappings: Describing a capability using pre and post-conditions and not including low-level input and output information, enables n to m mappings between capabilities and services, thus allowing the description of generic functionalities and the declaration of different generic functionalities by the same service. Lower level inputs and outputs must not be included in the capability description as this would prevent these features and would imply several modeling problems, as explained in [14].Textual information is used to let the human user browse capabilities. Capabilities must be understandable by humans and machines [13], as a process designer may need to search suitable capabilities to include in a process model at design time. References to the services presenting the capability are specified to enable the location of refinements of the described generic functionality, i.e., the location of specific services during discovery and composition process.2.2Capability refinementsOnce a capability is described, different services presenting this capability can refine it. In this way, specific requirements, constraints and results of an individual service can be expressed. To avoid redundancy, the service will only explicitly describe the refinements it introduces, not repeating the information already enclosed in the capability description. Figure 1 depicts the relationship between capabilities and services:Figure 1. Relationship between capabilities and servicesBy defining the service refinements, a complete high-level description of the input required by the service and the result of its execution is given. Nevertheless, actual input and output data is needed to express the low-level details of service functionality. These inputs and outputs are naturally related to pre and post-conditions, as they constitute the realization in terms of data of high-level conditions.Therefore, the information to be exposed by an individual service to refine generic functionalities is the following:- Identifier: information for service references.- Textual description: human-understandable information.- Capability references: references to the capability or capabilities presented by the service.- Pre-condition refinements: pre-conditions refining the ones presented by the capability. If it is a refinement of one or more pre-conditions defined in the capability, a reference to them will be included. This is the case of a service referring to a capability requiring general payment information as pre-condition, while the service accepts only information about credit card. Also new pre-conditions are allowed, and identifiers for every new pre-condition or refinement must be included. In general, pre-condition refinements reflect the strengthening of pre-conditions. - Inputs: actual input data information. Inputs are grouped and referred to the pre-condition the group realizes, either from the generic capability or from the service refinements. To allow polymorphism, different sets of inputs can be defined for the same pre-condition. For example, in the case of a service accepting different ways of payment (credit card, bank transfer…), different input data is required depending on how the requester wants to pay. However, it is natural to define only one interface for the service. Therefore, this service will have a pre-condition “payment information”, with different sets of inputs associated to it for credit card payment, bank transfer payment, etc. Which specific set of inputs is used will be decided at run-time.- Post-condition refinements: refinements or new post-conditions. They are defined following the same mechanism as pre-conditions. Refinements of existing post-conditions reflect the weakening of the capability post-conditions, whereas adding new ones reflects the strengthening of the capability post-conditions- Outputs: actual output data, described in the same way as inputs.In figure 2 the refinement of pre-conditions and how the inputsrealize them is depicted:Figure 2. Pre-conditions refinements and pre-conditionsrealizationIn the figure above, service pre-condition 1 refines the first pre-condition defined in the capability. Inputs group 1 gives actual data for the refined pre-condition. Service pre-condition 2 is a new pre-condition, not existing in the capability exposed, and realized by inputs group 2. Capability pre-conditions 2 and 3 are not modified, so inputs groups 3 and 4 directly refer to these pre-conditions. As explained before, the refinement of more than one pre-conditions together is also possible.By defining capabilities, refinements and actual input and output data using appropriate ontologies, service description exposes enough information to enable automatic discovery and composition. Refinements and information about input and output data can also be used to locate a required service, as well as for composition, thus providing appropriate expressivity power for the requester. Therefore, the requester is not limited to locate and combine generic capabilities, but he can also express more detailed needs.2.3Relation to current technologiesAlthough the requirements presented above for describing service functionalities reflect the ideas contained in the WSMF approach, they extend and refine the description means outlined in the framework.Once these extensions and refinements are defined, they must be expressed using an appropriate ontology to provide semantics to the information exposed by the service. In this sense, neither BPEL4WS nor BPML/WSCI include any suitable mechanism, as they do not use similar concepts to capabilities or refinements and they do not add any semantic information.Therefore, DAML-S is the only potentially reusable work to define the desired ontology. The existing ontology of services, currently at version 0.9, includes profiles and service models, which purposes are similar to the ones of capabilities and refinements respectively. However, the DAML-S ontology presents serious limitations if left as it is. First, input and output is included in the profile, preventing polymorphism and n to m mappings between profiles and specific service models. Second, pre and post-conditions (pre-conditions and effects in DAML-S terminology) of the concrete service model are not related to the ones presented at the profile. Third, inputs and outputs are not related to pre-conditions and effects. Fourth, using different sets of inputs and outputs for a given pre or post-condition is not allowed. All these limitations imply service modeling problems, as analyzed in [14].In conclusion, the DAML-S ontology can be used as a basis to define semantics for service functionality descriptions, but it must be considerably changed and extended to present the properties and requirements presented in this section.3.Interoperation and current technologiesOne of the main purposes of web services is the automation of application integration within and across organizational boundaries. This implies necessarily the need for interoperation between services. This interoperation can be between services in an organization or crossing different organizational boundaries. To ensure automatic interoperation, description means must be defined declaratively using explicit semantics.Business collaborations require long-running interactions driven by an explicit process model [17]. Thus, a service must explicitly model its business process which will contain decision mechanisms for the execution of the service. But following one of the main principles of WSMF, no internal details of the organization business logics should be made publicly visible. Therefore, while a process model and its data and control flow must be designed explicitly to ground the execution and public behavior of a given service, it must not be exposed. Nevertheless, the external behavior of the service in terms of message interchange must be made public in order to enable automatic interoperation of the service with any other service. In this sense, the public description of a service must include a conversational interface which allows interoperation while not revealing any private detail.Figure 3 illustrates the relationship between the private process model and the public process model in terms of visibility. Private process model grounds the public model and drive its actualbehavior, but only the public process model is made public.Figure 3. Public and private process models visibility2 Although the main purpose of this paper is to define public description requirements for semantic web services, private process modelling deserves some analysis given its close relationship with public process models.Concerning private process models, both BPEL4WS and BPML offer a rich set of primitives to model the workflow of the service, supporting composite processes based on web services. In [19] and [16] a pattern based analysis of both languages can be found. This work analyzes BPEL4WS and BPML/WSCI using a set of workflow and communication patterns to clarify if they provide sufficient modeling primitives for any possible abstract situation. The result is similar for both, as they support most of the patterns described, either directly or using workarounds.Both approaches clearly separate private and public process models. BPEL4WS introduces the concept of executable process for private processes and abstract process for public processes. Similarly, BPML is used to model private processes while WSCI is concerned with the choreography and public interoperation of services. However, as stated before, both languages lack semantics to expose its public interface as well as the possibility of expressing the use of a service within the private process model in terms of the capability it presents.DAML-S must be analyzed for this purpose, as it is the only initiative including explicit semantics. However, an appropriate service ontology requires a richer set of process modeling primitives, as the concepts described in the DAML-S process model are not powerful enough to support some of the communication and workflow patterns required. And what is more, DAML-S does not distinguish between private and public processes, allowing internal details to be exposed via a composite process. Thus, although DAML-S provides ontological support for service modeling, its limitations prevent his direct use to publish interoperation information.Our proposal is to add semantics to either BPEL4WS or BPML/WSCI modelling mechanism for conversational interface 2 From the presentation “Principles of integration: Are Web Services heading in the right direction?”, Christoph Bussler, Innsbruck 19.05.2003and integrate these semantics into the service ontology. That means replacing the process model in DAML-S by a BPEL4WS or BPML/WSCI-based model, including the necessary public information to expose the behaviour of the service in terms of message interchange.Summarizing, the public description requirements for interoperation, which will be grounded in the way previously discussed, are the following:- External behavior of the service in terms of message interchange and message sequencing must be described.- No information about internal business logics should be exposed.- The public process exposed must be grounded by an appropriate private process, which must allow the use of capabilities and refinements at design time to specify the service to be used and its dynamic location and composition.Deciding whether BPEL4WS or BPML/WSCI can be used to fulfill these requirements is out of the scope of this paper. In any case, they must be semantically grounded and extended to use generic capabilities and refinements at design time in the way described in the previous section, and included in the service ontology with the necessary extensions.Also the use of Abstract State Machines (ASMs) [3] to model business processes is being analyzed, as they present several interesting properties, namely: express functionally complete but abstract description that can be understood by a human reader, define every system features as far as it is semantically relevant for the required functionality and contain only what the logic of the problem requires for the system behavior. Furthermore, the grounding model is implemented following a refinement process, trough a hierarchy of intermediate models, and ASMs also allow structuring the system horizontally by building it from components with abstract definitions of behavior and interactions trough interfaces.Though ASMs properties make them suitable for its use to describe service conversational interfaces and their corresponding groundings, none of current efforts use ASMs. As this paper tries to ground description requisites using existing technologies or extensions and combinations of them, introducing ASMs is out of the scope of this paper, although it will be part of future work.4.Service invocationThe requirements presented so far deal with the expression of declarative functionality and the publication of conversational interface. This information will support discovery, composition and interoperation, but declarative means to enable invocation of a given service are still missing in the picture.Invocation information presented by a given service must be agnostic in principle with respect to the specific technologies which will ground it. Nevertheless, details must be available at run-time for the service requester in order to perform a real invocation. These details must relate every aspect of the declared functionality to a ground mechanism, e.g., SOAP on HTTP. Grounding mechanisms are provided within BPEL4WS, BPML/WSCI and DAML-S, although most of the examples available are focused on WSDL and SOAP grounding. Considering the need for an effective and platform independent invocation, input and output data, messages and message sequencing must be declaratively related to a specific technology and exposed in the public service description. In this sense, service ontology must include concepts to express this relationship, as the “grounding” concept defined in DAML-S ontology.Due to the semantic link to the required grounding, DAML-S should naturally be used as a starting point as it already contains a declarative grounding mechanism [6]. Nevertheless, the DAML-S ontology relates grounding directly to a given service, hence not supporting polymorphism and encountering problems while grounding a real service, as the ones highlighted in [14]. As a consequence, extensions to DAML-S grounding mechanism are to be introduced in order to support the grounding of the description means introduced in sections 2 and 3. Different groundings for every set of inputs must be defined, and the use of a concrete grounding should be decided at run-time. Furthermore, conversational interface, not defined in DAML-S ontology, must be related in a similar way to a concrete technology.However, the basic DAML-S grounding mechanism can be reused and refined make it usable for automatic invocation. After the outlined refinements are performed, services presenting all the properties required in this paper can be grounded using such ontology.pensation and other requirementsUntil now, the optimistic assumption “everything works well” has been implicitly made. No errors were considered, although they appear in computer systems more frequently than desired. Due to this fact, an intelligent service description must take into account possible errors and how to deal with them.For this purpose, error data must be described in addition to input and output data. A SWS description should include one or more error ports, to provide error information to the requester potentially at different points of execution. These error ports must refer to an appropriate ontology in the same way inputs and outputs do. Error ports can be thought as special types of outputs, so the same requirements apply to them, although they are not referred to any pre or post-condition. Error ports, as well as inputs and outputs, will be used in the same way in the definition of the conversational interface, establishing at which point of execution a concrete input is required, when outputs are delivered to the requester, and where specific error ports may report error information. These ports will also be included in the service grounding information.In the context of semantic web services, dynamic location and combination of services implies that no a priori assumptions can be made about the duration of a service invocation. For this reason, the use of traditional ACID transactions [10] to deal with errors is not useful in this context, as they require blocking resources for an undefined amount of time. Therefore, the concept of compensation has appeared to substitute classic transactions. Compensating a service means to invoke one or more services to undo the actions of the former one. For instance, a service to book。
考博士英语试题及答案

考博士英语试题及答案一、阅读理解(共40分)1. 阅读下列短文,然后根据短文内容回答问题。
(每题2分,共10分)[短文内容略](1) What is the main idea of the passage?(2) What does the author suggest about the future of technology?(3) Why are some people hesitant to adopt new technologies?(4) What is the role of education in technological advancement?(5) How can individuals contribute to the development of technology?2. 阅读以下文章,然后根据文章内容选择最佳答案。
(每题2分,共10分)[文章内容略](1) A(2) B(3) C(4) D(5) E3. 阅读以下文章,并根据文章内容回答问题。
(每题3分,共20分) [文章内容略](1) What is the primary purpose of the article?(2) How does the author describe the impact of globalization?(3) What are some of the challenges faced by developing countries?(4) What solutions does the author propose to address the issues?(5) What is the author's conclusion regarding the futureof globalization?二、词汇与语法(共30分)1. 根据句子意思,选择正确的词汇填空。
新核心综合学术英语教程Unit4解析

Language Points
■ Words and Phrases:
• physician-assisted suicide 安乐死 • mean incidence 平均概率 • amount to 总计 • ALS=amyotrophic [eɪmaɪə'trɒfɪk] lateral sclerosis [sklə'roʊsɪs] 肌
Language Points
■ Sentences:
• 5. In the current study it was found that the pain factor remained at the 25% level, showing no significant differences between the 5-year period before and after implementation of the Euthanasia Act, albeit [ˌɔːl'biːɪt] that in recent years pain as a reason for a request seemed to decrease again. (Line 66-69)
Language Points
■ Sentences:
• 4. It should be noted that implementation of the Act took place after extended political and media discussion and therefore, may have been a formalization of an already existing practice rather than a turning point in attitudes. (Line 55-57)
学术英语(社科)Unit 5

Unit 5
Sociology Matters
Text A
Critical reading and thinking of Text A
Text Analysis 6 McDonaldization
the process through which the principles of the fast-food restaurant have come to dominate certain sectors of society, both in the United States and throughout the world
Unit 5
Sociology Matters
Text A
Critical reading and thinking of Text A
Text Analysis 2 Cultural universals
adaptations to meet essential human needs, such as people‟s need for food, shelter, and clothing
Unit 5
Sociology Matters
Text A
Difficult sentences
•
The cultural practices listed by Murdock may be universal, but the manner in which they are expressed varies from culture to culture. (Para.3) → These cultural practices in Murdock‟s list are common to many societies, but these practices are carried out in ways that differ greatly among different cultures.
学术英语写作Unit-5----Abstract

Informative abstraห้องสมุดไป่ตู้ts
An informative abstract provides detail about the substance of a piece of writing because readers will sometimes rely on the abstract alone for information. Informative abstracts typically follow this format:
Unit 5 Abstract
What is an abstract? Types of abstracts Why write an abstract? What should the abstract include? How do you write an abstract? What is the style of an abstract? An outline for writing an abstract Common problems in writing an abstract Difference between an abstract and an introduction The Tricks, Conclusion of the lecture
3. evaluative abstracts: comment on the worth of the original are included.
Difference between descriptive abstracts and informative abstracts
学术英语写作Unit 5 Abstract

What is an abstract?
An abstract is a stand-alone statement that briefly conveys the essential information of a paper, article, document or book; presents the objective, methods, results, and conclusions of a research project; has a brief, non-repetitive style. An abstract is a summary of a body of information. Sometimes, abstracts are in fact called summaries-sometimes, executive summaries or executive abstracts. There are different kinds of abstracts— your technical report uses two types: the descriptive abstract and the informative abstract.
Descriptive Abstracts
In this type of abstract, you don't summarize any of the facts or conclusions of the report. The descriptive abstract does not say something like this: Problem: Based on an exhaustive review of currently available
211245397_理论进化的视角下文化艺术赋值产品的新思考

第44卷 第10期 包 装 工 程2023年5月 PACKAGING ENGINEERING 297收稿日期:2022–12–20基金项目:教育部产学合作协同育人项目(202102298002);南京林业大学2021年度教学质量提升工程美育专项教学改革(2021-ZXGG-012);南京林业大学2022年度教学质量提升工程创新创业项目专项教学改革;南京林业大学家居与工业设计学院院级思政示范课程建设项目(第二期);南京艺术学院2019年教改研究课题(JKWQQPY19);国家留学基金委艺术人才培养计划作者简介:刘俊哲(1981—),男,博士,讲师,主要研究方向为工业设计、地域文化设计。
理论进化的视角下文化艺术赋值产品的新思考刘俊哲,王倩,刘彦(南京林业大学 家居与工业设计学院,南京 210037)摘要:目的 从理论进化的角度梳理艺术产品、现代产品与传统手工艺产品三者的联系与差异,并总结理论模型。
方法 通过将选定的具有代表性的艺术产品、现代产品与传统手工艺产品案例,在技术的先进性、设计思想的先进性、艺术思想的先进性三个维度进行考察和比较。
结果 艺术产品、现代产品与传统手工艺产品三者在技术的先进性、设计思想的先进性、艺术思想的先进性三个维度存在显著差异。
结论 与传统手工艺产品相比,现代产品在技术的先进性、设计思想的先进性、艺术思想的先进性三个维度有较高的得分,因此更适用于现代生活的需求。
而与现代产品相比,大多数文化艺术赋值产品仅在艺术思想的先进性方面有较高的得分,在技术的先进性、设计思想的先进性两个方面没有先进性的表现。
文创产品、文旅产品同属文化与艺术赋值产品,需要在艺术思想、技术、设计思想三个维度进行富有先进性的开发与创新。
关键词:文创产品;文旅产品;理论进化;艺术产品;手工艺产品中图分类号:TB472 文献标识码:A 文章编号:1001-3563(2023)10-0297-09 DOI :10.19554/ki.1001-3563.2023.10.032New Thoughts on Cultural and Artistic Valuation Productsfrom the Perspective of Theoretical EvolutionLIU Jun-zhe , WANG Qian , LIU Yan(College of Furnishings and Industrial Design, Nanjing Forestry University, Nanjing 210037, China)ABSTRACT: The work aims to comb the relationship and differences among art products, modern products and traditional handicrafts from the perspective of theoretical evolution and summarize the theoretical model. The selected representative samples of art products, modern products and traditional handicrafts were compared and discussed in the three dimensions of advanced technology, advanced design idea and advanced artistic thought. There were significant differences among art products, modern products and traditional handicrafts in the three dimensions. Compared with traditional handicrafts, modern products get higher scores in the three dimensions of advanced technology, advanced design idea and advanced artistic thought and are more suitable for the need of modern life. Compared with modern products, most cultural and artistic valuation products only get higher scores in advanced artistic thought, but do not display excellent performance in advanced technology and advanced design idea. Cultural and creative products and cultural tourism products both belong to cultural and artistic valuation products, requiring progressiveness development and innovation in the three dimensions of advanced technology, advanced design idea and advanced artistic thought. KEY WORDS: cultural and creative product; cultural tourism product; theoretical evolution; art product; handicraft298 包 装 工 程 2023年5月哲学家和艺术家长期以来一直在争论艺术的定义。
《英语学术论文写作教程》教学课件 Unit 6 Abstract

Abstract
Questions: 3. What tenses are used in this abstract? How are these
tenses used?
Past tense and present tense are used in this abstract. The opening statement and the purpose of the research are in the present. The past tense is used in the discussion about the methodology, results and conclusion.
英语学术论文写作教程
Unit 6 Abstract
Overview
An abstract is an overview of a research paper. It always appears at the beginning of the paper, acting as the point-of-entry. An abstract may explicitly or implicitly give information about Research Background, Introduction, Objectives, Methods, Results, and Conclusions, providing readers with brief preview about the whole study, upon which many readers depend to decide whether to read the entire paper or not. Therefore, as your first readers, publishers of some journals may determine a rejection of your manuscript by skimming the abstract alone.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A Complete Guide to the FutureFrank S.de Boer Dave ClarkeCWIAmsterdam,Netherlands Einar Broch Johnsen Department of Informatics University of OsloAbstractWe present the semantics and proof theory for an object-oriented language with active objects,asynchronous method calls,and fu-tures.The language,based on Creol,distinguishes itself in that un-like active object models,it permits more than one thread of control within an object,though,unlike Java,only can be active within an object and rescheduling occurs only at specific release points.A consequence is that it reestablishing an object’s monitor invariant becomes possible at specific well-defined points in the code.The main technical result of this paper is a complete proof theory for reasoning about our language.This proof theory is simple com-pared to previous work on similar proof theories for Java.This is evidence that the present approach to concurrency is simpler to rea-son about than,say,Java’s multithreaded concurrency model.From a methodological perspective,we identify constructs which admit a simple proof theory and those which require more complicated means such as interference freedom tests.Categories and Subject Descriptors F.3.1[Specifying and Verify-ing and Reasoning about Programs]:Logics of programs General Terms Languages,VerificationKeywords distributed programming,object-oriented program-ming,asynchronous method call,futures,proof theory1.IntroductionThe increasing importance of distributed systems emphasizesflex-ible communication forms between distributed processes.While object-orientation appears to be a natural paradigm for distributed systems[18],the tight coupling between objects traditionally en-forced by method calls may be criticized.Asynchronous method calls have been proposed as a means to combine object-orientation with distributed programming,allowing a looser coupling between a caller and a callee than in the tightly synchronized(remote) method invocation model.Return values from asynchronous calls are assigned to so-called futures[4,11,14,21,28].In this paper, we develop a kernel language for distributed concurrent objects in which asynchronous method calls is the basic communication construct.Concurrent objects are potentially active:synchronized communication as well as sequential execution appear as special cases of asynchronous method calls between objects.The proposed[copyright notice will appear here]kernel language combines the concurrency model of Creol[19],an object-oriented language for concurrent objects,withfirst-order fu-tures,and is presented in a Java-like syntax.Futures are not trans-parent but may be communicated between objects,enabling future return values from asynchronous method calls to be shared among the concurrent objects.The paper presents a operational semantics and type system for this kernel language,establishes type sound-ness,and introduces a novel proof theory for concurrent objects with asynchronous method calls and futures.The adopted concurrency model is based on concurrent objects, each with its own processor.Inside a concurrent object,method activations are executed in an interleaved way.Thus execution in an object is reminiscent of monitors,but explicit signaling is avoided by introducing so-called release points at which control may change between different method activations competing for the object processor.The interleaved execution of method activa-tions allows different activities to be pursued within the concurrent object;in particular,active and reactive object behavior are easily and dynamically combined within an object.Whereas an active ob-ject usually relies on some preselected method to define its active behavior,we exploit asynchronous method calls as triggers of con-current activity.Any method may be called both synchronously and asynchronously.In fact,synchronous method calls will be treated as a special case of asynchronous calls,for which execution blocks while waiting for the reply.Thus,synchronous calls restrict the nat-ural concurrency of the model by sequentializing activity.Asyn-chronous method calls may be regarded as a delegation technique, spawning concurrent activities in other objects while the caller pro-ceeds with its execution.Futures extend this technique to include the forwarding and sharing of replies to method invocations.As futures are statically recognized,each object sharing a future may choose to either block,with or without releasing control while wait-ing for the reply associated with the future.Proof theories for multithreaded object systems are complicated by the interference problem for shared variables,which appears when threads operate concurrently in the same object.Reasoning about programs in this setting is highly complex[1]:Safety is by convention rather than by language design[3].The simplicity of the proof theory proposed in this paper,in contrast to that of, e.g.,multithreaded Java,is a major advantage of concurrent object models compared to multithread concurrency.The proposed proof theory uses a local assertion language to describe the local state of an object.Local assertions are used to express the pre-and postconditions of methods and the monitor invariants.On the other hand,a global assertion language is used for describing invariant properties of inter-object synchronization. In this paper we present a novel view of an object as maintain-ing multiple local monitor invariants and a global synchronization constraint.The local invariants monitor the different release points of an object.These multiple monitors require a novel proof theory for their mutual dependencies in establishing their invariance.This12006/10/2clear separation of concerns between intra-and inter-object syn-chronization is reflected in the completeness proof which is based on a semantic characterization of the global invariant in terms of futures and local history variables which record for each object its externally observable behavior,as specified by its method calls, method invocations,and its return statements.The internal schedul-ing in an object is completely encapsulated by its local invariants, recording snapshots of the corresponding release points. Paper overview.Sect.2introduces the syntax and operational semantics of the kernel language,Sect.3defines its type system and establishes type soundness,and Sect.4provides an example. Sect.5introduces the assertion language,Sect.6a proof theory for concurrent objects with asynchronous method calls,and Sect.7 establishes the completeness of the proof system.Sect.8discusses related work and Sect.9concludes the paper.2.The LanguageA kernel language for distributed concurrent objects with asyn-chronous method calls is now introduced,adopting much of the syntax of Featherweight Java[17].The semantics of the language is given as a contextual,small-step operational semantics[10]. An object may be understood as an encapsulated state on which various processes are executed.Objects are concurrent in the sense that each object has a thread dedicated to executing the processes of that object,so processes in different objects can execute concur-rently.Each process in an object corresponds to the activation of one of the object’s methods.The object’s state variables can only be manipulated by its own methods.The state is encapsulated in the sense that external manipulation of the object state is indirect by means of calls to the object’s method.In order to preserve an ob-ject’s invariants for reasoning control,execution is restricted such that only one process may be active in an object at a time;other pro-cesses in the object are suspended.We distinguish between block-ing a process and releasing a process.Blocking causes the execu-tion of the process to stop,but does not hand control over to a sus-pended process.Releasing a process stops execution of that process and reschedules control to another(suspended)process.Thus,if a process is blocked there is no execution in the object,whereas if a process is released another process in the object may execute.Al-though processes need not terminate,the object may combine the execution of several processes using release points within method bodies.At a release point,the active process may be released and a suspended process may be activated.A process which makes a remote method call must wait for the return of the call before proceeding with its activity.In a distributed setting this limitation is severe;delays and instabilities may cause much unnecessary waiting.In an unreliable environment in which communication can disappear,the object can even be permanently blocked(and the object deadlocked).By assigning the result value from a method call to a future variable instead of an ordinary variable,the blocking of the process is delayed until the result value from the method needs to be retrieved from the variable. When we attempt to read from a state variable which does not have an assigned value,we get the default value for the type of that variable(e.g.,for object pointers).When we attempt to read from a future variable which does not have an assigned value,the execution is blocked.Future variables may also be polled,enabling fine grained control of scheduling.The Boolean polling operation on a future variable returns when reading the variable will not block and otherwise.(In contrast to the read operation on the future variable,the polling operation never blocks.) Release points in the language are expressed using Boolean guards.The release points influence the implicit controlflow inside objects by allowing process blokcing when the guard evaluates to .As the polling of a future variable is a Boolean operation,srsrsrmay befields()or variables(),and is a class name. future variables can also be tested within the guards at release points.This way,processes are allowed to choose between blocking and releasing control while waiting for the reply to a method call. Remark that the use of release points makes it straightforward to combine active(e.g.,nonterminating)and reactive processes in an object.Thus,an object may behave both as a client and as a server for other objects without the need for an active loop to control the interleaving of these different roles.2.1SyntaxThe language syntax,given in Fig.1,is now briefly presented,em-phasizing constructs which differ from Java.A program is a list of class definitions followed by a method body.A class inherits from a single superclass,which may be,extending the su-perclass by declaring additionalfields and methods.To en-force a proper encapsulation of objects,the internalfields of ob-jects are not externally accessible.Methods may have local vari-ables,which are declared at the start of a method body.Thus,vari-ables may befields or local process variables.Access to the object instance running the current method is available through the self reference,and access to the future variable which will contain the result of executing the current method is available through the local non-assignable pseudo-variable.The language expressions include,variable access, for both the local process variables and thefields of the current object,and object creation.In addition there are two non-standard expressions:an asynchronous method call and the (blocking)read operation on a future variable,denoted. The language statements contain the standard statements ,assignment,the conditional, sequential composition,and three non-Java statements:release points for guards,non-deterministic choice be-tween the two branches and,and merge for the inter-leaved execution of the two branches.Guards are either the uncon-ditional release guard,Boolean expressions,the polling op-eration on a future variable,or the conjunction of guards. When the guard evaluates to,the release point allows the pro-cess to proceed.When the guard evaluates to,the release point allows the active thread in an object to be release and another pending thread to be rescheduled.Non-deterministic choice allows either branch to be selected.The merge allows its branches to be in-terleaved at release points without yielding control to other pending threads.Similar to how release points influence the inter-process flow of control in an object,the merge allows release points to influence the intra-processflow of control without allowing other processes to access the object processor.The additional statements,and appear as in-termediate expressions during reduction.The statement is introduced during the unsuccessful reduction of an state-22006/10/2config object comp config configobject processQ fds active-processoidfds f vcomp mid mode void mactive-process processprocess srprocessQ process processQ processQv oid midFigure2.The syntax for runtime configurations.Here,oid and mid denote identifiers for objects,and futures.Processes include both the types of local variables and the expected return type(which we often elide for simplicity of presentation).ment(when the guard is),and the statement corre-sponds to the activation of statement in the merge of statements and inside a process,where statement is paused.2.2SemanticsThe semantics of our language is presented as a small step reduc-tion semantics between configurations,in a reduction context style. Reduction steps may be performed in parallel.A configuration consists of a multiset of objects and futures. The syntax of configurations is presented in Fig.2.In a configura-tion,an object represents the runtime state of a class instance,and a future represents the runtime state of a method call and stores the eventual result of executing the call.A future starts its lifetime con-taining the method invocation.In a future,the called method is denoted oid m.The method is subsequently activated and placed on the process queue of an object.Finally,the future contains the result of executing the method invocation.Future variables in the program reference such futures.The value mode represents a mode of the future,mode(representing modes sleep,active, and completed).Objects consist of an object identifier and the class of the object,a queue of blocked processes,fields,and an active process.Processes correspond to method activations and may be either active or blocked.The process indicates that an object is not currently running a method.The types have default values,given by the default function:defaultdefaultdefaultThe initial configuration of a program sr has one object default sr,for some object identifier. Reduction contexts and redexes.The main part of the semantics provides rules for reducing processes by decomposing a statement into a reduction context and a redex,and reducing the redex.The scheduling of execution between different processes in objects and between different parts of a configuration are handled by additional rules outside of reduction contexts.Reduction contexts are method bodies,statements,expressions,and guards with a single hole,denoted by and defined as follows:Different redexes are reduced in the different reduction contexts;i.e.,body-redexes are reduced in context,stat-redexes in, expr-redexes in,guard redexes in,and body-redexes in. Redexes are defined as follows:body-redexesstat-redexesexpr-redexesguard-redexes midThe operation offilling the hole of a context with an ex-pression of the appropriate kind is denoted.For example when evaluating a method body of the form, we have where is a method context and is a redex of the appropriate kind.Note that when it becomes time to evaluate the expression in the method body,the method body will have been reduced to the form.For simplicity, we elide the and write just.The reduction relation takes the form config config.Rules may apply to partial configurations,so long as the elements in-volved in the reduction are defined.This is in contrast to,e.g.,ap-proaches to the semantics of imperative object-oriented languages with a global store in the configuration[12],but it is consistent with the Creol’s executable operational semantics[19]based on multi-set rewrite rules in rewriting logic[5,22].This approach allows true concurrency in the distributed setting.The most interesting reduc-tion rules are discussed in the following paragraphs,the remaining rules are available in Appendix A.Reduction rules for expressions.An asynchronous method call creates a new,sleeping future in the configuration,containing the details of the call.The identifier of the future is returned immedi-ately to the caller,who can then proceed.(R ED-C ALL)mid is freshpq fds oidpq fds mid mid oidA read operation on a future variable blocks the active process until the original asynchronous method call has been completed, i.e.,when the future with identifier mid in the rule below is in (completed)mode.Note that blocking the active process does not reschedule another pending process on the same object.(R ED-G ET)fds mid midfds midIffields are thefields of a class,let defaults default.Object creation introduces an instance of class in the configuration,giving default values to the new object’sfields:(R ED-N EW)oid is fresh fds’defaultspq fdspq fds oid fds’Remark that if constructor methods were added to the language, object creation could also be defined as an asynchronous operation in a similar manner as asynchonous method calls. Reduction rules for guards.Guards determine whether a process should be released and another process rescheduled.The polling on32006/10/2a future variable determines whether a future has completed:(R ED-P OLL)pq fds mid mid modepq fds mid modeNote that in contrast to(R ED-G ET),polling a future at a release point()enables the release of the active process and the rescheduling of a blocked process inside the object.A guard in an expression,for example, will always cause the release of the active process:(R ED-W AIT)pq fds pq fdsReduction rules for statements.A process at a release point will proceed whenever the guard is true.Otherwise it will release.When the process is released,the same guard is reused when eventually rescheduling the process,except that any clauses are removed from the guard.Thus the effect of,e.g.,is to uncon-ditionally release an active process,but in the released process the statement replaces the statement above. When the process becomes a canditate for rescheduling its guard will be and the process is able to proceed.(R ED-A WAIT)fdsfdsReduction rule for rescheduling.When an active process is re-leased or terminates,the active process is replaced by the pro-cess.This process allows a release process from the process queue to be scheduled for execution:(R ED-R ESCHEDULE)fds fds Reduction rules for method invocation and return.A method call results in a method activation on the callee’s process queue.As the call is asynchronous there is a delay between the call and its activation,represented by the sleeping future in the configuration. After method lookup,a process is created which binds the methods formal parameters to the actual arguments of the call,sets the local variables of the method body to their default values,and has the body of the method as its list of statements.This process is added to the process queue,and the future changes its mode to active.This mode change prevents multiple bindings of the call.(R ED-B IND)mbody srdefault mid sr oid fds mid oidoid fds mid oidWhen the execution of a process is completed,the return value is stored in the appropriate future in the configuration,as identified by the pseudo-variable of the process.This future changes its mode to indicate that the method has completed.The active process becomes.(R ED-R ETURN)midfds mid oidfds mid oid Reduction rules for merge.Either branch of a merge statement may be selected for initial reduction.(R ED-M ERGE1)fds fds(R ED-M ERGE2)fds fdsWhen one branch of a merge statement completes,the other branch is scheduled:(R ED-M ERGE-S KIP)fds fds Reduction rules for release.Process release is complicated by the merge()operator.If a release occurs within a merge,the other branch of the merge is thefirst candidate for rescheduling —rescheduling is local to a method,whenever possible.If the other branch would also immediately release,then the process is released,after which a suspended process may be rescheduled. Let be a state(mappingfields and local variables to their val-ues).In order to formalize this notion of release,define a predicate enabled on guards,futures,and states which determines whether a guard will not directly release as follows:enabled falseenabledenabled var enabled varenabled mode where mid_mode_ enabled enabled enabledThe predicate is lifted to program statements as follows: enabled enabledenabled enabledenabled enabled enabledenabled enabled enabledenabled true otherwiseNote that the contexts and redexes do not factor an expression uniquely.There is one place where they overlap.Expressions in-volving can sometimes be factored as bothand.A clause is added to the reduction rules for to ensure that evaluates where possi-ble instead of—the difference is that in thefirst case, local rescheduling occurs within a process,whereas in the second case the process is released.The reduction rules for release are:(R ED-M ERGE-R ELEASE1)enabled fdsfdsfds(R ED-M ERGE-R ELEASE2)enabled fdsfdsfds(R ED-R ELEASE)fdsfdsContext and parallel reductions.A reduction applies to a sub-configuration,which is captured by the following reduction rule:(R ED-C ONTEXT)config configconfig config config config42006/10/2Let denote,i.e.,some configuration constisting only offuture objects.The following rule enables futures to be shared between concurrently evaluating configurations,increasing the amount of concurrency expressible in the rules.(R ED-P ARALLEL)config config config configconfig configconfig config config configAs the futures may evolve in both reductions,they need to be recomposed in a consistent way.Let be an idempotent and symmetric function collecting futures from and,which resolves conflicting futures with the same mid as follows:mid mc mid mc mid mc mid mc mid mc mid mcmid mc mid mc mid mcand undefined otherwise.New futures in the reductions will be located in config and config.The rule(R ED-P ARALLEL)allows futures witnessed by one process to be changed by another.This is consistent,as only one process may change the future.2.3Synchronization and Self-callsThe read operation on a future variable is blocking,and may therefore be used to introduce synchronization points in the code;e.g.,with the statements the active process is blocked after making a call to until the call has been completed, resembling a notion of synchronous call.The language naturally supports asynchronous calls to self, ,which create local processes to be executed at some point when the active process is.However synchronizing on local calls is problematic:the statementslead to deadlock.In order to execute a local method the pro-cess needs to be released,as in the asynchronous call sequence.This sequence does not capture a direct transfer of control between the active process and the call to,but enables any other blocked processes in the object to be activated before the call to.Consequently we prefer to un-derstand synchronous self calls,with syntax such as,as an orthogonal language issue which can be adapted from standard approaches to recursive calls by refining our notion of a process either as a stack of calls or by expanding local calls in place.3.TypingThe section presents the static semantics for our language.The type rules for programs,classes,method declarations,and standard statements follow those of Featherweight Java or ClassicJava,and may be found in an Appendix.Emphasis here is on the rules for the particular constructs of the language.Recall from Fig.1that the types of the language are, class names,and.The latter type identifies a future variable of type.The typing environment binds variables to their type and has the following grammar:The rules for the read and polling operations on a future variable and for guards are given as follows:(E XPR-G ET)(E XPR-P OLL)(S TAT-A WAIT)(G UARD-W AIT)In order to specify the well-formedness of runtime configura-tions,the typing environments are extended with type informa-tion concerning object and future identifiers:oid midA process inside an object is well-formed(i.e.,)if its local vari-ables have values matching their declared types,and the statement being executed is well-formed in a typing environment which contains thefields declared in the class of the object.The process is always well-formed.(V ALUE)vv(I DLE)(P ROCESS)A configuration may be an object,a future,or the composition of two configurations.Configurations are well-formed whenever their constituents are well-formed and the objects and futures have unique identifiers.An object is well-formed whenever the values in itsfields have the type declared in the object’s class,and its active process as well as all the blocked processes in its process queue are well-formed inside the object.(O BJECT)oidfields fdsfor eachoid,C fdsThe(delayed)method call stored in a future must be a valid method call to the callee.The type of a future identifier mid must be of the form,where is the return type of the method being called.Finally,the value stored in the future must have the correct type,after the future has completed.(F UTURE)oid mid mtype mmode vmid oid m v mode vThe following collects the identifiers defined in a configuration:cfig cfig cfig cfigoid___oidmid___midThe rule for composing configurations is given as follows:(C ONFIG-J OIN)config configconfig configconfig config3.1Meta-TheoryThe language presented here resembles Java(say,ClassicJava[12]), whose type soundness(at the class,object,and method level)is well understood.Fortunately,the additional concurrency constructs do not significantly complicate the proof of type soundness.Indeed, even the introduction of futures only requires a minor change to the standard progress result.52006/10/2In order to ensure the soundness of the system,futures must behave sensibly.In particular,the behavior of futures is crucial for the(R ED-P ARALLEL)reduction rule and for the proof theory.We define the following relation on futures:oid oidoidNow reconsider the rule(R ED-P ARALLEL),which allows the future shared between two parallel reductions to change in one reduction,though not in the other—enabling a greater degree of concurrency to be captured by the operational semantics.An instance of the rule may beconfig comp config compconfig comp config compconfig config comp config config comp comp wherecomp mid modecomp mid modecomp mid modeIf the configuration config config comp is well-typed,the object identifiers in the configuration are unique,so the object with iden-tifier can only be present in one of the subconfigurations.It fol-lows that comp can only be modified in that subconfiguration,so we must have that either comp comp or comp comp.With-out loss of generality,we may assume the former,and it follows from the definition of then comp comp comp.The only reduction rules which affect the value of a future are:(R ED-C ALL) initializes a future to mode(sleeping);(R ED-B IND)changes a fu-ture’s mode to(active);andfinally(R ED-R ETURN)sets the value of a future and changes its mode to(completed).No operation af-fects the value of a future which is completed.Hence,the following lemma holds for the(R ED-P ARALLEL)rule:L EMMA1.Given the above set-up,comp comp is defined and comp comp comp.A consequence of this lemma is that after a parallel reduction, all the futures which were shared in the two reductions remain valid:i.e.,is never undefined.The definition of is naturally extended to configurations in a pointwise manner:config config if and only if comp comp for all mid config such that comp config,comp config,and comp comp mid.The following property holds for reductions:L EMMA2.If config and config config’,then config config’.Subject reduction can then be established for the language:T HEOREM1.If config and config config,then there exists a such that config’.In order to give a progress theorem,wefirst need to distinguish between expressions which“go wrong”and are excluded by the type system,those which result in an error not detected by the type system,specifically,pointer exceptions,and those which block.The following redexes are error redexes:The following redex is a blocking redex:midA progress property can then be established for the language: T HEOREM2.If config fds and, where is a redex which is neither an error nor a blocking redex,then there exists a reduction involving,namely,config fds config fds’Furthermore,if and_config,then the above statement also holds.4.ExamplesE XAMPLE1.We consider a version of the sieve of Eratosthenes in which each prime number is represented by a concurrent instance of class.Each object checks whether it is a factor of given integers using method.If this is not the case,the integer is passed to the prime number object by a call to the latter’s method,which repeats this test for the next prime number.In a distributed environment,calls to an object from some object may overtake calls from another object.This could have the undesirable effect in our example,as factor division tests may be skipped.For example if is executed after,25may be taken for a prime number. Thus a certain amount of synchronization is required for the prime number sieve to function correctly.In the code below,the sieve is not completely sequentialized,but allows two factorization tests to be performed concurrently.Synchronization is achieved by letting the second computation in a prime number object wait for the completion of the call to the next prime for the previous integer before passing on the present integer to the next prime(if the factorization test for the present integer fails).This is done by introducing a local future against which the call to the sieve method of the next prime is synchronized.E XAMPLE2.To illustrate how futures may be passed between objects,we consider a class which converts a future into an event notification service.The example shows how polling in an object may be delegated and the result returned to a different method of the same object.In the example,the future result from a method call made in method of class is passed to an new instance of.The waits on the future object to obtain its result,before passing the result to the method of the original instance of.Notification may also target a different object of class as in a publish/subscribe service[9],where futures are published and subscribers are notified for every completed computation.62006/10/2。