José Carlos Cotta
Laboratório Nacional de Engenharia Civil
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by José Carlos Cotta.
Archive | 1988
Helder Coelho; José Carlos Cotta
Within this chapter we explain how to write natural language grammars expressed in clausal logic. The notion of definite clause grammars (DCG’s) is behind this as a paradigm for organizing the knowledge required in understanding, which allows efficient parsing. In some exercises syntactic and semantic knowledge are applied concurrently to fill a logical structure that contains all the information for semantic interpretation. The syntax plays a guiding role in the processing, and the logical structure describes the meaning of the corresponding sentence by assembling well-formed formulae belonging to a logical system for representing a subset of the natural language considered.
Archive | 1988
Helder Coelho; José Carlos Cotta
Why use Prolog for writing interpreters, when C is so much better? The experience built up upon the DECsystem-10 Prolog interpreter and compiler establishes evidence that both programming languages are not comparable, in particular in what concerns machine efficiency. However, the following exercises put the case for Prolog as a tool for helping designers, i.e. as an aid in the learning process.
Archive | 1988
Helder Coelho; José Carlos Cotta
This chapter illustrates the use of Prolog features for word processing. The problems were selected from the book by (Welsh; Elder 1979), an introduction to PASCAL. The idea is to apply Prolog in a rather devious application domain, in what concerns the intended capabilities of logic programming. The general aim consists in testing whether Prolog can be compared to PASCAL in a matter where this programming language is quite able. Also, another intention is involved: to check how Prolog behaves in commercial applications, too involved with file manipulation, and often related to symbolic processing. We are convinced that such exercises are rather desirable because if Prolog goes commercial diverse situations arise in the design of real programs, and some knowledge about the ways Prolog copes and interacts with other special purpose programming languages is required.
Archive | 1988
Helder Coelho; José Carlos Cotta
Theorem proving is one of those activities able to help us achieve a better understanding of how a symbolic programming language can cope with reasoning tasks. Also, it teaches us how to have in a program a useable map of specific knowledge, and how to simulate intelligent behavior.
Archive | 1988
Helder Coelho; José Carlos Cotta
The use of knowledge brings the programmer to an understanding of concepts like feedback, recursion, state and so on. In this chapter the examples involve search through a large number of alternatives. This feature is especially well suited for problems that can be modelled as graph search ones. This is also the basis for an approach to planning and simulation models using logic programming (see Chapters 13 and 18). The purpose is also to support the programmer with graphics in order to put forward the underlying intelligent machinery and to show how programs reason.
Archive | 1988
Helder Coelho; José Carlos Cotta
The purpose of this chapter is to exhibit some representative exercises of knowledge engineering. The first exercise has to do with civil engineering, the second deals with architecture, the third with pharmacology, and the fourth with sequences of numbers. Behind all the exercises there is a combinatorial problem.
Archive | 1988
Helder Coelho; José Carlos Cotta
Seeing and understanding what is seen is quite suitable for deep problem solving and program organization. This chapter introduces an exercise illustrating facts about vision processing and knowledge structures that are relevant for planning.
Archive | 1988
Helder Coelho; José Carlos Cotta
Prolog is not a suitable language for expressing arithmetic calculations, or number crunching, because is not efficient. However, the following exercises show that it is possible to program arithmetic expressions based upon the Prolog arithmetic built-in predicates.
Archive | 1988
Helder Coelho; José Carlos Cotta
Prolog is different from most programming languages in that it does not presuppose a von Neumann architecture and does not have assignment as the basic underlying operation (Warren 1981c). The primitive unit is not an instruction, but a theorem of first order logic, called a clause. Variables inside clauses are universally quantified and may be substituted by well-formed formulas, but predicates cannot be quantified. Unlike conventional languages such as FORTRAN and PASCAL, Prolog is well suited to parallel processing machines because program evaluations can be run in any order without regard to sequence.
Archive | 1988
Helder Coelho; José Carlos Cotta
Exploring and finding alternative paths through a network or a tree structure is often necessary while solving problems. Two issues become relevant: search, focusing on the methods for exploring the structures that describe the problem domains, and control, focusing on how the problem solver selects those methods and shifts attention among its subprocesses.