Active Inductive Logic Programming for Code Search
Not on the map. Why?
Abstract (arXiv)
Modern search techniques either cannot efficiently incorporate human feedback to refine search results or to express structural or semantic properties of desired code. The key insight of our interactive code search technique ALICE is that user feedback could be actively incorporated to allow users to easily express and refine search queries. We design a query language to model the structure and semantics of code as logic facts. Given a code example with user annotations, ALICE automatically extracts a logic query from features that are tagged as important. Users can refine the search query by labeling one or more examples as desired (positive) or irrelevant (negative). ALICE then infers a new logic query that separates the positives from negative examples via active inductive logic programming. Our comprehensive and systematic simulation experiment shows that ALICE removes a large number of false positives quickly by actively incorporating user feedback. Its search algorithm is also robust to noise and user labeling mistakes. Our choice of leveraging both positive and negative examples and the nested containment structure of selected code is effective in refining search queries. Compared with an existing technique, Critics, ALICE does not require a user to manually construct a search pattern and yet achieves comparable precision and recall with fewer search iterations on average. A case study with users shows that ALICE is easy to use and helps express complex code patterns.
Key facts. Cited by 3 papers in the map (data through 7 Oct 2026). First posted on arXiv 13 Dec 2018.
Builds on
No reference list yet.
Built on by
Citing papers per year: 2021: 2; 2022: 0; 2023: 1.
3 papers.
- 2021Inductive logic programming at 30cited by 46
- 2021Multimodal Representation for Neural Code Searchcited by 11
- 2023Rapid Image Labeling via Neuro-Symbolic Learningcited by 4
- 2023Rapid Image Labeling via Neuro-Symbolic Learning18 Jun 2023
- 2021Multimodal Representation for Neural Code Search2 Jul 2021
- 2021Inductive logic programming at 3021 Feb 2021