Papers by Rafael Caballero
arXiv (Cornell University), Aug 23, 2010
Similarity-based Logic Programming (briefly, SLP) has been proposed to enhance the LP paradigm wi... more Similarity-based Logic Programming (briefly, SLP) has been proposed to enhance the LP paradigm with a kind of approximate reasoning which supports flexible information retrieval applications. This approach uses a fuzzy similarity relation R between symbols in the program's signature, while keeping the syntax for program clauses as in classical LP. Another recent proposal is the QLP (D) scheme for Qualified Logic Programming, an extension of the LP paradigm which supports approximate reasoning and more. This approach uses annotated program clauses and a parametrically given domain D whose elements qualify logical assertions by measuring their closeness to various users' expectations. In this paper we propose a more expressive scheme SQLP (R, D) which subsumes both SLP and QLP (D) as particular cases. We also show that SQLP (R, D) programs can be transformed into semantically equivalent QLP (D) programs. As a consequence, existing QLP (D) implementations can be used to give efficient support for similarity-based reasoning.
RePEc: Research Papers in Economics, 2016
Die Dokumente auf EconStor dürfen zu eigenen wissenschaftlichen Zwecken und zum Privatgebrauch ge... more Die Dokumente auf EconStor dürfen zu eigenen wissenschaftlichen Zwecken und zum Privatgebrauch gespeichert und kopiert werden. Sie dürfen die Dokumente nicht für öffentliche oder kommerzielle Zwecke vervielfältigen, öffentlich ausstellen, öffentlich zugänglich machen, vertreiben oder anderweitig nutzen. Sofern die Verfasser die Dokumente unter Open-Content-Lizenzen (insbesondere CC-Lizenzen) zur Verfügung gestellt haben sollten, gelten abweichend von diesen Nutzungsbedingungen die in der dort genannten Lizenz gewährten Nutzungsrechte. Terms of use: Documents in EconStor may be saved and copied for your personal and scholarly purposes. You are not to copy documents for public or commercial purposes, to exhibit the documents publicly, to make them publicly available on the internet, or to distribute or otherwise use the documents in public. If the documents have been made available under an Open Content Licence (especially Creative Commons Licences), you may exercise further usage rights as specified in the indicated licence.
This paper presents 37 new common proper-motion pairs. The new pairs have been obtained employing... more This paper presents 37 new common proper-motion pairs. The new pairs have been obtained employing a semi-automatic procedure based on the inspection of images using the tool Aladin, completed with information obtained from the catalogs available at VizieR. All the pairs fulfill the Halbwachs criteria, employed to increase the probability of a physical bond between the two components. Vol. 11 No. 3 July 1, 2015 Page 168 Journal of Double Star Observations New Common Proper-Motion Pairs with R.A. Between 00h and 01h Format of the “Source” column: UV | XY where U identifies the catalog used to obtain the magnitude of the A component, V the catalog to obtained the magnitude of the B component, X the catalog used to get the PM of the A component and Y the catalog to obtain the proper movement of the B component, where: G: GSC2.3 (Lasker et al., 2008) H: Red magnitude from GSC2.3 I: The Initial Gaia Source List (IGSL) (Smart, 2013) L: LSPM (Lepine+ 2005) M: Sample of low mass stars with m...
We present an approach for the static detection of possible assertion violations in Java. The mai... more We present an approach for the static detection of possible assertion violations in Java. The main idea is to use an existing test-case generator in combination with a new program transformation. A possible assertion violation is indicated by a generated specific test case. In addition, this test case specifies the path in the program leading to the assertion violation. This heuristic approach is a compromise between the usual but too late detection of an assertion violation at runtime and an often too expensive complete analysis based on a model checker. Keywords–assertion; automatic test-case generation; program transformation.
Lecture Notes in Computer Science, 2015
We present a technique for checking the validity of Java assertions using an arbitrary automated ... more We present a technique for checking the validity of Java assertions using an arbitrary automated test-case generator. Our framework transforms the program by introducing code that detects whether the assertion conditions are met by every direct and indirect method call within a certain depth level. Then, any automated test-case generator can be used to look for input examples that falsify the conditions. We show by means of experimental results the effectiveness of our proposal.
The aim of this paper is to examine the IPHAS-POSS-I survey looking for previously uncataloged co... more The aim of this paper is to examine the IPHAS-POSS-I survey looking for previously uncataloged common proper motion pairs. This is done by selecting pairs of stars with separation under 90 arc seconds and also similar and significant proper motion. Different criteria are applied to reduce the set of pairs increasing the probability of a physical bound between the two components. The result of this research is a set of 34 new common proper motion pairs.
The detection of deterministic computations at run-time can be used to introduce dynamic cuts pru... more The detection of deterministic computations at run-time can be used to introduce dynamic cuts pruning the search space and thus increasing the efficiency of functional logic systems. This idea was introduced in an early work of R. Loogen and S. Winkler. However the proposal of these authors cannot be used in current implementations because it did not consider non-deterministic functions and was not oriented to the demand driven strategy. Our work adapts and extends the technique, showing both how to deal with non-deterministic computations, and how definitional trees can be employed to locate the places where the cuts will be introduced. An implementation based on a Prolog-translation is proposed, making the technique easy to implement in current systems generating Prolog code. Some experiments showing the effectiveness of the cut are presented.
Multiple observations were made of six faint common proper motion pairs with the 2-meter Faulkes ... more Multiple observations were made of six faint common proper motion pairs with the 2-meter Faulkes Telescope North on Haleakala by Maui middle school and high school students and their supporters. Of the six pairs, two are reported as newly discovered proper motion binaries. Individual reductions versus a single 'track and stack' reduction were compared.
The Journal of Logic and Algebraic Programming, Oct 1, 2012
Declarative debugging is a semi-automatic technique that starts from an incorrect computation and... more Declarative debugging is a semi-automatic technique that starts from an incorrect computation and locates a program fragment responsible for the error by building a tree representing this computation and guiding the user through it to find the wrong statement. This paper presents the fundamentals for the declarative debugging of rewriting logic specifications, realized in the Maude language, where a wrong computation can be a reduction, a type inference, or a rewrite. We define appropriate debugging trees obtained as the result of collapsing in proof trees all those nodes whose correctness does not need any justification. Since these trees are obtained from a suitable semantic calculus, the correctness and completeness of the debugging technique can be formally proved. We illustrate how to use the debugger by means of an example and succinctly describe its implementation in Maude itself thanks to its reflective and metalanguage features.
Information and Software Technology, 2021
El objetivo del presente trabajo consistió en examinar el ajuste social y escolar de jóvenes que ... more El objetivo del presente trabajo consistió en examinar el ajuste social y escolar de jóvenes que habían sufrido maltrato en la infancia y se encontraban en situación de acogimiento residencial. Además, pretendíamos comprobar si existían diferencias entre los sujetos sometidos a distintas situaciones de desprotección infantil. En el estudio participaron 318 jóvenes residentes en la Comunidad Autónoma del País Vasco de edades comprendidas entre los 13 y los 18 años (M = 15.35, DT = 1.68) pertenecientes
Journal of Logical and Algebraic Methods in Programming, 2019
One of the main advantages of declarative languages is their clearly established formal semantics... more One of the main advantages of declarative languages is their clearly established formal semantics, that allows programmers to reason about the properties of programs and to establish the correctness of tools. In particular, declarative debugging is a technique that analyses the proof trees of computations to locate bugs in programs. However, in the case of commercial declarative languages such as the functional language Erlang, sometimes the semantics is only informally defined, and this precludes these possibilities. Moreover, defining semantics for these languages is far from trivial because they include complex features needed in real applications, such as concurrency. In this paper we define a semantics for Core Erlang, the intermediate language underlying Erlang programs. We focus on the problem of concurrency and show how a medium-sized-step calculus, that avoids the details of small-step semantics but still captures the most common program errors, can be used to define an algorithmic debugger that is sound and complete.
Journal of Logical and Algebraic Methods in Programming, 2018
Erlang is a concurrent language with features such as actor model concurrency, no shared memory, ... more Erlang is a concurrent language with features such as actor model concurrency, no shared memory, message passing communication, high scalability, and availability. However, the development of concurrent programs is a complex and error prone task. In this paper we present a declarative debugging approach for concurrent Erlang programs. Our debugger asks questions about the validity of transitions between the different points of the program that involve message passing. The answers, which represent the intended behavior of the program, are compared with the transitions obtained in an actual execution of the program. The differences allow us to detect program errors and to point out the pieces of source code responsible for the bugs. In order to represent the computations we present a semantic calculus for concurrent Core Erlang programs. The debugger uses the proof trees in this calculus as the debugging trees used for selecting the questions asked to the user. The relation between the debugging trees and the semantic calculus allows us to establish the soundness of the approach. The theoretical ideas have been implemented in a debugger prototype.
Proceedings of the 17th International Symposium on Principles and Practice of Declarative Programming, 2015
Lecture Notes in Computer Science, 2011
Page 1. Integrating XPath with the Functional-Logic Language Toy Rafael Caballero1, Yolanda Garcı... more Page 1. Integrating XPath with the Functional-Logic Language Toy Rafael Caballero1, Yolanda Garcıa-Ruiz1, and Fernando Sáenz-Pérez2,⋆ ... 147 <?xml version='1.0'?> <food> <item type="fruit"> <name>watermelon</name> <price>32</price> </item> <item type="fruit"> <name ...
Lecture Notes in Computer Science, 2011
Lecture Notes in Computer Science, 2012
ACM Computing Surveys, 2018
Algorithmic debugging is a technique proposed in 1982 by E. Y. Shapiro in the context of logic pr... more Algorithmic debugging is a technique proposed in 1982 by E. Y. Shapiro in the context of logic programming. This survey shows how the initial ideas have been developed to become a widespread debugging schema fitting many different programming paradigms and with applications out of the program debugging field. We describe the general framework and the main issues related to the implementations in different programming paradigms and discuss several proposed improvements and optimizations. We also review the main algorithmic debugger tools that have been implemented so far and compare their features. From this comparison, we elaborate a summary of desirable characteristics that should be considered when implementing future algorithmic debuggers.
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming, 2005
Debugging is one of the essential parts of the software development cycle. However, the usual deb... more Debugging is one of the essential parts of the software development cycle. However, the usual debugging techniques used in imperative languages such as the step by step execution often are not suitable for debugging declarative programming languages. We present here a graphical debugging environment for constraint lazy functionallogic programs based on declarative debugging. The debugger displays the computation tree associated with a computation which has produced an incorrect answer, and navigates it with the assistance of the user until the error, an incorrect program rule, is found out. The debugger supports programs including equality and disequality constraints.
Uploads
Papers by Rafael Caballero