134 research outputs found
Ann: A domain-specific language for the effective design and validation of Java annotations
This is the author’s version of a work that was accepted for publication in Computer Languages, Systems & Structures. Changes resulting from the publishing process, such as peer review, editing, corrections, structural formatting, and other quality control mechanisms may not be reflected in this document. Changes may have been made to this work since it was submitted for publication. A definitive version was subsequently published in Computer Languages, Systems & Structures, VOL 45, (2016) DOI 10.1016/j.cl.2016.02.002This paper describes a new modelling language for the effective design and validation of Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown from a useful tool for the addition of meta-data to play a central role in many popular software projects. Usually they are not conceived in isolation, but in groups, with dependency and integrity constraints between them. However, the native support provided by Java for expressing this design is very limited.
To overcome its deficiencies and make explicit the rich conceptual model which lies behind a set of annotations, we propose a domain-specific modelling language. The proposal has been implemented as an Eclipse plug-in, including an editor and an integrated code generator that synthesises annotation processors. The environment also integrates a model finder, able to detect unsatisfiable constraints between different annotations, and to provide examples of correct annotation usages for validation. The language has been tested using a real set of annotations from the Java Persistence API (JPA). Within this subset we have found enough rich semantics expressible with Ann and omitted nowadays by the Java language, which shows the benefits of Ann in a relevant field of application.We would like to thank the reviewers for their detailed comments, which helped us in improving a previous version of this paper. This work has been partially supported by the Spanish Ministry of Economy and Competitivity with project FLEXOR (TIN2014-52129-R) and the Community of Madrid with project SICOMORO-CM (S2013/ICE-3006)
A modelling language for the effective design of Java annotations
This paper describes a new modelling language for the ef-
fective design of Java annotations. Since their inclusion in
the 5th edition of Java, annotations have grown from a use-
ful tool for the addition of meta-data to play a central role
in many popular software projects. Usually they are con-
ceived as sets with dependency and integrity constraints
within them; however, the native support provided by Java
for expressing this design is very limited.
To overcome its deficiencies and make explicit the rich
conceptual model which lies behind a set of annotations, we
propose a domain-specific modelling language.
The proposal has been implemented as an Eclipse plug-
in, including an editor and an integrated code generator that
synthesises annotation processors. The language has been
tested using a real set of annotations from the Java Per-
sistence API (JPA). It has proven to cover a greater scope
with respect to other related work in diferent shared areas
of application
Ann: a domain-specific language for the effective design and validation of Java annotations
This paper describes a new modelling language for the effective design and validation of
Java annotations. Since their inclusion in the 5th edition of Java, annotations have grown
from a useful tool for the addition of meta-data to play a central role in many popular
software projects. Usually they are not conceived in isolation, but in groups, with
dependency and integrity constraints between them. However, the native support provided by Java for expressing this design is very limited.
To over
come
its
deficiencies
and
make
explicit
the
rich
conceptual model which lies
behind a set of annotations,we propose a domain-specific modelling language.The proposal has been implemented as an Eclipse plug-in, including an editor and an integrated
code generator that synthesises annotation processors. The environmental so integrates a model finder,able to detectun satisfiable constraints between different annotations, and to provide examples of correct annotation usages for validation. The language has been tested
using a real set of annotations from the Java Persistence API(JPA).Within this subset we have found enough rich semantics expressible with Ann and omitted nowadays by the Java language, which shows the benefits of Ann in are levant field of application
Fusión de redes Bayesianas Gaussianas
Las redes Bayesianas constituyen un modelo ampliamente utilizado para la representación
de relaciones de dependencia condicional en datos multivariantes. Su aprendizaje a partir de
un conjunto de datos o expertos ha sido estudiado profundamente desde su concepción. Sin
embargo, en determinados escenarios se demanda la obtención de un modelo común asociado
a particiones de datos o conjuntos de expertos. En este caso, se trata el problema de fusión
o agregación de modelos. Los trabajos y resultados en agregación de redes Bayesianas son
de naturaleza variada, aunque escasos en comparación con aquellos de aprendizaje. En este
documento, se proponen dos métodos para la agregación de redes Gaussianas, definidas como
aquellas redes Bayesianas que modelan una distribución Gaussiana multivariante. Los métodos
presentados son efectivos, precisos y producen redes con menor cantidad de parámetros en
comparación con los modelos obtenidos individualmente. Además, constituyen un enfoque
novedoso al incorporar nociones exploradas tradicionalmente por separado en el estado del arte.
Futuras aplicaciones en entornos escalables hacen dichos métodos especialmente atractivos,
dada su simplicidad y la ganancia en compacidad de la representación obtenida.---ABSTRACT---Bayesian networks are a widely used model for the representation of conditional dependence
relationships among variables in multivariate data. The task of learning them from a data set
or experts has been deeply studied since their conception. However, situations emerge where
there is a need of obtaining a consensuated model from several data partitions or a set of
experts. This situation is referred to as model fusion or aggregation. Results about Bayesian
network aggregation, although rich in variety, have been scarce when compared to the learning
task. In this context, two methods are proposed for the aggregation of Gaussian Bayesian
networks, that is, Bayesian networks whose underlying modelled distribution is a multivariate
Gaussian. Both methods are effective, precise and produce networks with fewer parameters in
comparison with the models obtained by individual learning. They constitute a novel approach
given that they incorporate notions traditionally explored separately in the state of the art.
Future applications in scalable computer environments make such models specially attractive,
given their simplicity and the gaining in sparsity of the produced model
Un lenguaje de modelado para la creación de anotaciones Java
Desde su introducción en Java 5, las anotaciones han pasado de ser una herramienta útil a
jugar un papel central en muchos proyectos software populares, como por ejemplo la Java Persistence
API (JPA), API para la persistencia de objetos Java, o el framework de construcción
de aplicaciones Spring.
Las anotaciones raramente se conciben de forma aislada, sino que forman un conjunto
con interdependencias y restricciones de integridad entre ellas y los elementos que anotan; sin
embargo, Java no ofrece un mecanismo para la expresión de dichas restricciones. Además, el
soporte sintáctico para la de nición de anotaciones es en sí mismo muy limitado, dado que se
reutilizan construcciones Java para otros propósitos.
Para suplir estas carencias se ha construido el lenguaje de modelado de dominio especí co
Ann, que permite hacer explícito el modelo conceptual de restricciones que hay detrás de
un conjunto de anotaciones. Se proporciona así mismo un entorno de modelado para de nir
los modelos de anotaciones con una sintaxis más acorde al resto de elementos de Java; y un
generador de código Java para integrar los conjuntos de anotaciones diseñados en proyectos ya
existentes en dicho lenguaje. El desarrollo de Ann se ha realizado mediante la Eclipse Modeling
Framework.
En la validación de Ann se ha utilizado un subconjunto de anotaciones de JPA y se han
expresado distintas restricciones de integridad entre ellas y con los elementos que anotaban.
El resultado ha sido muy satisfactorio, al haber conseguido expresar el modelo conceptual
subyacente casi al completo.
Respecto a otras herramientas similares, Ann ha demostrado tener un valor añadido en
distintos ámbitos de aplicación comunes. Además se dispone de un amplio abanico de posibles
líneas de trabajo futuro, como por ejemplo aplicaciones en la ingeniería inversa o extensiones
al lenguaje, al ser las anotaciones una característica relativamente reciente y el soporte actual
de Java muy limitado.
Para la realización de este proyecto me fue concedida una Beca de Colaboración por el
Ministerio de Educación de España.Since their addition in Java 5, annotations have grown from a useful tool to play a central
role in many popular software projects; like the Java Persistence API (JPA) or the Spring
framework.
Annotations are rarely conceived in an isolated way; instead, they are usually part of a set,
with dependencies and integrity constraints within them and the elements they are attached
to. However, there is no mechanism in Java to express those constraints. Besides, the syntactic
support for the de nition of annotations is itself very limited, given that some Java constructions
are reused for other purposes.
To overcome these de ciencies, I have built the domain-speci c modeling language Ann,
which allows making explicit the conceptual model of the constraints behind a set of annotations.
A modeling environment is also provided to de ne the annotation models with a more
homogeneous sintax within the rest of Java elements. In addition, a Java code generator has
been implemented in order to integrate the designed sets of annotations with existing projects
in such language. Ann has been developed using the Eclipse Modeling Framework.
A subset of JPA annotations has been chosen for the validation of Ann, and several constraints
within them and with the elements they decorate have been expressed. The result has
been very satisfying, given that the underlying conceptual model has been expressed almost
entirely.
With respect to other similar tools, Ann has proven to have an added value in di erent
shared areas of application. Regarding to possible future lines of work, there is a huge number
of possibilities, such as applications in reverse engineering or language extensions, given that
annotations are a feature relatively recent and the Java support is very limited nowadays.
I was granted a Collaboration Scholarship by the Spanish Ministry of Education for the
development of this project
A partial orthogonalization method for simulating covariance and concentration graph matrices
Structure learning methods for covariance and concentration graphs are often
validated on synthetic models, usually obtained by randomly generating: (i) an
undirected graph, and (ii) a compatible symmetric positive definite (SPD)
matrix. In order to ensure positive definiteness in (ii), a dominant diagonal
is usually imposed. However, the link strengths in the resulting graphical
model, determined by off-diagonal entries in the SPD matrix, are in many
scenarios extremely weak. Recovering the structure of the undirected graph thus
becomes a challenge, and algorithm validation is notably affected. In this
paper, we propose an alternative method which overcomes such problem yet
yielding a compatible SPD matrix. We generate a partially row-wise-orthogonal
matrix factor, where pairwise orthogonal rows correspond to missing edges in
the undirected graph. In numerical experiments ranging from moderately dense to
sparse scenarios, we obtain that, as the dimension increases, the link strength
we simulate is stable with respect to the structure sparsity. Importantly, we
show in a real validation setting how structure recovery is greatly improved
for all learning algorithms when using our proposed method, thereby producing a
more realistic comparison framework.Comment: 12 pages, 5 figures, conferenc
On generating random Gaussian graphical models
Structure learning methods for covariance and concentration graphs are often
validated on synthetic models, usually obtained by randomly generating: (i) an
undirected graph, and (ii) a compatible symmetric positive definite (SPD)
matrix. In order to ensure positive definiteness in (ii), a dominant diagonal
is usually imposed. In this work we investigate different methods to generate
random symmetric positive definite matrices with undirected graphical
constraints. We show that if the graph is chordal it is possible to sample
uniformly from the set of correlation matrices compatible with the graph, while
for general undirected graphs we rely on a partial orthogonalization method.Comment: Improved figures, algorithm descriptions and text exposition. arXiv
admin note: substantial text overlap with arXiv:1807.0309
- …