Using dynamic logic programming to model cooperative dialogues
- 格式:pdf
- 大小:67.96 KB
- 文档页数:10
电气工程及其自动化专业英语介绍Introduction to Electrical Engineering and its AutomationElectrical engineering is a field of study that deals with the design, development, and maintenance of electrical systems and equipment. It involves the application of principles and theories from physics and mathematics to solve problems related to electricity and electronics. With the rapid advancements in technology, electrical engineering has become an integral part of various industries, including power generation, telecommunications, electronics, and automation.The study of electrical engineering equips students with a strong foundation in core subjects such as circuit analysis, electromagnetic theory, power systems, and control systems. These subjects provide students with the necessary knowledge and skills to design, analyze, and optimize electrical systems. Additionally, students also gain hands-on experience through laboratory work and practical projects, which enhance their problem-solving abilities and technical expertise.The specialization in automation within the field of electrical engineering focuses on the application of control systems and computer science to automate industrial processes. Automation plays a crucial role in improving efficiency, productivity, and safety in various industries. Students studying automation learn about programmable logic controllers (PLCs), human-machine interfaces (HMIs), robotics, and computer-aided design (CAD) software. They also acquire skills in programming languages such as C++, Python, and MATLAB, which are essential for designing and implementing automation systems.The curriculum for electrical engineering and its automation specialization covers a wide range of topics to provide students with a comprehensive understanding of the field. Some of the subjects typically included in the program are:1. Circuit Analysis: This subject focuses on the analysis of electrical circuits using techniques such as Ohm's Law, Kirchhoff's Laws, and network theorems. Students learnto analyze and solve complex circuits to determine voltage, current, and power distributions.2. Electromagnetic Theory: This subject deals with the study of electromagnetic fields and their interactions with electrical systems. Students learn about Maxwell's equations, electromagnetic wave propagation, and the behavior of electromagnetic devices such as transformers and motors.3. Power Systems: This subject covers the generation, transmission, and distribution of electrical power. Students learn about power generation technologies, power system components, and the design of electrical grids. They also study power system protection and control to ensure the reliable operation of power networks.4. Control Systems: This subject focuses on the analysis and design of control systems to regulate and optimize the behavior of dynamic systems. Students learn about feedback control, PID controllers, stability analysis, and system modeling. They also gain practical experience in designing and implementing control systems through laboratory experiments.5. Digital Electronics: This subject introduces students to the fundamentals of digital logic circuits and systems. They learn about Boolean algebra, logic gates, flip-flops, and sequential logic. Students also gain hands-on experience in designing and testing digital circuits using simulation software and hardware components.6. Automation and Robotics: This subject explores the principles and applications of automation and robotics in industrial processes. Students learn about industrial automation technologies, robotic manipulators, and sensor integration. They also study topics such as motion planning, trajectory control, and machine vision.7. Computer Programming: This subject provides students with the necessary programming skills to develop software for electrical engineering applications. Students learn programming languages such as C++, Python, and MATLAB. They also gain experience in algorithm development, data analysis, and simulation techniques.Upon graduation, students with a degree in electrical engineering and its automation specialization have excellent career prospects. They can work in various industries, including power generation companies, telecommunications firms, manufacturing companies, and automation solution providers. Job roles for electrical engineering graduates include electrical design engineer, control systems engineer, automation engineer, power systems engineer, and research scientist.In conclusion, electrical engineering and its automation specialization offer students a comprehensive understanding of electrical systems and their automation. The program equips students with theoretical knowledge, practical skills, and programming expertise to design, analyze, and optimize electrical systems. With the increasing demand for automation in various industries, graduates in this field have promising career opportunities.。
汇川plc基本编程流程英文回答:The basic programming flow of a Huichuan PLC involves several steps. Firstly, I need to define the inputs and outputs of the PLC. This includes identifying the physical connections to sensors, switches, and other devices that provide input signals to the PLC, as well as the connections to actuators and other devices that receive output signals from the PLC. For example, if I am programming a PLC for a conveyor belt system, I would need to define the inputs for sensors that detect the presence of objects on the belt and the outputs for controlling the motor that drives the belt.Once the inputs and outputs are defined, I can start writing the ladder logic program. Ladder logic is a graphical programming language commonly used in PLC programming. It is based on the concept of relay logic, where logic functions are represented by relay contacts andcoils. I can use ladder logic elements such as contacts, coils, timers, and counters to create the desired control logic for the PLC. For example, I can use a normally open contact to represent a sensor input and a coil to represent an output that activates a motor.After writing the ladder logic program, I need to download it to the PLC. This is typically done using a programming cable connected to the PLC and a programming software provided by the PLC manufacturer. The software allows me to transfer the program from my computer to the PLC's memory.Once the program is downloaded, I can put the PLC into run mode. In this mode, the PLC will execute the ladder logic program and perform the desired control functions. I can monitor the inputs and outputs of the PLC using the programming software or through a human-machine interface (HMI) connected to the PLC. This allows me to observe the behavior of the program and make any necessary adjustments.If there are any issues or errors in the program, I canuse the programming software to make modifications and then download the updated program to the PLC. This iterative process of programming, testing, and debugging continues until the desired control functions are achieved.中文回答:汇川PLC的基本编程流程包括几个步骤。
In the realm of mathematics, solving intricate problems often necessitates more than mere application of formulas or algorithms. It requires an astute understanding of underlying principles, a creative perspective, and the ability to analyze problems from multiple angles. This essay will delve into a hypothetical complex mathematical problem and outline a multi-faceted approach to its resolution, highlighting the importance of analytical reasoning, strategic planning, and innovative thinking.Suppose we are faced with a challenging combinatorial optimization problem – the Traveling Salesman Problem (TSP). The TSP involves finding the shortest possible route that visits every city on a list exactly once and returns to the starting point. Despite its deceptively simple description, this problem is NP-hard, which means there's no known efficient algorithm for solving it in all cases. However, we can explore several strategies to find near-optimal solutions.Firstly, **Mathematical Modeling**: The initial step is to model the problem mathematically. We would represent cities as nodes and the distances between them as edges in a graph. By doing so, we convert the real-world scenario into a mathematical construct that can be analyzed systematically. This phase underscores the significance of abstraction and formalization in mathematics - transforming a complex problem into one that can be tackled using established mathematical tools.Secondly, **Algorithmic Approach**: Implementing exact algorithms like the Held-Karp algorithm or approximation algorithms such as the nearest neighbor or the 2-approximation algorithm by Christofides can help find feasible solutions. Although these may not guarantee the absolute optimum, they provide a benchmark against which other solutions can be measured. Here, computational complexity theory comes into play, guiding our decision on which algorithm to use based on the size and characteristics of the dataset.Thirdly, **Heuristic Methods**: When dealing with large-scale TSPs, heuristic methods like simulated annealing or genetic algorithms can offerpractical solutions. These techniques mimic natural processes to explore the solution space, gradually improving upon solutions over time. They allow us to escape local optima and potentially discover globally better solutions, thereby demonstrating the value of simulation and evolutionary computation in problem-solving.Fourthly, **Optimization Techniques**: Leveraging linear programming or dynamic programming could also shed light on the optimal path. For instance, using the cutting-plane method to iteratively refine the solution space can lead to increasingly accurate approximations of the optimal tour. This highlights the importance of advanced optimization techniques in addressing complex mathematical puzzles.Fifthly, **Parallel and Distributed Computing**: Given the computational intensity of some mathematical problems, distributing the workload across multiple processors or machines can expedite the search for solutions. Cloud computing and parallel algorithms can significantly reduce the time needed to solve large instances of TSP.Lastly, **Continuous Learning and Improvement**: Each solved instance provides learning opportunities. Analyzing why certain solutions were suboptimal can inform future approaches. This iterative process of analysis and refinement reflects the continuous improvement ethos at the heart of mathematical problem-solving.In conclusion, tackling a complex mathematical problem like the Traveling Salesman Problem involves a multi-dimensional strategy that includes mathematical modeling, selecting appropriate algorithms, applying heuristic methods, utilizing optimization techniques, leveraging parallel computing, and continuously refining methodologies based on feedback. Such a comprehensive approach embodies the essence of mathematical thinking – rigorous, adaptable, and relentlessly curious. It underscores that solving math problems transcends mere calculation; it’s about weaving together diverse strands of knowledge to illuminate paths through the labyrinth of numbers and logic.Word Count: 693 words(For a full 1208-word essay, this introduction can be expanded with more detailed explanations of each strategy, case studies, or examples showcasing their implementation. Also, the conclusion can be extended to discuss broader implications of the multi-faceted approach to problem-solving in various fields beyond mathematics.)。
具体工作内容英语作文英文回答:As a software engineer, my job involves developing and maintaining computer software programs. I work closely with a team of developers to design, code, and test software applications. This includes analyzing user requirements, designing the software architecture, writing code, debugging and fixing issues, and ensuring the softwaremeets quality standards.One of the main tasks I handle is writing code. This involves using programming languages such as Java, C++, or Python to create the logic and functionality of the software. I also collaborate with other developers toreview and improve code, ensuring it is efficient, readable, and follows best practices.In addition to coding, I also spend timetroubleshooting and debugging software issues. Thisrequires analyzing error messages, examining code, and using debugging tools to identify and fix problems. It can be challenging at times, but it's also rewarding when I am able to resolve issues and make the software run smoothly.Another important aspect of my job is collaborating with other team members. We work together to brainstorm ideas, discuss project requirements, and divide tasks. Effective communication is crucial in ensuring everyone is on the same page and working towards the same goal.Furthermore, I am responsible for staying up to date with the latest technologies and industry trends. This involves researching new tools and techniques, attending conferences and workshops, and continuously learning and improving my skills. It's important to be adaptable and open to learning new things in the ever-evolving field of software engineering.Overall, my job as a software engineer is dynamic and challenging. It requires a combination of technical skills, problem-solving abilities, and effective communication. Ienjoy the creativity and satisfaction that comes with developing software solutions that meet user needs and improve efficiency.中文回答:作为一名软件工程师,我的工作内容包括开发和维护计算机软件程序。
八年级下册英语unit6作文电子版As an eighth grader, I often think about my future career. After considering my interests, skills, and passions, I have decided that I want to become a computer programmer. Ibelieve that this career path is well-suited for me because I am passionate about technology and enjoy solving problemsusing logic and creativity.As a computer programmer, I envision myself working in a dynamic and innovative environment. I am interested in developing software applications that can make people's lives easier and more efficient. Furthermore, I am excited aboutthe prospect of working with a team of like-mindedindividuals who are also dedicated to creating cutting-edge technology.In order to achieve my goal of becoming a computer programmer, I understand that I need to excel in my studiesand continue to expand my knowledge of computer science and programming languages. I plan to pursue a degree in computer science and gain practical experience through internships and projects.I am aware that the field of computer programming is constantly evolving, and I am prepared to adapt to new technologies and developments. I am committed to lifelong learning and am eager to embrace the challenges and opportunities that come with being a part of the tech industry.In conclusion, I am confident that a career in computer programming is the right path for me. I am determined to work hard and pursue my passion for technology in order to achieve success in this field. I look forward to the exciting journey ahead and am optimistic about the opportunities that await me in the world of computer programming.。
英语课前三分钟简短演讲带翻译10篇英语课前三分钟演讲篇一as people’s thoughts control their bodies, computer programs play a leading role in the modern times. both social progress and human evolution depend on the computer programs. in the practical application, a software consists of different programs and then combines with hardware to develop into a high-tech electronic product. there are many kinds of electronic products found everywhere in our daily life. nearly all the time do we make use of these products to conduct our passion.yes, it is definitely right that programming is a hard work because of its special characteristics---complicated, time-wasted, logical. to make a program needs our continual patient and confidence, and we should accept failure again and again in most cases. but once you go into further understanding of computer programs, you will be surprised at the programs’ wander. in detail, through programming a heap of date or a computing model can be easily solved we expected, such as a number wanted, or the model’s parameters. the magical power of program appeals to all the programmers, certainly including me.it is of great convenience for us to simplify or model our complex questions by programming. furthermore, studying and using programs can enforce us to form our ability of analyzing and logic. computer language has its regular grammar. how to organize the language into a reasonable calculating method in a high efficiency like speaking easy-understanding and breath-saving words, is an awful challenge for us, and it will be very funny.now, software is more and more important in our life, thereforeprogrammer becomes a popular profession, which is one urgent need in the society. for our country, it’s very important to ensure our national security from others, such as japan. enhancing military strength makes us pay more attention to the informationalized war that attached intensely to the fundamental function of program and software. it is truth that china has a huge population of 1.4 billion, which means messy things from all the people every day. also, to govern the society orderly all benefit from information composed by programs.take a more closer example, in the classroom, we are graduate students of engineering, and will be occupied in researching and designing work. thus, not only is programming our tool in study, but also become a weapon that promoting science and technology and producing invention and innovation.i love programming, because of its powerful function. i love programming, because of its abundant application.i love programming, because of its terrible challenge.i love programming, but i am not intend to be an outstanding programmer, nor making a great researching achievement. i just want to know it and do what i want with it.i hope you firstly remove the horrible psychology upon programming, and then try to get in touch with it. at last, i hope programming gives you much happiness in life!优秀的课前三分钟英语演讲稿篇二Good afternoon,ladies and gentlemen!I’m very honored to st and here and give you a short speech! To begin with ,I want to ask a question 。
1300 Henley CourtPullman, WA 99163509.334.6306Cmod S6™ Reference ManualRevised January 30, 2014This manual applies to the Cmod S6 Rev AOverviewThe Digilent Cmod S6 is a small, 48-pin DIP form factor board built around a Xilinx Spartan 6 LX4 FPGA. The board also includes a programming ROM, clock source, USB programming and data transfer circuit, power supplies, and basic I/O devices. There are 46 FPGA I/O signals that are routed to 100-mil-spaced through-hole pins, making the Cmod S6 well suited for use with solderless breadboards. At just .7” by 2.6” inches, it can also be loaded in a standard socket and used in embedded systems.Spartan 6 XC6SLX4-2CPG196 FPGA Features include:∙600 slices (each with 4 LUTs and eight flip-flops);∙8 DSP slices;∙216Kbits of block RAM;∙ 2 CMTs (4 DCMs and 2 PLLs).Cmod S6 features include:∙16Mbyte Spansion Quad SPI Flash for storing FPGAconfigurations and/or user data;∙46 FPGA GPIO signals brought to DIP pins;∙Two on-board clock sources;∙ 4 user LEDs and 2 user buttons;∙On-board Adept USB2 port for configuration, test andcommunications interfaces.The Cmod S6.1 ConfigurationThe FPGA on the Cmod S6 can be configured using the on-board Adept USB interface or from the on-board Quad-SPI Flash memory. Configuration files can be programmed using Xilinx’s ISE 14.2 (or higher) development tools, using Digilent’s Adept system, or using older versions of the Xilinx tools if Adept is also installed. Xilinx’s ISE/Impact programming tool and Digilent’s Adept tool will recognize the board and/or FPGA when the board is attached to a PC using a Type-A to micro-B USB cable.Xilinx’s iMPACT tool and Digilent’s Adept can both be used to program the FPGA, and iMPACT can also be used to program the on-board QSPI Flash. Please refer to the ISE and/or Adept documentation for more information on using the configuration software.When using Digilent’s Adept software for programming, a dialog box available from the Config tab can be used to select a configuraiton file. Pressing the Program button will program the FPGA with the selected file. This may result in a warning that the configuration file was built for an unknown device; however, this warning can be ignored.When using Xilinx’s iMPACT 14.2 (or higher) software for programming, a .bit file can be associated with the FPGA by right-clicking on the FPGA icon, selecting the desired .bit file, and clicking Program.On power-up, if the FPGA detects a valid bitstream stored in the Quad SPI flash memory, the FPGA will automatically configure itself with that bitstream. If necessary, the user can reconfigure the FPGA with a different bitstream at any point after power-up using iMPACT or Adept.2 FPGAThe Cmod S6 features a Xilinx Spartan 6 XC6SLX4-2CPG196 FPGA. Of the 92 available unshared FPGA I/O pins, 46 are routed to through-hole pins on the DIP module, 24 are not connected, 14 are used by the programming interface, and 7 drive on-board I/Os (4 leds, 2 pushbuttons, and 2 clock inputs). Several of the 46 signals connected to FPGA pins are routed to clock buffers, and several are routed to matched pairs. Please see the schematic for more information.The Spartan 6 LX4 FPGA includes 3,840 6-LUT logic cells, 4,800 flip-flops, 216Kb of block RAM, 8 DSP slices, and two clock management tiles, each with two DCMs and one PLL. The fabric can support internal clock speeds above 400MHz, allowing the Cmod S6 to host high-speed or complex designs. Please see the Spartan 6 user manual available at for more detailed information.3 PowerThe Cmod S6 can be powered either from a USB-connected computer, or from a power source connected to DIP pin 24 that delivers voltage in the range of 5VDC to 15VDC (the power input on pin 24 is most useful when the board is used in an embedded system or in a solderless breadboard). The two sources are diode-OR’ed on the board, so both may be connected simultaneously.The FPGA and other on-board devices require 3.3VDC and 1.2VDC – both of these voltages are generated from the input supply using Texas Instrument’s TPS62170 switching regulators. Total c urrent draw depends on FPGA configuration. When about half the FPGA is configured and running at 8MHz, the board consumes about 180mA from the main supply.4 ClocksAn 8MHz and a 1Hz clock are available to the FPGA. Both are generated from the on board USB processor, both are routed to clock inputs on the FPGA, and both run continuously. The 8MHz clock, called “FPGA-GCLK”, can be used with the FPGA’s clock manager to create a wide range of frequencies, even beyond 200MHz. The 1Hz clock provides a simple timing signal for basic experiments and low-frequency needs.5 Quad SPI Flash MemoryThe Cmod S6 includes a non-volatile 16Mbyte Spansion Quad SPI Flash that can store FPGA configuration files as well as user data. The Spansion device supports the standard 4-wire SPI protocol, as well as the newer Quad I/O and Dual I/O protocols at speeds from 50 MHz to 133 MHz, depending on the protocol and command used. For more information on the SPI Flash memory, please see the “S25FL128S and S25FL256S Data Sheet” at.To achieve the fastest programming speed over the Digilent USB-JTAG connection, when generating the bitstream in Project Navigator, change the SPI bus width to four and enable bitsream compression. To do this, simply select “Generate Programming File” and navigate to Process>Process Properties. In the pop-up menu, enable –g Compress under “Synthesis Options” and set –g SPI_buswidth to four under “Configuration Options”.6 Digilent EPP InterfaceThe Cmod S6 implements the Digilent EPP interface (DEPP) for 8-bit parallel data transfers between the FPGA and a computer attached via the USB Micro connector. DEPP is based on a set of API’s available in the Adept 2 public SDK, available from the Adept product page at . These APIs work in concert with firmware running on the USB controller to provide a high-level software interface for transporting data between a PC and the Cmod S6.To use the DEPP interface, the host PC must use software built from the Adept SDK DEPP libraries, and the FPGA has to be running a configuration that implements a DEPP controller. For a description of the DEPP library API, refer to the “DEPP Programmer's Reference Manual” inc luded with the Adept 2 SDK. For information on designing a DEPP controller, refer to the “Digilent Asynchronous Parallel Interface (DEPP)” document, also included with the Adept 2 SDK.7 Factory Loaded User DemoThe Quad SPI Flash is loaded with a configuration file at the factory. When powered on, the file will configure the FPGA such that the buttons control the states of two LEDs, while the other two LEDs toggle at a speed of about 1 Hz. The general purpose I/O pins are initially configured as inputs, and are pulled up internally by the FPGA to read a logic level ‘1’. Each individual pin can be controlled using the DEPP interface to either drive the pin as an output, or to read the logic level that is present on the pin as an input.The I/O pins can be controlled by writing to specific DEPP register addresses. To test the interface, the “RegisterI/O” tab within the Adept 2 application can be used. Table 1, shown below, gives a description of register addresses and functions.Table 1.DEPP Register Map for factory loaded configuration.The least significant bit in any register corresponds to the smallest pin number that it controls. Registers 6 through 11 will set up a pin controlled by registers 0 through 5 as an input if the corresponding bit in the register is a logic‘1’ and will set up the pin as an output if the corresponding bit in the register is a logic ‘0’. For example, if the value stored in register 6 is 11110000 in binary (0xF0 in HEX), the pins 1-4 on the Cmod S6 will be set as outputs and pins 5-8 will be set as inputs. Whe n a pin is configured as an output, it will initially be driven low (logic ‘0’).The source code for this project can be found on the Cmod S6 product page of the Digilent website,.。
使用Minecraft编程学习编码Chapter 1: Introduction to Minecraft ProgrammingMinecraft, a widely popular sandbox video game, not only allows players to build and explore virtual worlds but also provides a unique platform for learning and experimenting with coding. This chapter will introduce the concept of using Minecraft to learn programming and highlight its benefits in developing coding skills.1.1 What is Minecraft Programming?Minecraft programming refers to the process of using code to modify and customize various aspects of the game. By writing and executing scripts or plugins, players can add new functionalities, create custom game mechanics, or even develop mini-games within the Minecraft environment. Learning Minecraft programming involves understanding programming concepts and how they can be applied in the context of the game.1.2 Benefits of Learning Minecraft Programming1.2.1 Engaging and Motivating Learning EnvironmentMinecraft's immersive and dynamic world provides a highly engaging learning environment. The ability to see instant results and witness the impact of coding changes within the game motivates learners to explore programming concepts further.1.2.2 Enhancing Problem-Solving SkillsMinecraft programming requires logical thinking, problem-solving, and critical reasoning. Players must break down complex tasks into smaller steps and develop algorithms to achieve their desired outcomes. These skills transfer well to real-life problem-solving scenarios.1.2.3 Fostering Creativity and InnovationMinecraft programming encourages learners to think creatively and design their virtual worlds. By modifying game mechanics and creating new features, players can unleash their imagination and express their ideas through coding, fostering innovation and creativity.Chapter 2: Getting Started with Minecraft ProgrammingThis chapter will guide beginners through the initial steps of getting started with Minecraft programming. It will cover setting up the programming environment, understanding the tools and languages commonly used, and exploring basic coding concepts.2.1 Setting Up the Programming EnvironmentTo begin Minecraft programming, players need to install the necessary software. This typically involves installing Minecraft, an Integrated Development Environment (IDE) such as Eclipse or IntelliJ IDEA, and the appropriate programming plugins or packages.2.2 Understanding Commonly Used Tools and LanguagesMost Minecraft programming is done using Java, a versatile and widely used programming language. Understanding the basics of Java,including variables, functions, and control structures, is essential for Minecraft programming. Various tools and libraries, such as Bukkit or Forge, are widely used to extend Minecraft's functionality.2.3 Exploring Basic Coding ConceptsBefore diving into more advanced Minecraft programming, learners should grasp foundational coding concepts. Variables, loops, conditionals, and functions are some essential concepts that enable players to control and manipulate the Minecraft environment through code.Chapter 3: Advanced Minecraft Programming TechniquesThis chapter delves into advanced Minecraft programming techniques, allowing learners to expand their skills and develop more complex modifications within the game. It covers topics such as mod development, event handling, and advanced Java programming.3.1 Mod DevelopmentMod development involves creating custom modifications to the Minecraft game. This includes creating new blocks, items, biomes, or even entirely new dimensions. Learners will explore the modding framework, implement custom features, and gain a deeper understanding of the game's internals.3.2 Event HandlingEvent handling is a fundamental aspect of Minecraft programming. Players can listen for specific in-game events, such as a player placing a block or a creature spawning, and execute code in response. Understanding event-driven programming allows learners to create interactive and dynamic experiences in Minecraft.3.3 Advanced Java ProgrammingTo master Minecraft programming, learners should expand their Java programming skills. This includes topics such as object-oriented programming, data structures, and algorithms. By applying these advanced techniques, players can create more efficient and robust Minecraft modifications.Chapter 4: Showcasing Minecraft Programming ProjectsThis chapter showcases various Minecraft programming projects to inspire learners and demonstrate the possibilities that coding in Minecraft offers. It presents examples ranging from simple modifications to complex game mechanics, encouraging learners to push their boundaries and create innovative projects of their own.4.1 Redstone ContraptionsMinecraft's redstone system allows players to create intricate mechanisms by connecting different components. Learners can experiment with redstone to build automated farms, traps, or even calculators, showcasing their understanding of logic gates, circuits, and electrical engineering concepts.4.2 Custom Mini-gamesBy leveraging Minecraft's programming capabilities, players can create custom mini-games within the game. Whether it's a parkour challenge, treasure hunt, or mob arena, learners can design and implement unique game mechanics, refining their coding skills while providing enjoyable experiences for other players.4.3 Virtual Education EnvironmentsMinecraft can be used as a virtual education platform, enabling learners to build historical landmarks, simulate scientific experiments, or create interactive storytelling experiences. By combining coding and creativity, players can develop educational projects that foster curiosity and engagement.Chapter 5: Challenges and Opportunities in Minecraft ProgrammingThis chapter discusses the challenges and opportunities that learners may encounter when diving into Minecraft programming. It explores potential career paths, community resources, and future developments in this field, providing insights for learners considering pursuing coding further.5.1 Career Paths in Minecraft ProgrammingWith the increasing demand for coding skills in various industries, proficiency in Minecraft programming can open doors to potential careers as software engineers, game developers, or even Minecraftmodders. This section provides an overview of possible career paths in the field of Minecraft programming.5.2 Community Resources and SupportThe Minecraft community offers a wealth of resources, forums, and tutorials dedicated to Minecraft programming. Learners can join online communities, participate in forums, or register for coding workshops to connect with like-minded individuals, seek guidance, and share their work.5.3 Future Developments in Minecraft ProgrammingAs technology continues to advance, the possibilities for Minecraft programming are expanding. Updates to Minecraft, new programming frameworks, and emerging integration with other technologies, such as virtual reality, present exciting prospects for learners interested in this field.In conclusion, Minecraft programming provides a unique and engaging platform for learning coding. By exploring the various aspects of Minecraft programming, from basic coding concepts to advanced techniques and project development, learners can develop essential programming skills while having fun building and modifying their virtual worlds.。
自然语言处理及计算语言学相关术语中英对译表二自然语言处理及计算语言学相关术语中英对译表二 delimiter 定界符号 [定界符]denotation 外延denotic logic 符号逻辑dependency 依存关系dependency gram r 依存关系语法dependency relation 依存关系depth-first search 深度优先搜寻derivation 派生derivational bound morpheme 派生性附着语素descriptive gram r 描述型语法 [描写语法]descriptive linguistics 描述语言学 [描写语言学] desiderative 意愿的determiner 限定词deterministic algorithm 决定型算法 [确定性算法] deterministic finite state auto ton 决定型有限状态机deterministic parser 决定型语法剖析器 [确定性句法剖析程序] developmental psychology 开展心理学diachronic linguistics 历时语言学diacritic 附加符号dialectology 方言学dictionary database 辞典数据库 [词点数据库]dictionary entry 辞典条目digital pro ssing 数字处理 [数值处理] diglossia 双言digraph 二合字母diminutive 指小词diphone 双连音directed acyclic graph 有向非循环图disambiguation 消除歧义 [歧义消除] discourse 篇章discourse ysis 篇章分析 [言谈分析] discourse planning 篇章规划discourse representation theory 篇章表征理论 [言谈表示理论] discourse strategy 言谈策略discourse structure 言谈结构discrete 离散的disjunction 选言dissimilation 异化distributed 分布式的distributed cooperative reasoning 分布协调型推理distributed text parsing 分布式文本剖析disyllabic 双音节的ditransitive verb 双宾动词 [双宾语动词;双及物动词]divergen 扩散[分化]d-m (determiner-measure) construction 定量结构d-n (determiner-noun) construction 定名结构document retrieval system 文件检索系统 [文献检索系统] do in dependency 领域依存性 [领域依存关系]double insertion 交互中插double-base 双基downgrading 降级dummy 虚位duration 音长{ 学}/时段{语法学/语意学}dynamic programming 动态规划earley algorithm earley 算法echo 回声句egressive 呼气音ejective 紧喉音electronic dictionary 电子词典elementary string 根本字符串 [根本单词串] ellipsis 省略em algorithm em算法embedding 崁入emic 功能关系的empirici 经验论empty category principle 虚范畴原那么 [空范畴原理] empty word 虚词enclitics 后接成份end user 终端用户 [最终用户]endo ntric 同心的endophora 语境照应entailment 蕴涵entity 实体entropy 熵entry 条目episodic memory 情节性记忆epistemological work 认识论网络ergative verb 作格动词ergativity 作格性esperando 世界语etic 无功能关系etymology 词源学eventevent driven control 驱动型控制example-based chine translation 以例句为本的机器翻译excla tion 感慨exclusive disjunction 排它性逻辑“或”experien r case 经验者格expert system 专家系统extension 外延external argument 域外论元extraposition 移外变形 [外置转换]facility value 易度值feature 特征feature bundle 特征束feature co-ourren restriction 特征同现限制 [特性同现限制] feature instantiation 特征表达feature structure 特征结构 [特性结构]feature unification 特征连并 [特性合一]feedback 回馈felicity condition 妥适条件file structure 档案结构finite auto ton 有限状态机 [有限自动机]finite state 有限状态finite state morphology 有限状态构词法 [有限状态词法] finite-state auto ta 有限状态自动机finite-state language 有限状态语言finite-state chine 有限状态机finite-state transdu r 有限状态置换器flap 闪音flat 降音foreground infor tion 前景讯息 [前景信息]for l language theory 形式语言理论for l linguistics 形式语言学for l se ntics 形式语意学forward inferen 前向推理 [向前推理]forward-backward algorithm 前前后后算法frame 框架frame based knowledge representation 框架型知识表示frame theory 框架理论free morpheme 自由语素fregean principle fregean 原那么fricative 擦音f-structure 功能结构full text searching 全文检索function word 功能词functional gram r 功能语法functional programming 函数型程序设计 [函数型程序设计] functional senten perspective 功能句子观functional structure 功能结构functional unification 功能连并 [功能合一]functor 功能符fundamental frequency 基频garden path senten 花园路径句gb (gover ent and binding) 管辖约束geminate 重叠音gender 性generalized phrase structure gram r 概化词组结构语法 [广义短语结构语法]generative gram r 衍生语法generative linguistics 衍生语言学 [生成语言学]generic 泛指geic epistemology 发生认识论geive rker 属格标记genitive 属格gerund 动名词gover ent and binding theory 管辖约束理论gpsg (generalized phrase structure gram r) 概化词组结构语法[广义短语结构语法]gradability 可分级性gram r checker 文法检查器gram tical affix 语法词缀gram tical category 语法范畴gram tical function 语能gram tical inferen 文法推论gram tical relation 语法关系grapheme 字素haplology 类音删略head 中心语head driven phrase structure 中心语驱动词组结构 [中心词驱动词组结构]head feature convention 中心语特征继承原理 [中心词特性继承原理]head-driven phrase structure gram r 中心语驱动词组结构律heteronym 同形heuristic parsing 经验式句法剖析heuristics 经验知识hidden rkov model 隐式马可夫模型hierarchical structure 阶层结构 [层次结构]holophrase 单词句homograph 同形异义词homonym 同音异义词homophone 同音词homophony 同音异义homorganic 同部位音的horn clause horn 子句hpsg (head-driven phrase structure gram r) 中心语驱动词组结构语法hu n- chine inte 人机界面hypernym 上位词hypertext 超文件 [超文本]hyponym 下位词hypotactic 主从结构的ic (immediate constituent) 直接成份icg (infor tion-based case gram r) 讯息为本的格位语法idiom 成语 [熟语]idiosyncrasy 特异性illocutionary 施为性immediate constituent 直接成份imperative 祈使句implicative predicate 蕴含谓词implicature 含意indexical 标引的indirect object 间接宾语indirect speech act 间接言谈行动 [间接言语行为] indo-european language 印欧语言inductional inferen 归纳推理inferen chine 推理机器infinitive 不定词 [to 不定式]infix 中缀inflection/inflexion 屈折变化inflectional affix 屈折词缀infor tion extraction 信息撷取infor tion pro ssing 信息处理 [信息处理]infor tion retrieval 信息检索infor tion scien 信息科学 [信息科学; 情报科学] infor tion theory 信息论 [信息论]inherent feature 固有特征inherit 继承inheritan 继承inheritan hierarchy 继承阶层 [继承层次]inheritan of attribute 属性继承innateness position 语法天生假说insertion 中插inside-outside algorithm 里里外外算法instantiation 表达instrumental (case) 工具格integrated parser 集成句法剖析程序integrated theory of discourse ysis 篇章分析综合理论 [言谈分析综合理论]in igen intensive production 知识密集型生产intensifier 加强成分intensional logic 内含逻辑intensional se ntics 内涵语意学intensional type 内含类型interjection/excla tion 感慨词inter-level 中间成分interlingua 中介语言interlingual 中介语(的)interlocutor 对话者internalise 内化international phoic association (ipa) 国际学会inter 网际网络interpretive se ntics 诠释性语意学intonation 语调intonation unit (iu) 语调单位ipa (international phoic association) 国际学会ir (infor tion retrieval) 信息检索is-a relation is-a 关系isomorphi 同形现象iu (intonation unit) 语调单位junction 连接keyword in context 上下文中关键词[上下文内关键词] kinesics 体势学knowledge acquisition 知识习得knowledge base 知识库knowledge based chine translation 知识为本之机器翻译knowledge extraction 知识撷取 [知识题取]knowledge representation 知识表示kwic (keyword in context) 关键词前后文 [上下文内关键词] label 卷标labial 唇音labio-dental 唇齿音labio-velar 软颚唇音lad (language acquisition devi ) 语言习得装置lag 发声延迟language acquisition 语言习得language acquisition devi 语言习得装置language engineering 语言工程language generation 语言生成language intuition 语感language model 语言模型language technology 语言科技left-corner parsing 左角落剖析 [左角句法剖析] lem 词元lenis 弱辅音letter-to-phone 字转音lexeme 词汇单位lexical ambiguity 词汇歧义lexical category 词类lexical con ptual structure 词汇概念结构lexical entry 词项lexical entry selection standard 选词标准lexical integrity 词语完整性lexical se ntics 词汇语意学lexical-functional gram r 词汇功能语法lexicography 词典学lexicology 词汇学lexicon 词汇库 [词典;词库]lexis 词汇层lf (logical form) 逻辑形式lfg (lexical-functional gram r) 词汇功能语法liaison 连音linear bounded auto ton 线性有限自主机linear pre den 线性次序lingua franca 共通语linguistic decoding 语言译码linguistic unit 语言单位linked list 串行loan 外来语local 局部的locali 方位主义localizer 方位词locus model 轨迹模型locution 惯用语logic 逻辑logic array work 逻辑数组网络logic programming 逻辑程序设计 [逻辑程序设计] logical form 逻辑形式logical operator 逻辑算子 [逻辑算符]logic-based gram r 逻辑为本语法 [基于逻辑的语法] long term memory 记忆longest tch principle 最长匹配原那么 [最长一致法] lr (left-right) parsing lr 剖析chine dictionary 机器词典chine language 机器语言chine learning 机器学习chine translation 机器翻译chine-readable dictionary (mrd) 机读辞典crolinguistics 宏观语言学rkov chart 马可夫图the tical linguistics 数理语言学ximum entropy 最大熵m-d (modifier-head) construction 偏正结构mean length of utteran (mlu) 语句平均长度measure of infor tion 讯习测度 [信息测度] memory based 根据记忆的mental lexicon 心理词汇库mental model 心理模型mental pro ss 心理过程 [智力过程;智力处理] metalanguage 超语言metaphor 隐喻metaphorical extension 隐喻扩展metarule 律上律 [元规那么]metathesis 易位microlinguistics 微观语言学middle structure 中间式结构mini l pair 最小对mini list program 微言主义mlu (mean length of utteran ) 语句平均长度modal 情态词modal auxiliary 情态助动词modal logic 情态逻辑modifier 修饰语modular logic gram r 模块化逻辑语法modular parsing system 模块化句法剖析系统modularity 模块性(理论)module 模块monophthong 单元音monotonic 单调monotonicity 单调性montague gram r 蒙泰究语法 [蒙塔格语法] mood 语气morpheme 词素morphological affix 构词词缀morphological deposition 语素分解morphological pattern 词型morphological pro ssing 词素处理morphological rule 构词律 [词法规那么] morphological segmentation 语素切分morphology 构词学morphophonemics 词音学 [形态音位学;语素音位学] morphophonological rule 形态音位规那么morphosyntax 词句法motor theory 肌动理论movement 移位mrd ( chine-readable dictionary) 机读辞典模板,内容仅供参考。
Using dynamic logic programming to model cooperativedialoguesPaulo Quaresma and Irene Pimenta Rodriguespq@dmat.uevora.pt ipr@dmat.uevora.ptDepartamento de Matemática Universidade de Évora 7000 ÉvoraPortugal CENTRIA/AI Center Universidade Nova de Lisboa 2825 Monte da Caparica PortugalAbstractIn this paper we present a system that is able to perform cooperative information-seeking dialogues for the interrogation of a text knowledge base.In our system each event (utterance) is represented by logic programming facts which are used to dynamically update the previous user model. Using this approach it is possible to represent new events as update logic programs and to obtain the new “mental” states. Moreover it is possible to reason about past events and to represent non-monotonic behavior rules.The system has to represent four levels of knowledge using dynamic logic programming. The knowledge levels are: Interaction, Domain, Information Retrieval and Text.The interaction level is responsible for the dialogue management. This includes the ability of the system to infer user intentions and attitudes and the ability to represent the dialogue sentences in a dialogue structure in order to obtain the semantic representation of the dialogue.The domain level includes knowledge about the text domain and it has rules encoding that knowledge. For instance, in the law field it is necessary to represent under which conditions a pension for relevant services may be given to someone; those pensions are usually attributed to militaries or to civilians such as firemen, doctors, and nurses.The Information Retrieval Level includes knowledge about what we should expect to find in texts about a subject, for instance that in texts about pensions for relevant services, the pension may be attributed or refused.The Text Level has knowledge about the words and sequence of words that are in each text of the knowledge base.A detailed example of a cooperative dialogue in the law field will be shown.IntroductionIn this paper we use dynamic logic programming to integrate four sources of knowledge in order to implement a cooperative dialogue system for a web based information retrieval text database with juridical texts.Our dialogue system achieves cooperation with the user by using knowledge: about the database texts (Information Retrieval level); about the domain, in our case some juridical rules (Domain level); about the words and expressions that occur in each text of the text base (Text level).There is another knowledge level that our system has to represent which is the Interaction. This level includes the representation of the user and system utterances and the intentions associated to each utterance, as well as knowledge that enables the system to infer the user intentions.These four levels of knowledge are represented using dynamic logic programming.Dynamic logic programming (Alferes et al. 1998) defines how a logic program can be updated by other logic programs. In our approach, each event is represented by a logic program (composed only by facts) which is used to update the previous program and to obtain a new one. In fact, events are represented by an update situation and there is no need to explicitly represent time points. Inertia rules are also guaranteed by the dynamic logic programming semantics.The information retrieval system is based on SINO, a text search engine from the AustLII Institute (Greenleaf, Mowbray and King 1997).The Interaction Level represents the speech acts using a dialogue structure that groups the utterances of the dialogue in a way that at any point of the dialogue it is possible to obtain its semantic content. This is obtained with a precise definition of the dialogue segments that include inheritance rules for the dialogue attributes.The following dialogue is an example of a user session in our system (this example will be fully explained in the example section).Dialogue 1:User - Q1: Documents about pensions for relevant services?System - Q2: Pensions that were given or refused?User - Q3: Both.System - Q4: Pensions for militaries or civilians?User - Q5: CiviliansSystem - Q6: There are 129 documents, listed in the right frame.User - Q7: where there was a drowning?System - Q8: Since there are 45 documents of the 129 above that match the concept, I've listed them in the usual frame.User - Q9: No, I mean to look for all documents that match the concept.System - Q10: There are 347 documents listed in the right frame.User - Q7': Documents about drugs?System - Q8': I assume that you want a new query about drugs since there are no documents with the concept drugs and pensions for relevant services for civilians. Do you want to see documents about the use of drugs while driving?User: - Q9' yes....Given a user utterance, such as Q1, the system is able to cooperatively interact with user in order to refine its query.The system reply to Q1 will be Q2, this reply is achieved by recognizing that this query can be refined since the texts that mention pensions can divided into two disjoint sets, one where pensions were given and another one were pension were refused. This kind of knowledge is encoded in what we have called the Information Retrieval level. This sort of knowledge can be obtained with a preprocessing of the texts in the text base and we have rules encoding it.After the user answer (that could be: given, rejected or both), by using knowledge of the Domain level the system will generate question Q4. This is achieved by knowing that pensions by relevant service have different conditions when there is a military or a civilian. This is juridical knowledge independent of the texts present in the text base.Our system is also able to decide if the user intends to continue its previous query (its utterance is to be interpreted in the context of the previous dialogue) or to open a new query (a new interrogation context).If, after Q1 the user asks Q7, the system will be able to decide that the user intends to look for text where there are a pension and a drowning. But if the user utters Q11 instead of Q7 the system will conclude that the user intends to open a new interrogation context.User - Q11: Documents where there are drugs?This is achieved by using the Textual level that encodes knowledge about the texts words and expressions (concepts). Using our retrieval information system SINO, it is possible to see that are some texts where the concepts pension and drowning appears but no texts where the concepts pension and drugs appears. This is what the user expects the system behave in most cases. When this is not the case the user may clarify its query in order oblige the system to behave differently. For instance after Q7 the system will reply Q8 and the user may reply Q7’.Q9 will be understood by the system as a user clarification and it will forget the semantic content of sentences Q1-Q8 by opening a new context with Q9. In order to interpret the sentence Q9 in particular to solve the nominal anaphora the concept, the dialogue structure of sentences Q1-Q8 will be used. Dynamic logic Programming frameworkDynamic logic programming (Alferes et al. 1998) defines how a logic program can be updated by other logic programs. In fact it defines a semantic for a sequence of logic program updates P1,…,Pn. In the update process, each state (P1,…,Pn) may represent a different situation, or even a different time point. This feature allows us to model dialogue events by logic programs (composed only by facts) and to use them to update the previous programs. Inertia rules are also guaranteed by the dynamic logic programming semantics. Alferes et al. propose in their paper a declarative and a procedural semantics for dynamic logic programming.In order to describe rules in DLP it is possible to use the keywords before and now to represent the previous and the actual state.For instance, the speech act inform may be described by “bel(H,P)<-inform(S,H,P)/before”, meaning that after an inform speech act, the hearer starts to believe in the informed proposition (we have assumed cooperative and sincere users).Suppose we have:P0 = {int(s,X) <- bel(s,int(u,X)), bel(H,P)<-inform(S,H,P)/before}, meaning that the system intends to do an action X if he believes the user intends to do that action;P1 = {inform(u,s,int(u,search_documents))}Then, in state P2 we’ll have:{int(s,search_documents}Moreover, it is possible to use explicit negation and abduction over the DLP framework allowing the representation on non-monotonic characteristics.Knowledge Representation LevelsIn this section we describe the four knowledge representation levels and we describe how they are integrated in the dynamic logic programming framework.Our four representation levels are:1Textual Level2Domain Level3Information Retrieval Level4Interaction (dialogue level)The Text Level has knowledge about the words and sequence of words that are in each text of the knowledge base.The Domain level includes knowledge about the text domain such as juridical knowledge (for instance, under which conditions a pension for relevant services may be given to someone). It has rules that encoded the domain knowledge, such as: normally those pensions are attributed to militaries or to civilians (firemen, doctors, nurses, etc.) and the conditions to be fulfilled by them are different.The Information Retrieval Level includes knowledge about what we should expect to find in texts about a subject, for instance that in texts about pensions for relevant services, the pension may be attributed or refused.The Interaction level is responsible for the dialogue management. This includes the ability of the system to infer user intentions and attitudes and to build the representation of the dialogue sentences in a dialogue structure in order to obtain the semantic representation of the dialogue whenever it is necessary.T ext levelAs it was already pointed out the information retrieval system is based on SINO, a text search engine from the AustLII Institute (Greenleaf, Mowbray and King 1997). SINO is a word based text search engine which allows boolean and free text queries.We have changed SINO in order to be adapted to the Portuguese Language. Namely, the new system uses the Portuguese lexicon (more than 900,000 words) in order to handle morphological errors and to obtain the base queried word.D omain LevelThis knowledge level is built using the Laws describing the requisites for some juridical condition. For instance the law describing the requisites to obtain a pension for relevant services can be encoded by the following rules:pension(X) <- military(X), action(X,A), behind_duty(A).pension(X) <- civilian(X), action(X,A), save_life(Y,A), life_at_risk(X,A), not X=Y.These rules state that:1. A military may have a pension for relevant services if he has been the agent of an action, and thataction was behind is duty.2. A civilian may have a pension for relevant services if he has been the agent of an action that savessomeone life putting his live at risk.I nformation Retrieval LevelThis level of knowledge is built with rules that can be obtained by processing the text documents looking for keywords that give rise to disjoint sets of documents. By now we obtain these rules using a thesaurus with keywords for text juridical classification.Example of rules:pension(X) <- pension_attributed(X).pension(X) <- pension_rejected(X).false <- pension_attributed(X), pension_rejected(X)These rules state that a document with the concept pension either mentions the concept attributed or rejected.In order to allow the system to obtain the possible explanations of the user queries, we define attributes as abducible predicates. Using this approach it’s possible to obtain the set of non-contradictory logic models that explain the user query.Abducted = {pension_attributed, pension_rejected, .....}I nteraction LevelThis knowledge level will represent rules for the interaction at the dialogue level. It includes: 1) the rules for inferring the user intentions necessary to generate the system question and answers; 2) the rules necessary to build the discourse structure (dialogue) in order to obtain the semantic representation of the user utterances and the context for solving discourse phenomena such as anaphora resolution.These two sets of rules will be detailed in the next two sections.Cooperation with the user is achieved due to the existence of the representation and the inference of user intentions. The system tries to infer the user intentions in order help him to find out the set of documents that the user is looking for.The system helps the user by informing him about the domain knowledge (juridical) and particularities of the texts in the knowledge base. This way the user is guided by the system in the task of refining his queries.The dialogue representation structure supplies the context for the user and system utterances. This representation structure takes into account that an utterance may: specify the information contained in a set of previous utterances; clarify the interpretation of a set of previous utterances; open a new context, the user does not intend to continue refining its query and desires to start a new one.Inference of user IntentionsIn order to be collaborative our system needs to model user attitudes (intentions and beliefs). This task i s achieved through the use of logic programming framework rules and the dynamic LP semantics.The system mental state is represented by an extended logic program that can be decomposed in several modules (see QL95 for a more complete description of these modules):•Description of the effects and the pre-conditions of the speech acts in terms of beliefs and intentions;•Definition of behavior rules that define how the attitudes are related and how they are transferred between the users and the system (cooperatively).For instance, the rule which describes the effect of an inform and a request speech act from the point of view of the receptor (assuming cooperative agents) is:bel(A,bel(B,P)) <- inform(B,A,P)/before.bel(A,int(B,Action)) <- request(B,A,Action)/before.In order to represent collaborative behavior it is necessary to model how information is transferred from the different agents:bel(A,P) <- bel(A,bel(B,P))/now, (not bel(A,P))/before.int(A,Action) <- bel(A,int(B,Action))/now, (not neg int(A,Action))/before.These two rules allow beliefs and intentions to be transferred between agents if they are not inconsistent with the previous mental state (neg stands for the explicit negation and not stands for the negation by omission).After each event (for instance a user question) the agents' model (logic program) needs to be updated with the description of the event that occurred. The dialogue system recognizes the speech act and it constructs the associated speech act (request or inform). The speech act will be used to update the logic program in order to obtain a new model. Using this new model it is possible to obtain the intentions of the system.Interrogation ContextThe Dialogue structure is made of segments that group sets of sentences (user and system sentences). The dialogue structure reflects the user intentions, it is built taking into account the user and system intentions. The dialogue segments have precise inheritance rules defining how segments heritage their attributes from the attributes of their sentences.The dialogue structure is built by recognizing the user intentions and using them in order to enable the system to intervene in the dialogue using pertinent discourse phenomena such as anaphoric references.In order to define our dialogue structure we first present the dialogue segments and their attribute inheritance rules, and finally we present the rules that enables the system to build the dialogue structure and use it to solve discourse phenomena such as anaphora in the user and system utterances.D ialogue StructureIn this paper we shall present the following 5 segments that enable us to built the dialogue structure of our example dialogue 1 presented in the next section:•Empty , []- an empty dialogue structure. It is what we have initially in a dialogue.•Basic - has 2 arguments:Speaker; Sentence Semantic Representation•New - has 2 arguments:Dialogue Structure; Dialogue StructureT his Dialogue Structure inherits their attributes from their second argumentex: New([],basic(User,Q1))•Specify - has 2 argumentsDialogue Structure; Dialogue StructureThis Dialogue structure inherits their attributes from both dialogues structureex: Specify(Basic(User,[],Q1),Basic(System, Q2)•Clarify - has 2 argumentsDialogue Structure; Dialogue StructureThis Dialogue structure inherits their attributes from the second dialogue structureex: Clarify( specify(basic(User,Q7), basic(System,Q8)), basic(User, Q9))By now we may consider that Dialogue Attributes are the semantic representation of their sentences and the discourse entities introduced by the sentences.R ules to build the discourse structureGiven sentence(S1,Speaker) where S1 is the first sentence semantic representation, the update of the new sentence dialogue is:sentence(basic(Speaker,S1)).This fact gives rise to the update of the new DS according to the above rulesds(specify(Old_ds,Ds3))/now <- ds(Old_ds)/before,sentence(Ds3)/now,possible(specify(Old_ds,Ds3).ds(new(Old_ds, Ds))/now <- ds(Old_ds)/before,sentence(Ds)/now.ds(Ds)/now <- ds(Old_ds)/before,sentence(Ds3)/now,last(Old_ds,specify(Ds1,Ds2)),clarify(specify(Ds1,Ds2),Ds3),substitute(Old_ds,specify(Ds1,Ds2),clarify(specify(Ds1,Ds2), Ds3),Ds),where:possible(specify(Ds,basic(User,S1)))<- search_sino(semantic(specify(Ds,basic(User,S1))),Y),not Y=[]. possible(specify(Ds,basic(System,S1))).These rules encode that it is possible for an user utterance to specify a discourse structure if the resulting structure gives rise to a SINO query that match one or more documents. A system utterance always specifies the previous dialogue.clarify(Ds1,Ds2)<- incompatible(Ds1,Ds2).This rule encodes that if two dialogue structures are incompatible then the second one clarifies the first one.With these rules the system always intends to specify the user query, either by answering it or by asking the user to give more information.The dialogue structure has preference rules over the segments to build when it is possible to built more than one. The preference are: clarify segment, specify segment and new.D etailed Example of a Collaborative DialogueDialogue 1:User - Q1: Documents about pensions for relevant services?System - Q2: Pensions that were given or refused?User - Q3: Both.System - Q4: Pensions for militaries or civilians?User - Q5: CiviliansSystem - Q6: There are 129 documents, listed in the right frame.User - Q7: where there was a drowning?System - Q8: Since there are 45 documents of the 129 above that match the concept, I've listed them in the usual frame.User - Q9: No, I mean to look for all documents that match the concept.System - Q10: There are 347 documents listed in the right frame.User - Q7': Documents about drugs?System - Q8': I assume that you want a new query about drugs since there are no documents with the concept drugs and pensions for relevant services for civilians. Do you want to see documents about the use of drugs while driving?User: - Q9' yes.........S ystem reasoning stepsQ1 causes an update of:sentence(basic(user,[x,y:documents(x),concept(y), y=pension,about(x,y)]))which gives rise to the update ofDS2=ds(new([],basic(user,[x,y:documents(x), concept(y), y=pension,about(x,y)]))andrequest(u,s,inform(s,u,[document(X),concept(Y),Y=pension, about(X,Y)])).Which gives rise to the following updateint(s,inform(s,u, [document(X), concept(Y), Y=pensao, sobre(X,Y)])).Due to the speech act rule for requests in the Interaction knowledge level: int(S,A) <- request(S,H,A)/before In order to execute the inform action we must obtain values for the free variables in the semantic representation.A non collaborative version will simple launch the query: "sino> search Y" at the Text knowledge level. Our collaborative version will use the Information Retrieval and the Domain level to predict the user goals. The steps of the reasoning process are:•Update at IR level of the concepts to be searched: Y (pension)•Obtain models at IR level: {pension, pension_attributed, military},{pension, pension_refused, military},{pension, pension_attributed, civilian},{pension, pension_refused, civilian},{pension,military},{pension, pension_attributed}, {pension}•Choose the most suitable model:•Obtain the predicate list: {pension_attributed, military}•Ask the user to supply the value of those predicates:request(s,u,inform(u,s,[document(Y),concept(Z),Z=military, about(Y,Z)])) erequest(s,u,inform(u,s,[document(Y),concept(Z),Z=pension_attributed, about(Y,Z)])).This will cause the system to generate questions Q2 and Q4.Q2 and Q4 will be incorporated in the discourse structure in a specify segment as well the user answers Q3, Q5 and Q6.When the user poses question Q7.User - Q7: where there was a drowning?The system will update:sentence(basic(user,[x,y:documents(x),y=drown,about(x,y)]))Which gives rise to the update of:DS2= ds(specify(specify(basic(user,[x,y:documents(x),y=pension,about(x,y)], .....(sentences Q2 toQ6)),basic(user,[x,y:documents(x),y=drawn,about(x,y)])).Since possible(DS2) is a logic consequence because there are some documents in our text base that are about pensions given to someone that saves another from drowning in the sea.Which according to our segments inheritance rule gives rise to the following semantic representation:[x,y,z: documents(x),concept(y) y=pension,about(x,y), ... semantic of Q2-Q6 ...,concept(z),z=drown,about(x,z)]having as consequence the update of the following speech act:request(u,s,inform(s,u,[document(X),concept(Y),Y=pension, about(X,Y), ....Q2-Q6...., concept(Z),Z=drown, about(X,Z)])).Since in both knowledge levels this query will have only a model the system will generate the answer Q8:System - Q8: Since there are 45 documents of the 129 above that match the concept, I've listed them in the usual frame.But user may be want to start a new context with Q7, so it will utter Q9:User - Q9: No, I mean to look for all documents that match the concept.The system will recognize this utterance as a clarification of discourse segment DS2. And it will start a new context by creating the dialogue structure DS3:DS3= new(DS2, [v,w: documents(v),concept(w) w=drawn,about(v,w)])If instead of Q7 the user had uttered Q7':User – Q7’: Documents about drugs?The discourse structure that will be obtained will be aDS4= new(DS2, [v,w: documents(v),concept(w) w=drug,about(v,w)])Since the evaluation of sino_search> drug and pension will give an empty set of documents.And the system will answer Q8' that includes the prediction of the user goals with the query Q7'.ConclusionsIn this paper we have proposed a system which is able to cooperatively participate in dialogues, namely in information-seeking dialogues.The system uses dynamic logic programming to represent and to reason about events. Four levels of knowledge are described using DLP extended with explicit negation: Interaction, Domain, Information Retrieval and Text.The interaction level is responsible for the dialogue management; the Domain level includes knowledge about the text domain; the Information Retrieval Level includes knowledge about what we should expect tofind in texts about a specific subject; and the Text Level has knowledge about the words and sequence of words in each text of the knowledge base.Cooperation is achieved through the inference of user attitudes using the knowledge representation. References[AKPT91] James Allen, Henry Kautz, Richard Pelavin, and Josh Tenenberg. Reasoning about Plans. Morgan Kaufman Publishers, Inc., 1991.[AP96] José J. Alferes and Luís Moniz Pereira. Reasoning with Logic Programming, volume 1111 of Lecture Notes in Artificial Intelligence.Springer, 1996.[ALPPP98] José J. Alferes, João Leite, Luís Moniz Pereira, H. Przymusinska and T. Przymuzinski. Dynamic Logic Programming, Proceedings of KR’98- Knowledge Representaion, 1998.[Bra90] Michael Bratman. What is Intention?, in Intentions in Communication. MIT, 1990.[CL90a] P. Cohen and H. Levesque. Intention is choice with commitment. Artificial Intelligence, 42(3), 1990.[Car88] Sandra Carberry. Modelling the user's plans and goals. Computational Linguistics, 14(3):23--37, 1988.[GS86] Barbara Grosz and Candice Sidner. Attention, intention, and the structure of discourse. Computational Linguistics, 12(3):175--204, 1986.[HM87] S. Hanks and D. McDermott. Nonmonotonic logic and temporal projection. Artificial Intelligence, 33, 1987.[KR93] Hans Kamp and Uwe Reyle. From Discourse to Logic: An Introduction to Modeltheoretic Semantics of Natural Language, Formal Logic and Discourse Representation Theory. Dordrecht: D. Reidel., 1993.[KS86] Robert Kowalski and Marek Sergot. A logic-based calculus of events. New Generation Computing, 4:67--95, 1986.[LA87] D. Litman and J. Allen. A plan recognition model for subdialogues in conversations. Cognitive Science, (11):163--200, 1987.[LA91] Alex Lascarides and Nicholas Asher. Discourse relations and defeasible knowledge. In Proceedings of the 29th Annual Meeting of ACL, pages 55--62, 1991.[PR93] J.Pinto and R.Reiter. Temporal reasoning in logic programming: A case for the situation calculus. In D.S. Warren, editor, Proceedings of the 10th ICLP. MIT Press, 1993.[PP91] F.Pereira and M.Pollack. Incremental interpretation. Artificial Intelligence, 50:40--82, 1991.[PQ98] Luís Moniz Pereira and Paulo Quaresma. Modeling Agent Interaction in Logic Programming. In Proceedings of the 11th International Conference on Applications of Prolog. Tokyo, Japan, 1998.[QL95] Paulo Quaresma and José Gabriel Lopes. Unified logic programming approach to the abduction of plans and intentions in information-seeking dialogues. Journal of Logic Programming, (54), 1995.[QR98] Paulo Quaresma and Irene Pimenta Rodrigues. Keeping Context in Web Interfaces to Legal Text Databases. In Proceedings of the 2nd French-American Conference on AI&LAW, Nice, France, 1998. [RL92] Irene Pimenta Rodrigues and José GabrielPereira Lopes. Discourse temporal structure. In Proceedings of the COLING'92, 1992.[RL93] Irene Pimenta Rodrigues and José Gabriel Lopes. Building the text temporal structure. In Progress in Artificial Intelligence: 6th Portuguese Conference on AI. Springer-Verlag, 1993.[RL97] Irene Pimenta Rodrigues and José Gabriel Lopes. AI5, An Interval Algebra for the temporal relations conveyed by a text. In Mathematical Linguistics II, Eds Carlos Martin-Vide, John Benjamins, 1997.[Son91] F.Song. A Processing Model for Temporal Analysis and its Aplication to Plan Recognition. PhD thesis, University of Waterloo, Waterloo, Ontario, Canada, 1991.。