15 research outputs found
On Fast Large-Scale Program Analysis in Datalog
Designing and crafting a static program analysis is challenging due to the complexity of the task at hand. Among the challenges are modelling the semantics of the input language, finding suitable abstractions for the analysis, and handwriting efficient code for the analysis in a traditional imperative language such as C++. Hence, the development of static program analysis tools is costly in terms of development time and resources for real world languages. To overcome, or at least alleviate the costs of developing a static program analysis, Datalog has been proposed as a domain specific language (DSL).With Datalog, a designer expresses a static program analysis in the form of a logical specification. While a domain specific language approach aids in the ease of development of program analyses, it is commonly accepted that such an approach has worse runtime performance than handcrafted static analysis tools. In this work, we introduce a new program synthesis methodology for Datalog specifications to produce highly efficient monolithic C++ analyzers. The synthesis technique requires the re-interpretation of the semi-naïve evaluation as a scaffolding for translation using partial evaluation. To achieve high-performance, we employ staged compilation techniques and specialize the underlying relational data structures for a given Datalog specification. Experimentation on benchmarks for large-scale program analysis validates the superior performance of our approach over available Datalog tools and demonstrates our competitiveness with state-of-the-art handcrafted tools
ProvMark:A Provenance Expressiveness Benchmarking System
System level provenance is of widespread interest for applications such as
security enforcement and information protection. However, testing the
correctness or completeness of provenance capture tools is challenging and
currently done manually. In some cases there is not even a clear consensus
about what behavior is correct. We present an automated tool, ProvMark, that
uses an existing provenance system as a black box and reliably identifies the
provenance graph structure recorded for a given activity, by a reduction to
subgraph isomorphism problems handled by an external solver. ProvMark is a
beginning step in the much needed area of testing and comparing the
expressiveness of provenance systems. We demonstrate ProvMark's usefuless in
comparing three capture systems with different architectures and distinct
design philosophies.Comment: To appear, Middleware 201
Incremental Static Analysis with Differential Datalog
Πολλές εφαρμογές ενημερώνουν τον κώδικα τους με αρκετούς μετασχηματισμούς συντήρησης καθ 'όλη τη διάρκεια ζωής της εφαρμογής. Επομένως, τα αποτελέσματα της ανάλυσης μιας εφαρμογής μπορεί να χρειαστεί να αξιολογηθούν σταδιακά. Στην παρούσα πτυχιακή, διερευνούμε τις δυνατότητες σταδιακής αύξησης της στατικής ανάλυσης προγράμματος, χρησιμοποιώντας τη βιβλιοθήκη Doop και τη μηχανή Datalog της DDlog. Το Doop είναι ένα στατικό πλαίσιο ανάλυσης και η DDlog (Differential Datalog) είναι ένας μηχανισμός για αυξητική αξιολόγηση Datalog, βασισμένη σε μια βιβλιοθήκη παραλληλισμού δεδομένων, Differential Dataflow.
Διαπιστώνουμε ότι οι στατικές αναλύσεις που βασίζονται σε Doop μπορούν να αξιολογηθούν αυξητικά μέσω της DDlog, η οποία απαιτεί ελάχιστες παρεμβάσεις στη λογική ανάλυσης. Παρουσιάζουμε την απόδοση της DDlog σε σύγκριση με το μηχανισμό Soufflé Datalog που το Doop ενσωματώνει.Many applications have their code updated by several maintenance transformations throughout the application's functioning lifetime. Therefore, the results of analyzing an application may need to be evaluated incrementally. In this thesis, we explore the possibilities of incrementality in static program analysis, using the Doop framework and the DDlog incremental Datalog engine. Doop is a static analysis framework and DDlog (Differential Datalog) is an engine for incremental Datalog evaluation, based on a data-parallel library, Differential Dataflow.
We find that Doop-based static analyses can be incrementally evaluated via DDlog requiring minimum interventions to the analysis logic. We illustrate DDlog's performance compared to the Soufflé Datalog engine that Doop integrates
Incorporating Stratified Negation into Query-Subquery Nets for Evaluating Queries to Stratified Deductive Databases
Most of the previously known evaluation methods for deductive databases are either breadth-first or depth-first (and recursive). There are cases when these strategies are not the best ones. It is desirable to have an evaluation framework for stratified DatalogN that is goal-driven, set-at-a-time (as opposed to tuple-at-a-time) and adjustable w.r.t. flow-of-control strategies. These properties are important for efficient query evaluation on large and complex deductive databases. In this paper, by incorporating stratified negation into so-called query-subquery nets, we develop an evaluation framework, called QSQNSTR, with such properties for evaluating queries to stratified DatalogN databases. A variety of flow-of-control strategies can be used for QSQNSTR. The generic evaluation method QSQNSTR for stratified DatalogN is sound, complete and has a PTIME data complexity
Recommended from our members
On the Potential of Logic and Reasoning in Neurosymbolic Systems using OWL-based Knowledge Graphs
Knowledge graphs feature ever more frequently as symbolic components in neurosymbolic research and systems. But even though a central concern of neurosymbolic AI is to combine neural learning with symbolic reasoning, relatively little neurosymbolic research focuses on leveraging the logical representation and reasoning capabilities of OWL-based knowledge graphs. The objective of this position paper is to inspire more neurosymbolic researchers to embrace the OWL and the Semantic Web by raising awareness of the benefits, capabilities, and applications of OWL-based knowledge graphs, particularly with respect to logical reasoning. We describe the ecosystem of open W3C standards-based resources available that support the adoption and use of OWL-based knowledge graphs; we describe tools that exist for engineering custom OWL ontologies tailored to particular research needs; we discuss the encoding of background KG knowledge in subsymbolic embedding spaces and various applications of this approach; we discuss and illustrate the reasoning capabilities of OWL-based knowledge graphs; and we describe several promising directions for research that focus on leveraging these reasoning capabilities. We also discuss the specialised resources needed to undertake research on OWL-based knowledge graphs in neurosymbolic systems. We use the example of NeSy4VRD, an image dataset with a custom-designed companion OWL ontology. The scarcity of this kind of resource should be addressed to accelerate research in this field
Eine deskriptive Anfrageschnittstelle für Hydra.PowerGraph
Im Feld der Datenbankforschung stellen Graphdatenbanken eine große Innovation der letzten Jahre dar. Durch ihre Möglichkeit, hochgradig vernetzte Daten effizient darstellen und auswerten zu können, eignen sich solche Systeme für viele Anwendungsfälle, in denen das bisher vorherrschende Konzept der relationalen Datenbanken an seine praktischen Grenzen stößt. Allerdings hat dieses System den Graphdatenbanken eine wichtige Entwicklung voraus: eine einheitliche Anfragesprache fundiert auf einer soliden theoretischen Grundlage. Bei der Internationalen Organisation für Standardisierung (ISO) befindet sich ein solcher sprachstandard, genannt GQL, gerade in der Entwicklung. Dieser ist allerdings nur für eine spezielle Art von Graphdatenbankmodell, dem Property-Graph-Modell, entworfen. Ein anderes Modell, das Hypergraphenmodell, kann unangepasst nicht mit GQL verwendet werden. Diese Bachelorarbeit erarbeitet die Grundlagen, auf denen sich eine solche Anpassung an eine spezielle Art von Hypergraphdatenbankmodell, dem WossiDiA-PowerGraph-Modell, vornehmen lässt. Es wird eine theoretisch solide Grundlage, namentlich eine Graphenalgebra für Hypergraphen, erarbeitet, die sich mit der relationalen Algebra für relationale Datenbanken vergleichen lässt. Anschließend wird ein Vorschlag gegeben, wie diese Hypergraphenalgebra auf eine angepasste Version von GQL, HyperGQL, abgebildet werden kann. Dieser Vorschlag wird schließlich durch eine Implementation getestet und seine Tauglichkeit für Anfragen an die Datenbank untersucht. Dabei wird eine REST-Schnittstelle des WossiDiA-Systems verwendet, welche öffentlich bereitgestellt ist