首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 203 毫秒
1.
Abstract: Prolog/Rex supports the construction of knowledge-based systems, allowing frames (Prolog/Rex concepts) and rules to be combined, and providing language level support for hypothetical reasoning and assumption-based truth maintenance (Prolog/Rex viewpoint mechanism). To increase run-time performance during rule execution, Prolog/Rex provides two complementary rule compilation techniques: the simple indexing scheme and the heavily modified Rete expansion method. To improve the efficiency of the inference engine, we built an agenda-based rule manager that uses priority mechanism and/or heuristics embedded in meta-rules to control the rule firing order. Forward- and backward-chaining can be combined within the same program.  相似文献   

2.
Intelligent agent development has imposed new challenges on the necessary language support. Object-oriented languages have been proposed as an appropriate tool, although logic-oriented languages are more adequate for managing mental attitudes. Multi-paradigm languages supporting encapsulation of actions, hiding of private knowledge and flexible manipulation of knowledge are, certainly, a good alternative for programming agents. However, a unique language to support flexible and efficient development of multi-agent systems confronts with the tradeoffs imposed by expressive power, efficiency and support technology. An alternative to conciliate these tradeoffs is not to think about a single language but an incrementally compatible family of agent-oriented multi-paradigm languages. In this work we present an approach based on object-oriented framework technology for integrating object and logic paradigms in such a way that new language features can be incrementally added to the core language. This core language is based on logic modules integrated as object abstractions in the object paradigm. JavaLog is a materialization of this framework integrating Java and Prolog. This core was extended to provide multi-threading support, mobility and temporal-logic operators to Prolog. MoviLog, the mobile part of the family provides a novel mobility mechanism, reactive mobility by failure, which enables virtual Prolog databases distributed across Web sites.  相似文献   

3.
采用Prolog智能语言对装备维修决策专家系统进行了设计与开发。从维修知识和推理能力两方面研究了装备维修专家的基本特点;分析了基于Prolog的专家系统的基本语法、推理方式及其在装备维修中的应用方式;设计并开发了装备维修决策专家系统的元知识库、关联知识库和应用知识库;最后采用Visual Prolog和VC++混合编程方式开发了某装备维修决策专家系统。  相似文献   

4.
Several studies have suggested that the mental structures of programmers of procedural languages have a close relationship with a model of structural knowledge related to functional information known as programming Plans. It also has been claimed that experienced programmers organize this representation in a hierarchical structure where some elements of Plans are focal or central to them. However, it is not clear that this is the case for other types of programming languages, especially for those which are significantly different from the procedural paradigm.The study reported in this paper investigates whether these claims are true for Prolog, a language which has important differences to procedural languages. Prolog does not have obvious syntactic cues to mark blocks of code (begin/end, repeat/until, etc). Also, its powerful primitives (unification and backtracking) and the extensive use of recursion might influence how programmers comprehend Prolog code in a significant way.The findings of the study suggest that Plans and functional information are important for Prolog programmers, but that there is also at least another model of structural knowledge valid for this language. This model of structural knowledge, Prolog schemas, is related to data structure information and it seems that a hierarchical organisation that highlights the relevance of some of its elements as focal is valid for Prolog. These results support the view that comprehension involves the detection of varying aspects of the code and that each of the structures related to these aspects might have their own organization and hierarchical relations.  相似文献   

5.
顾慧翔  俞勇 《计算机工程》2004,30(3):74-75,146
提出了在实现基于WAM(Warrens Abstract Machine)架构的C-Prolog推理引擎过程中所遇到的问题,以及相应的解决方法和策略。在实现过程中,严格遵循了WAM体系架构中所提出的指令规范。为了提高系统运行时的效率,在指令预处理方面做了大量的工作,利用回填技术生成更快速的WAM代码。而其实现语言C使得该系统易于维护和改善,并与外部的应用程序的接口更方便灵活。  相似文献   

6.
7.
Visual Prolog的搜索控制机制分析   总被引:8,自引:0,他引:8  
回溯机制是逻辑程序设计的重要设施。回溯本身是一种获得目标所有可能解的良好方法。然而回溯也有副作用,一是它可能导致Visual Prolog给出多余的答案,而Visual Prolog自己不能区分实质上相同的两个解,因此会降低效率;二是尽管一个特殊的目标已被满足,但是回溯机制可能还会强迫Visual Prolog继续手找另外的解,因此会增加系统开销。在这些情况下,必须仔细控制目标搜索求解的回溯过程。本文在揭示Visual Prolog回溯机制所存在问题的基础上,通过实例,对Visual Prolog的静态截断机制、失败谓词fail与否定谓词not等控制谓词,以及动态截断机制等所构成的完整的目标搜索求解控制机制进行了详细分析,从而揭示出回溯机制和搜索求解控制机制的本质特性及应用机理。  相似文献   

8.
Saumya K. Debray 《Software》1993,23(12):1337-1360
Janus is a language designed for distributed constraint programming. This paper describes QD-Janus, a sequential implementation of Janus in Prolog. The compiler uses a number of novel analyses and optimizations to improve the performance of the system. The choice of Prolog as the target language for a compiler, although unusual, is motivated by the following: (i) the semantic gap between Janus and Prolog is much smaller than that between Janus and, say, C or machine language—this simplifies the compilation process significantly, and makes it possible to develop a system with reasonable performance fairly quickly; (ii) recent progress in Prolog implementation techniques, and the development of Prolog systems whose speeds are comparable to those of imperative languages, indicates that the translation to Prolog need not entail a significant performance loss compared to native code compilers; and (iii) compilation to Prolog can benefit immediately from a significant body of work on, and implementations of, parallel Prolog systems. Our experience indicates that translation of logic programming languages to Prolog, accompanied by the development of good program analysis and optimization tools, is an effective way to quickly develop flexible and portable implementations with good performance and low cost.  相似文献   

9.
Visual Prolog语言是人工智能与专家系统领域最著名的逻辑程序设计语言,适合表达人的思维和推理规则,能够方便地实现模式匹配、回溯、事实数据库和谓词等功能;针对导弹测试设备结构复杂、故障隔离与定位困难等情况,充分利用Visual Prolog语言在专家系统知识表示及逻辑推理过程中的优点,建立了一个基于规则的导弹测试设备故障诊断专家系统;通过应用表明Visual Prolog语言十分适合构建此类专家系统,并具有良好的开发应用前景.  相似文献   

10.
We present an annotation language well-suited for rendering aspects of Prolog execution. Our annotations are special Prolog goals that act as executable comments, performing debugging at run-time. No restrictions are placed upon the object language, the concern being verification of (full) Standard Prolog programs. Here we discuss the merits of the annotations for Prolog debugging. All the examples are actual runs of our system, Nope.  相似文献   

11.
Visual Prolog截断机制对回溯的作用机理   总被引:4,自引:0,他引:4  
雷英杰  华继学  徐彤  狄博 《计算机工程》2005,31(18):183-185
回溯是一种获得目标所有可能解的良好方法.然而不恰当地使用回溯,可能导致系统效率降低,时空开销增大,因此必须设置相应机制,仔细控制回溯过程.Visual Prolog的控制谓词,即失败谓词fail和否定谓词not,与截断机制,包括静态截断机制和动态截断机制,构成了完整的目标搜索求解控制机制,可以实现对搜索过程的仔细控制,减少不必要的回溯.该文在考察Visual Prolog回溯机制和截断机制的基础上,通过实例,对其静态截断机制和动态截断机制进行了详细分析,从而揭示回溯机制和截断机制的本质特性和应用机理.  相似文献   

12.
Cartographic name placement with Prolog   总被引:1,自引:0,他引:1  
A major problem in computer cartography is how to place names on maps so they are clearly associated with the features they annotate, while avoiding overlap with other names and features. The logic programming language, Prolog, can be used to express the name-placement problem as a set of rules, referring primarily to the identification of free space, the generation of trial label positions, and the resolution of conflict between these positions. Cartographic features can be specified either explicitly as facts in the Prolog database or implicitly by presenting Prolog with the results of a prior analysis of potential label positions. The Prolog inference mechanism can then determine whether there is a combination of label positions that satisfies the rules of placement  相似文献   

13.
Visual Prolog在专家系统故障诊断中的应用   总被引:2,自引:1,他引:1  
郑璇  马昕  张贝克 《计算机工程》2009,35(16):189-191
针对故障诊断的特点,利用Visual Prolog语言在知识表示及逻辑推理过程中的优势,以流程工业中易发生事故的催化裂化装置为例设计并实现了基于规则的故障诊断专家系统。用事实和规则这2种构成Visual Prolog语言的短语进行知识库和推理机的编写。通过在催化裂化生产装置的实际应用表明,该诊断系统效果良好,能够对出现的多数异常工况进行有效的推理及分析,及时查找出故障原因,并提供相应的故障处理措施。  相似文献   

14.
Jonathan J. Cook 《Software》2004,34(9):815-845
We discuss P#, our implementation of a tool that allows interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft's .NET platform. P# compiles a linear logic extension of Prolog to C# source code. We can thus create C# objects from Prolog and use C#'s graphical, networking and other libraries. We add language constructs on the Prolog side that allow concurrent Prolog code to be written. A primitive predicate is provided that evaluates a Prolog structure on a newly forked thread. Communication between threads is based on the unification of variables contained in such a structure. It is also possible for threads to communicate through a globally accessible table. All of the new features are available to the programmer through new built-in Prolog predicates. We discuss two software engineering tools implemented using P#. Copyright © 2004 John Wiley & Sons, Ltd.  相似文献   

15.
吉张媛  何华灿 《微机发展》2006,16(2):123-125
模糊Prolog系统将不确定性引入到传统的Prolog系统中,对现实应用具有很大的意义。文中首先介绍了模糊系统和Prolog系统,然后讨论了实现模糊Prolog系统的两种方法,并给出了一些典型的模糊Prolog模型。最后重点讨论了在Prolog系统中实现模糊集合的几种方法,因而对于不同的应用要求可以选择不同类型的模糊Prolog系统。  相似文献   

16.
Unlike SLD resolution as implemented in Prolog, tabled evaluation with delaying guarantees termination for function free logic programs, avoids repeated computation of identical subqueries, and handles recursion through negation. It is often used in query processing and nonmonotonic reasoning where termination is required. The paper presents a new technique for incorporating tabled evaluation into existing Prolog systems. It requires neither time consuming modifications of a Prolog engine nor metainterpretation that can enormously slow down program execution. Instead, using a program transformation approach, the technique allows effective use of the advanced Prolog technology. The transformed program uses tabling primitives implemented externally in C that provide direct control over the search strategies. This brings efficiency as well as portability across Prolog systems. Experiences with a prototype implementation indicate that the approach results in a flexible and pragmatic method for query processing and nonmonotonic reasoning on top of Prolog. Performance measurements show that the method is efficient for practical applications  相似文献   

17.
We extend Horn Clause Prolog with two new primitives, new_engine (+Goal, +Answer, -Engine) and new_answer(+Engine, -Answer) for creating and exploring answer spaces of multiple interpreters (engines). We show that despite its ontological parsimony, the resulting language is comparable in practical expressiveness with conventional full Prolog, by allowing compact definitions for negation, if-then-else, all solution predicates, I/O and reflective meta-interpreters. While not really needed anymore as a workaround for the lack of expressiveness of pure Prolog, a form of dynamic database operations can be emulated as well, using the state of multiple engines. With multiple engines laying the foundation for multi-threaded execution models of logic programming languages, the surprising result that a minimal extension of Horn Clauses (with LD resolution) in fact bridges the gap to full Prolog, is significant as a basis for lightweight implementations of embedabble logic programming components. Our constructs have been used in the design of small footprint mobile code interpreters for a commercial multi-threaded agent programming language - Jinni - available from http://www.binnetcorp.com/Jinni”.  相似文献   

18.
Koen De Bosschere 《Software》1996,26(7):763-779
Prolog is a language with a dynamic grammar which is the result of embedded operator declarations. The parsing of such a language cannot be done easily by means of standard tools. Most often, an existing parsing technique for a static grammar is adapted to deal with the dynamic constructs. This paper uses the syntax definition as defined by the ISO standard for the Prolog language. It starts with a brief discussion of the standard, highlighting some aspects that are important for the parser, such as the restrictions on the use of operators as imposed by the standard in order to make the parsing deterministic. Some possible problem areas are also indicated. As output is closely related to input in Prolog, both are treated in this paper. Some parsing techniques are compared and an operator precedence parser is chosen to be modified to deal with the dynamic operator declarations. The necessary modifications are discussed and an implementation in C is presented. Performance data are collected and compared with a public domain Prolog parser written in Prolog. It is the first efficient public domain parser for Standard Prolog that actually works and deals with all the details of the syntax.  相似文献   

19.
高慧  刘知青 《软件》2012,33(9):24-26
Prolog(Programming in Logic)程序语言是一种逻辑程序设计语言.它是在逻辑学理论基础上建立起来的并广泛应用在人工智能研究中.这几十年已经出现了各具特色的Prolog编译器,而且各种编译器也都很成功.虽然在现阶段已经出现了各种版本Prolog编译器,但是Prolog编译器的发展空间还是很大.本文先通过现代Prolog编译器的不足,介绍了新Prolog编译器的特点,然后简单叙述了Prolog编译器词法分析和语法分析的过程,最后介绍了UCB策略.  相似文献   

20.
A pattern-matching feature for the Prolog language is described. Through the use of patterns, introduced as Prolog predicates, the feature favors the specification of string handling algorithms in a declarative style. A number of convenient pre-defined patterns, adapted from SNOBOL 4, are included. The use of two-level grammars as a paradigm for developing Prolog programs incorporating the pattern-matching feature is also discussed.  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号