222 research outputs found
Ten virtues of structured graphs
This paper extends the invited talk by the first author about the virtues
of structured graphs. The motivation behind the talk and this paper relies on our
experience on the development of ADR, a formal approach for the design of styleconformant,
reconfigurable software systems. ADR is based on hierarchical graphs
with interfaces and it has been conceived in the attempt of reconciling software architectures
and process calculi by means of graphical methods. We have tried to
write an ADR agnostic paper where we raise some drawbacks of flat, unstructured
graphs for the design and analysis of software systems and we argue that hierarchical,
structured graphs can alleviate such drawbacks
Constraint Design Rewriting
We propose an algebraic approach to the design and transformation of constraint networks, inspired by Architectural Design Rewriting. The approach can be understood as (i) an extension of ADR with constraints, and (ii) an application of ADR to the design of reconfigurable constraint networks. The main idea is to consider classes of constraint networks as algebras whose operators are used to denote constraint networks with terms. Constraint network transformations such as constraint propagations are specified with rewrite rules exploiting the networkās structure provided by terms
An Algebra of Hierarchical Graphs and its Application to Structural Encoding
We define an algebraic theory of hierarchical graphs, whose axioms
characterise graph isomorphism: two terms are equated exactly when
they represent the same graph. Our algebra can be understood as
a high-level language for describing graphs with a node-sharing, embedding
structure, and it is then well suited for defining graphical
representations of software models where nesting and linking are key
aspects. In particular, we propose the use of our graph formalism as a
convenient way to describe configurations in process calculi equipped
with inherently hierarchical features such as sessions, locations, transactions,
membranes or ambients. The graph syntax can be seen as an
intermediate representation language, that facilitates the encodings of
algebraic specifications, since it provides primitives for nesting, name
restriction and parallel composition. In addition, proving soundness
and correctness of an encoding (i.e. proving that structurally equivalent
processes are mapped to isomorphic graphs) becomes easier as it can
be done by induction over the graph syntax
Graph Rewriting with Contextual Refinement
In the standard theory of graph transformation, a rule modifies only subgraphs of constant size and fixed shape.Ā The rules supported by the graph-rewriting tool GrGen are far more expressive: they may modify subgraphs of unbounded size and variable shape. Therefore properties like termination and confluence cannot be analyzed as for the standard case. In order to lift such results, we formalize the outstanding feature of GrGen rules by using plain rules on two levels: schemata} are rules with variables; they are refined with meta-rules, which are based on contextual hyperedge replacement, before they are used for rewriting.We show that every rule based on single pushouts, on neighborhood-controlled embedding, or on variable substitution can be modeled by a schema with appropriate meta-rules. It turns out that the question whether schemata may have overlapping refinements is not decidable
String Diagrams for -calculi and Functional Computation
This tutorial gives an advanced introduction to string diagrams and graph
languages for higher-order computation. The subject matter develops in a
principled way, starting from the two dimensional syntax of key categorical
concepts such as functors, adjunctions, and strictification, and leading up to
Cartesian Closed Categories, the core mathematical model of the lambda calculus
and of functional programming languages. This methodology inverts the usual
approach of proceeding from syntax to a categorical interpretation, by
rationally reconstructing a syntax from the categorical model. The result is a
graph syntax -- more precisely, a hierarchical hypergraph syntax -- which in
many ways is shown to be an improvement over the conventional linear term
syntax. The rest of the tutorial focuses on applications of interest to
programming languages: operational semantics, general frameworks for type
inference, and complex whole-program transformations such as closure conversion
and automatic differentiation
Robust Subgraph Generation Improves Abstract Meaning Representation Parsing
The Abstract Meaning Representation (AMR) is a representation for open-domain
rich semantics, with potential use in fields like event extraction and machine
translation. Node generation, typically done using a simple dictionary lookup,
is currently an important limiting factor in AMR parsing. We propose a small
set of actions that derive AMR subgraphs by transformations on spans of text,
which allows for more robust learning of this stage. Our set of construction
actions generalize better than the previous approach, and can be learned with a
simple classifier. We improve on the previous state-of-the-art result for AMR
parsing, boosting end-to-end performance by 3 F on both the LDC2013E117 and
LDC2014T12 datasets.Comment: To appear in ACL 201
- ā¦