134 research outputs found

    Ann: A domain-specific language for the effective design and validation of Java annotations

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

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

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

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

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

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

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