Search NASASearch

SEARCH · Search NASA

Results for “declarative language”

Search indexed NASA NTRS and DOE OSTI research on propulsion, heat transfer, battery materials and energy systems. Follow report and document links to the original sources.

Quote a phrase for an exact phrase match. Source license links do not imply unrestricted reuse.

48 records · Page 3

Procedural knowledge

Much of commonsense knowledge about the real world is in the form of procedures or sequences of actions for achieving particular goals. In this paper, a formalism is presented for representing such knowledge using the notion of process. A declarative semantics for the representation is given, which allows a user to state facts about the effects of doing things in the problem domain of interest. An operational semantics is also provided, which shows how this knowledge can be used to achieve particular goals or to form intentions regarding their achievement. Given both semantics, the formalism additionally serves as an executable specification language suitable for constructing complex systems. A system based on this formalism is described, and examples involving control of an autonomous robot and fault diagnosis for NASA's Space Shuttle are provided.

Georgeff, Michael P.

From the Origins of Life to Intelligence: The Emergence of Symbolic Constructs

Intelligence cannot be understood - and cannot be 'artificially recreated' - without also understanding how it fits as a phenomenon in the evolution of matter. I say 'matter' instead of 'life' because my thesis is that the distinction between matter, with its associated interactions, and life, is simply in the complexity of these interactions and in the number of 'symbolic levels' that are defined by these interactions. Most of us think of symbols only in the context of language. This is understandable, since it is at this level where it is easiest to draw a distinction between natural objects and their 'names', i.e., the different sets of 'abstract' objects that can be manipulated to produce models of the 'real' world. Of course sets of abstract objects can also acquire names and be manipulated at higher and higher conceptual levels. When we use the words 'philosophy' or 'the Declaration of Independence' we use abstract constructs that will only make sense in other specific abstract contexts. Additional information is contained in the original extended abstract.

Colombano, Silvano P.

From Verified Models to Verifiable Code

Declarative specifications of digital systems often contain parts that can be automatically translated into executable code. Automated code generation may reduce or eliminate the kinds of errors typically introduced through manual code writing. For this approach to be effective, the generated code should be reasonably efficient and, more importantly, verifiable. This paper presents a prototype code generator for the Prototype Verification System (PVS) that translates a subset of PVS functional specifications into an intermediate language and subsequently to multiple target programming languages. Several case studies are presented to illustrate the tool's functionality. The generated code can be analyzed by software verification tools such as verification condition generators, static analyzers, and software model-checkers to increase the confidence that the generated code is correct.

Lensink, Leonard

Mu2e experiment: Simulation of the Production Target

The Mu2e experiment will search for coherent, neutrinoless conversion of muons to elections in an aluminum stopping target. A simulation program is used to experiment and design the production target of the Mu2e experiment. The module uses programing languages and libraries to work. The program called the Offline uses C++ as the programing language in the module. To construct the simulation, the Geant4 library constructs shapes and uses them in the simulation program, ROOT. The offline program simplifies the creation of the tube by organizing them into parameter objects and nesting them with other variables required to construct the tube-like center point, material, or if it is allowed to conflict with other solids. The parameter varies for every solid tube. The geometry file uploads the parameters by declaring and organizing the parameters in C++ using the configuration tools. The author describes the development and the future of this project.

43 PARTICLE ACCELERATORS

Mu2e experiment: Simulation of the Production Target

The Mu2e experiment will search for coherent, neutrinoless conversion of muons to elections in an aluminum stopping target. A simulation program is used to experiment and design the production target of the Mu2e experiment. The module uses programing languages and libraries to work. The program called the Offline uses C++ as the programing language in the module. To construct the simulation, the Geant4 library constructs shapes and uses them in the simulation program, ROOT. The offline program simplifies the creation of the tube by organizing them into parameter objects and nesting them with other variables required to construct the tube-like center point, material, or if it is allowed to conflict with other solids. The parameter varies for every solid tube. The geometry file uploads the parameters by declaring and organizing the parameters in C++ using the configuration tools. The author describes the development and the future of this project.

Szewczyk, Albert

Integrating planning and reactive control

Artificial intelligence research on planning is concerned with designing control systems that choose actions by manipulating explicit descriptions of the world state, the goal to be achieved, and the effects of elementary operations available to the system. Because planning shifts much of the burden of reasoning to the machine, it holds great appeal as a high-level programming method. Experience shows, however, that it cannot be used indiscriminately because even moderately rich languages for describing goals, states, and the elementary operators lead to computational inefficiencies that render the approach unsuitable for realistic applications. This inadequacy has spawned a recent wave of research on reactive control or situated activity in which control systems are modeled as reacting directly to the current situation rather than as reasoning about the future effects of alternative action sequences. While this research has confronted the issue of run-time tractability head on, in many cases it has done so by sacrificing the advantages of declarative planning techniques. Ways in which the two approaches can be unified are discussed. The authors begin by modeling reactive control systems as state machines that map a stream of sensory inputs to a stream of control outputs. These machines can be decomposed into two continuously active subsystems: the planner and the execution module. The planner computes a plan, which can be seen as a set of bits that control the behavior of the execution module. An important element of this work is the formulation of a precise semantic interpretation for the inputs and outputs of the planning system. They show that the distinction between planned and reactive behavior is largely in the eye of the beholder: systems that seem to compute explicit plans can be redescribed in situation-action terms and vice versa. They also discuss practical programming techniques that allow the advantages of declarative programming and guaranteed reactive response to be achieved simultaneously.

Rosenschein, Stanley J.

A Comparison of Different HCI styles in a KBSE System

There has been a sizable amount of research about the relative merits of different styles of human-computer interfaces and information presentation. However, it has not been possible to declare a definitive winner between graphical and text-based interfaces. Each of these interface styles provides its own advantages that may be more relevant than the other depending on the domain and characteristics of the user population in which they are applied. This paper compares graphical and text-based interfaces for formal specifications in the context of the Amphion system. It focuses in those features that make the text-based interface desirable as a substitute or a complement to a graphical interface. In order to address these problems, a new, text-based interface has been developed as an alternative/complement to the existing graphical interface. The text-based interface avoids problems by representing the information about objects and their relationships in the form of natural language sentences. This representation makes it easy for novice users to better understand the specifications. By presenting the specification information organized in the form of outlines that can be selectively expanded and collapsed, the user is given a high degree of control over the information that is displayed at any given time.

Lazzeri, Santos Gerardo

PySolate : A Python‐Based Thresholding Tool to Denoise or Designal Seismic Waveforms Based on the Continuous Wavelet Transform

PySolate is a Python‐based toolset that implements the continuous wavelet transform and nonlinear thresholding operations to denoise or designal seismic data, following Langston and Mousavi (2019). This filtering approach can remove microseismic noise to isolate intermediate‐period seismic signals that are key to enabling full‐waveform modeling and analysis of smaller‐magnitude regional events. This approach is best for the application to signals with frequency or time separation of signal and noise, in contrast to Fourier analysis, which is effective when signal and noise are separated in frequency. We demonstrate the Python toolset using the six announced Democratic People’s Republic of Korea declared nuclear tests, showing the effectiveness of isolating the seismic signal compared to standard bandpass filtering. In conclusion, we also demonstrate the ease of using the toolset with any Python processing tools.

Asia

Satellite Data of Atmospheric Pollution for U.S. Air Quality Applications: Examples of Applications, Summary of Data End-user Resources, Answers to Faqs, and Common Mistakes to Avoid

Satellite data of atmospheric pollutants are becoming more widely used in the decision-making and environmental management activities of public, private sector and non-profit organizations. They are employed for estimating emissions, tracking pollutant plumes, supporting air quality forecasting activities, providing evidence for "exceptional event" declarations, monitoring regional long-term trends, and evaluating air quality model output. However, many air quality managers are not taking full advantage of the data for these applications nor has the full potential of satellite data for air quality applications been realized. A key barrier is the inherent difficulties associated with accessing, processing, and properly interpreting observational data. A degree of technical skill is required on the part of the data end-user, which is often problematic for air quality agencies with limited resources. Therefore, we 1) review the primary uses of satellite data for air quality applications, 2) provide some background information on satellite capabilities for measuring pollutants, 3) discuss the many resources available to the end-user for accessing, processing, and visualizing the data, and 4) provide answers to common questions in plain language.

remote sensing

Satellite Data of Atmospheric Pollution for U.S. Air Quality Applications: Examples of Applications, Summary of Data End-User Resources, Answers to FAQs, and Common Mistakes to Avoid

Satellite data of atmospheric pollutants are becoming more widely used in the decision-making and environmental management activities of public, private sector and non-profit organizations. They are employed for estimating emissions, tracking pollutant plumes, supporting air quality forecasting activities, providing evidence for "exceptional event" declarations, monitoring regional long-term trends, and evaluating air quality model output. However, many air quality managers are not taking full advantage of the data for these applications nor has the full potential of satellite data for air quality applications been realized. A key barrier is the inherent difficulties associated with accessing, processing, and properly interpreting observational data. A degree of technical skill is required on the part of the data end-user, which is often problematic for air quality agencies with limited resources. Therefore, we 1) review the primary uses of satellite data for air quality applications, 2) provide some background information on satellite capabilities for measuring pollutants, 3) discuss the many resources available to the end-user for accessing, processing, and visualizing the data, and 4) provide answers to common questions in plain language.

Duncan, Bryan

Automatic Data Distribution for CFD Applications on Structured Grids

Development of HPF versions of NPB and ARC3D showed that HPF has potential to be a high level language for parallelization of CFD applications. The use of HPF requires an intimate knowledge of the applications and a detailed analysis of data affinity, data movement and data granularity. Since HPF hides data movement from the user even with this knowledge it is easy to overlook pieces of the code causing low performance of the application. In order to simplify and accelerate the task of developing HPF versions of existing CFD applications we have designed and partially implemented ADAPT (Automatic Data Distribution and Placement Tool). The ADAPT analyzes a CFD application working on a single structured grid and generates HPF TEMPLATE, (RE)DISTRIBUTION, ALIGNMENT and INDEPENDENT directives. The directives can be generated on the nest level, subroutine level, application level or inter application level. ADAPT is designed to annotate existing CFD FORTRAN application performing computations on single or multiple grids. On each grid the application can considered as a sequence of operators each applied to a set of variables defined in a particular grid domain. The operators can be classified as implicit, having data dependences, and explicit, without data dependences. In order to parallelize an explicit operator it is sufficient to create a template for the domain of the operator, align arrays used in the operator with the template, distribute the template, and declare the loops over the distributed dimensions as INDEPENDENT. In order to parallelize an implicit operator, the distribution of the operator's domain should be consistent with the operator's dependences. Any dependence between sections distributed on different processors would preclude parallelization if compiler does not have an ability to pipeline computations. If a data distribution is "orthogonal" to the dependences of an implicit operator then the loop which implements the operator can be declared as INDEPENDENT.

Frumkin, Michael