44 research outputs found
ET: an Enrolment Tool to Generate Expert Systems for University Courses
Expert Systems are in use today in many fields where there exists a well-defined problem domain (Giarratano & Riley, 2005). In this chapter, XML is used to help define a knowledge domain for academic course rules and used as the starting point for web-base expert systems. Requirements for the satisfactory completion of university and college courses can be quite complex. Courses such as undergraduate bachelor degrees and postgraduate masters degrees are typically composed of units (sometimes called subjects) that must be completed according to the course rules. Such rules may impose constraints on the units that may be taken from specific groups of units, as well as constraints like prerequisite units and corequisite units. Many universities designate a human expert – the Course Coordinator, to guide students through their enrolment process to ensure that students' programs conform to course rules. In addition, many universities provide web-based descriptions of courses and units. However, such web sites are usually purely descriptive and lack a level of interaction with students that would enable answers to complex enrolment questions. It is therefore tempting to consider the automation of the course coordinator's role and its delivery. This chapter will provide a detailed description of the generation of a variety of expert system products intended to provide online advice to students about university bachelor and masters level courses. These products include course rules, unit descriptions, enrolment advice and course planners. They are designed following knowledge acquisition from experienced academic course coordinators about typical student queries in relation to their enrolment choices. An XML Document Type Definition (DTD) will be described for university and college courses. It will be compatible with the European Credit Transfer System (EU, 2004), thus allowing a course to be composed of units with set credit points, term or semester of offering, and other unit constraints. Course rules may be expressed in terms of credit point requirements from groups of units. The XML data definition is sufficient to express the typical course requirement rules of higher education institutions such as universities and colleges
Source Code Verification for Embedded Systems using Prolog
System relevant embedded software needs to be reliable and, therefore, well
tested, especially for aerospace systems. A common technique to verify programs
is the analysis of their abstract syntax tree (AST). Tree structures can be
elegantly analyzed with the logic programming language Prolog. Moreover, Prolog
offers further advantages for a thorough analysis: On the one hand, it natively
provides versatile options to efficiently process tree or graph data
structures. On the other hand, Prolog's non-determinism and backtracking eases
tests of different variations of the program flow without big effort. A
rule-based approach with Prolog allows to characterize the verification goals
in a concise and declarative way.
In this paper, we describe our approach to verify the source code of a flash
file system with the help of Prolog. The flash file system is written in C++
and has been developed particularly for the use in satellites. We transform a
given abstract syntax tree of C++ source code into Prolog facts and derive the
call graph and the execution sequence (tree), which then are further tested
against verification goals. The different program flow branching due to control
structures is derived by backtracking as subtrees of the full execution
sequence. Finally, these subtrees are verified in Prolog.
We illustrate our approach with a case study, where we search for incorrect
applications of semaphores in embedded software using the real-time operating
system RODOS. We rely on computation tree logic (CTL) and have designed an
embedded domain specific language (DSL) in Prolog to express the verification
goals.Comment: In Proceedings WLP'15/'16/WFLP'16, arXiv:1701.0014
Csevegőrobotok. Az ITSy-Bitsy modell: Chatbots. The ITSy-Bitsy chatbot model
The utilization of chatbots has a significant increase in the software industry in the recent years. They are used sometimes in the field of software support, but sometimes they are also used as a new user interface paradigm. Industry chatbots are usually built using the neural-network/deep learning technology. In the present article however, we write about a rule based solution, that follows the steps of the usual natural language processing pipeline: morphology, syntax, semantics… The model is developed for the English language, and its knowledge base is filled with some example data of A.A.Milne’s Winnie-the-Pooh. It can therefore evaluate and answer some questions related to that worldlet.
Kivonat
Csevegőrobotok az elmúlt években robbanásszerűen terjedtek el az ipari szoftverekben, akár az üzemeltetés/hibabejelentés területén, akár egy újszerű kezelői felület elemeként. Az ipari csevegőrobotok általában neurális hálós/mélytanulásos technológiával készülnek. A jelen cikkben mégis egy szabályalapon készült csevegőrobot modellről számolunk be, amely híven követi a természetes nyelvek feldolgozásának szóalakelemzés-nyelvtani elemzés-tartalmi elemzés menetrendjét. A modell jelenleg angol nyelven működik, és a Micimackó világa van részben beprogramozva, vagyis erre vonatkozó kérdéseket tud kiértékelni és megválaszolni
Switch or Struggle: Risk Assessment for Late Integration of COTS Components
The domain requirements of software projects often seem so specialized to developers that their original design does not incorporate any commercial-off-the-shelf (COTS) components. However, if major implementation problems are encountered at a later stage in the project, the integration of a COTS component that promises to solve those problems may become a desirable alternative to struggling on
with the original implementation. While a number of methods and criteria have already been proposed for requirements engineering, risk assessment and candidate selection of COTS components, they were developed for application in the initial phases of a project and thus do not take into account the much tighter time and design constraints imposedin a later project stage. To spark discussion on necessary
adaptations of the established methods, this position paper uses the example of a concrete project to illustrate the characteristics of “switch or struggle” situations and proposes an initial set of risk factors to be considered at that time
Definite Clause Grammars with Parse Trees: Extension for Prolog
Definite Clause Grammars (DCGs) are a convenient way to specify possibly non-context-free grammars for natural and formal languages. They can be used to progressively build a parse tree as grammar rules are applied by providing an extra argument in the DCG rule\u27s head. In the simplest way, this is a structure that contains the name of the used nonterminal. This extension of a DCG has been proposed for natural language processing in the past and can be done automatically in Prolog using term expansion.
We extend this approach by a meta-nonterminal to specify optional and sequences of nonterminals, as these structures are common in grammars for formal, domain-specific languages. We specify a term expansion that represents these sequences as lists while preserving the grammar\u27s ability to be used both for parsing and serialising, i.e. to create a parse tree by a given source code and vice-versa. We show that this mechanism can be used to lift grammars specified in extended Backus-Naur form (EBNF) to generate parse trees. As a case study, we present a parser for the Prolog programming language itself based only on the grammars given in the ISO Prolog standard which produces corresponding parse trees