183 research outputs found

    Domain-specific languages in Prolog for declarative expert knowledge in rules and ontologies

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Get PDF
    Τα τελευταία χρόνια η ανάπτυξη λογισμικού υποβοηθείται σε μεγάλο βαθμό από εργαλεία και βιβλιοθήκες που προσφέρονται ως μέρος των γλωσσών προγραμματισμού, καθώς και από Ολοκληρωμένα Περιβάλλοντα Ανάπτυξης. Επίσης, πλέον οι προγραμματιστές αναμένουν ένα επίπεδο αυτοματοποίησης την ώρα της συγγραφής κώδικα, όπως αυτό- ματη συμπλήρωση κώδικα ή επισήμανση συντακτικών λαθών. Σε αυτή την εργασία εξε- ρευνούμε το πως μπορεί να χρησιμοποιηθεί το πρωτόκολλο 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

    Get PDF
    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
    corecore