183 research outputs found
Domain-specific languages in Prolog for declarative expert knowledge in rules and ontologies
Declarative if–then rules have proven very useful in many applications of expert sys- tems. They can be managed in deductive databases and evaluated using the well-known forward-chaining approach. For domain-experts, however, the syntax of rules becomes complicated quickly, and already many different knowledge representation formalisms ex- ist. Expert knowledge is often acquired in story form using interviews. In this paper, we discuss its representation by defining domain-specific languages (Dsls) for declarative ex- pert rules. They can be embedded in Prolog systems in internal Dsls using term expan- sion and as external Dsls using definite clause grammars and quasi-quotations – for more sophisticated syntaxes.
Based on the declarative rules and the integration with the Prolog-based deductive database system DDbase, multiple rules acquired in practical case studies can be combined, compared, graphically analysed by domain-experts, and evaluated, resulting in an extensi- ble system for expert knowledge. As a result, the actual modeling Dsl becomes executable; the declarative forward-chaining evaluation of deductive databases can be understood by the domain experts. Our Dsl for rules can be further improved by integrating ontologies and rule annotations
Leveraging Semantic Web Technologies for Managing Resources in a Multi-Domain Infrastructure-as-a-Service Environment
This paper reports on experience with using semantically-enabled network
resource models to construct an operational multi-domain networked
infrastructure-as-a-service (NIaaS) testbed called ExoGENI, recently funded
through NSF's GENI project. A defining property of NIaaS is the deep
integration of network provisioning functions alongside the more common storage
and computation provisioning functions. Resource provider topologies and user
requests can be described using network resource models with common base
classes for fundamental cyber-resources (links, nodes, interfaces) specialized
via virtualization and adaptations between networking layers to specific
technologies.
This problem space gives rise to a number of application areas where semantic
web technologies become highly useful - common information models and resource
class hierarchies simplify resource descriptions from multiple providers,
pathfinding and topology embedding algorithms rely on query abstractions as
building blocks.
The paper describes how the semantic resource description models enable
ExoGENI to autonomously instantiate on-demand virtual topologies of virtual
machines provisioned from cloud providers and are linked by on-demand virtual
connections acquired from multiple autonomous network providers to serve a
variety of applications ranging from distributed system experiments to
high-performance computing
Open Programming Language Interpreters
Context: This paper presents the concept of open programming language
interpreters and the implementation of a framework-level metaobject protocol
(MOP) to support them. Inquiry: We address the problem of dynamic interpreter
adaptation to tailor the interpreter's behavior on the task to be solved and to
introduce new features to fulfill unforeseen requirements. Many languages
provide a MOP that to some degree supports reflection. However, MOPs are
typically language-specific, their reflective functionality is often
restricted, and the adaptation and application logic are often mixed which
hardens the understanding and maintenance of the source code. Our system
overcomes these limitations. Approach: We designed and implemented a system to
support open programming language interpreters. The prototype implementation is
integrated in the Neverlang framework. The system exposes the structure,
behavior and the runtime state of any Neverlang-based interpreter with the
ability to modify it. Knowledge: Our system provides a complete control over
interpreter's structure, behavior and its runtime state. The approach is
applicable to every Neverlang-based interpreter. Adaptation code can
potentially be reused across different language implementations. Grounding:
Having a prototype implementation we focused on feasibility evaluation. The
paper shows that our approach well addresses problems commonly found in the
research literature. We have a demonstrative video and examples that illustrate
our approach on dynamic software adaptation, aspect-oriented programming,
debugging and context-aware interpreters. Importance: To our knowledge, our
paper presents the first reflective approach targeting a general framework for
language development. Our system provides full reflective support for free to
any Neverlang-based interpreter. We are not aware of any prior application of
open implementations to programming language interpreters in the sense defined
in this paper. Rather than substituting other approaches, we believe our system
can be used as a complementary technique in situations where other approaches
present serious limitations
A Language Server for Soufflé Datalog
Τα τελευταία χρόνια η ανάπτυξη λογισμικού υποβοηθείται σε μεγάλο βαθμό από εργαλεία
και βιβλιοθήκες που προσφέρονται ως μέρος των γλωσσών προγραμματισμού, καθώς
και από Ολοκληρωμένα Περιβάλλοντα Ανάπτυξης. Επίσης, πλέον οι προγραμματιστές
αναμένουν ένα επίπεδο αυτοματοποίησης την ώρα της συγγραφής κώδικα, όπως αυτό-
ματη συμπλήρωση κώδικα ή επισήμανση συντακτικών λαθών. Σε αυτή την εργασία εξε-
ρευνούμε το πως μπορεί να χρησιμοποιηθεί το πρωτόκολλο LSP και άλλες τεχνολογίες
για την προσθήκη λειτουργιών υποστήριξης, όπως αυτές που αναφέρθηκαν, σε μια νεα
γλώσσα, τη Soufflé Datalog. H Soufflé είναι μια γλώσσα λογικού προγραμματισμού, που
χρησιμοποιείται για στατική ανάλυση προγραμμάτων. Αναπτύξαμε έναν Language Server,
ο οποίος μπορεί να ενσωματωθεί σε πρόσθετο οποιουδήποτε συγγραφέα πηγαίου κώδικα
συμβατό με το πρωτόκολλο LSP, για να προστεθούν "έξυπνες" λειτουργίες και υποστήριξη
για τη γλώσσα Soufflé Datalog.Software development is increasingly supported by programming language tools and IDEs,
in order to meet the increase in software complexity and computing power. Programmers
nowadays also expect a level of automation like automatic syntax error detection or a level
of auto complete when editing their source-code. In this thesis we explore how one can
use the Language Server Protocol and other technologies to add tool support to a novel
programming language like Soufflé Datalog, a logic programming language used for static
program analysis. We developed a Language Server for Soufflé, which can be used inside
a plugin for a variety of source-code editors or IDEs, compatible with LSP, to add smart
functionality and support for Soufflé
Facilitating Transformations in a Human Genome Project Database
Human Genome Project databases present a confluence of interesting database challenges: rapid schema and data evolution, complex data entry and constraint management, and the need to integrate multiple data sources and software systems which range over a wide variety of models and formats. While these challenges are not necessarily unique to biological databases, their combination, intensity and complexity are unusual and make automated solutions imperative. We illustrate these problems in the context of the Human Genome Database for Chromosome 22 (Chr22DB), and describe a new approach to a solution for these problems, by means of a deductive language for expressing database transformations and constraints
- …