{
  "issue_key": "vol05-no1-2017",
  "volume": 5,
  "number": 1,
  "season": "Summer 2017",
  "year": 2017,
  "sequence": 7,
  "type": "research-article",
  "section": "Research Article",
  "title": "Programming by Example; A technique to automate database query",
  "subtitle": null,
  "slug": "programming-by-example-a-technique-to-automate-database-query",
  "corporate_author": null,
  "authors": [
    {
      "given_name": "Mahin",
      "family_name": "Talukder",
      "credentials": null,
      "affiliation": null,
      "email": null,
      "orcid": null,
      "is_corresponding": false,
      "sequence": 1
    }
  ],
  "abstract": "The paper “Programming by Example; A technique to automate database query” encourages non-programmers to develop programming skills and natural language processing. The traditional approach of manually constructing a programme for such a normalisation task requires expertise in both programming and target (human) language and further does not scale to a large number of domain, format or target language combinations. This article proposes programmes can be learned for such normalisation tasks through examples. A domain specific programming language offers appropriate abstractions for succinctly describing such normalisation tasks, and then present a novel search algorithm that can effectively learn programs in this language from input-output examples. In this paper we describe domain-specific heuristics for guiding researchers to normalisation tasks related to that domain.",
  "keywords": [
    "Programme Synthesis",
    "Programming by Examples",
    "Inductive Synthesis",
    "Deductive Synthesis",
    "MySQL Programming",
    "End-user Programming"
  ],
  "first_page": 22,
  "last_page": 30,
  "pdf_start": 21,
  "pdf_end": 29,
  "references": [
    {
      "ordinal": 1,
      "raw_text": "Browne, J.C., Asam, M. and Sobek, S., (1989). Code: A unified approach to parallel programming. Software, IEEE, 6(4), pp. 10-18.",
      "doi": null,
      "markdown": "Browne, J.C., Asam, M. and Sobek, S., (1989). Code: A unified approach to parallel programming. *Software, IEEE*, **6**(4), pp. 10-18."
    },
    {
      "ordinal": 2,
      "raw_text": "Bush, V. (1945), 'As we may think', Atlantic Monthly (7), 101-108.",
      "doi": null,
      "markdown": "Bush, V. (1945), 'As we may think', *Atlantic Monthly (7*), 101-108."
    },
    {
      "ordinal": 3,
      "raw_text": "Carrasco, R.A., Vila, M.A. and Galindo, J., (2003). FSQL: a flexible query language for data mining, Enterprise information systems IV 2003, Kluwer Academic Publishers, pp. 68-74.",
      "doi": null,
      "markdown": "Carrasco, R.A., Vila, M.A. and Galindo, J., (2003). FSQL: a flexible query language for data mining, *Enterprise information systems IV* 2003, Kluwer Academic Publishers, pp. 68-74."
    },
    {
      "ordinal": 4,
      "raw_text": "Dixon, P., (2001). Basics of oracle text retrieval. IEEE Data Eng.Bull., 24(4), pp. 11-14.",
      "doi": null,
      "markdown": "Dixon, P., (2001). Basics of oracle text retrieval. *IEEE Data Eng.Bull*., **24**(4), pp. 11-14."
    },
    {
      "ordinal": 5,
      "raw_text": "Friedman, T. and Bitterer, A., (2005). Market Scope Update: Data Quality Technology.",
      "doi": null,
      "markdown": "Friedman, T. and Bitterer, A., (2005). Market Scope Update: Data Quality Technology."
    },
    {
      "ordinal": 6,
      "raw_text": "Gravano, L., Ipeirotis, P.G., Jagadish, H.V., Koudas, N., Muthukrishnan, S., Pietarinen, L. and Srivastava, D., (2001). Using q-grams in a DBMS for approximate string processing. IEEE Data Eng.Bull., 24(4), pp. 28-34.",
      "doi": null,
      "markdown": "Gravano, L., Ipeirotis, P.G., Jagadish, H.V., Koudas, N., Muthukrishnan, S., Pietarinen, L. and Srivastava, D., (2001). Using q-grams in a DBMS for approximate string processing. *IEEE Data Eng.Bull*., **24**(4), pp. 28-34."
    },
    {
      "ordinal": 7,
      "raw_text": "Gulwani, S., Harris, W.R. and Singh, R., (2012). Spreadsheet data manipulation using examples. Communications of the ACM, 55(8), pp. 97-105.",
      "doi": null,
      "markdown": "Gulwani, S., Harris, W.R. and Singh, R., (2012). Spreadsheet data manipulation using examples. *Communications of the ACM*, **55**(8), pp. 97-105."
    },
    {
      "ordinal": 8,
      "raw_text": "Hamilton, J.R. and Nayak, T.K., (2001). Microsoft SQL server full-text search. IEEE Data Eng.Bull., 24(4), pp. 7-10.",
      "doi": null,
      "markdown": "Hamilton, J.R. and Nayak, T.K., (2001). Microsoft SQL server full-text search. *IEEE Data Eng.Bull*., **24**(4), pp. 7-10."
    },
    {
      "ordinal": 9,
      "raw_text": "Hart, S.G. and Staveland, L.E., (1988). Development of NASA-TLX (Task Load Index): Results of empirical and theoretical research. Advances in Psychology, 52, pp. 139-183.",
      "doi": null,
      "markdown": "Hart, S.G. and Staveland, L.E., (1988). Development of NASA-TLX (Task Load Index): Results of empirical and theoretical research. *Advances in Psychology*, **52**, pp. 139-183."
    },
    {
      "ordinal": 10,
      "raw_text": "Jha, S.; Gulwani, S.; Seshia, S. A. & Tiwari, A. (2010). Oracle-guided component-based program synthesis., in Jeff Kramer; Judith Bishop; Premkumar T. Devanbu & Sebastián Uchitel, eds., 'ICSE (1)', ACM, pp. 215-224 .",
      "doi": null,
      "markdown": "Jha, S.; Gulwani, S.; Seshia, S. A. & Tiwari, A. (2010). Oracle-guided component-based program synthesis., *in* Jeff Kramer; Judith Bishop; Premkumar T. Devanbu & Sebastián Uchitel, eds., '*ICSE* (1)', ACM, pp. 215-224 ."
    },
    {
      "ordinal": 11,
      "raw_text": "Kepler, M.A., Huey, C.A., Qi, R. and Wake, C.A., (2004). Method and system for retrieving data from multiple data sources using a search routing database, USA: Grant, http://www.google.com/patents/US6745177 accessed 01 January 2016.",
      "doi": null,
      "markdown": "Kepler, M.A., Huey, C.A., Qi, R. and Wake, C.A., (2004). Method and system for retrieving data from multiple data sources using a search routing database, USA: Grant, http://www.google.com/patents/US6745177 accessed 01 January 2016."
    },
    {
      "ordinal": 12,
      "raw_text": "Kini, D. & Gulwani, S. (2015). FlashNormalise: Programming by Examples for Text Normalisation in Qiang Yang & Michael Wooldridge (eds.), 'IJCAI' , AAAI Press, pp. 776-783",
      "doi": null,
      "markdown": "Kini, D. & Gulwani, S. (2015). FlashNormalise: Programming by Examples for Text Normalisation *in* Qiang Yang & Michael Wooldridge (eds.), *'IJCAI'* , AAAI Press, pp. 776-783"
    },
    {
      "ordinal": 13,
      "raw_text": "Kuipers, B. and Byun, Y., (1991). A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations. Robotics and autonomous systems, 8(1), pp. 47-63.",
      "doi": null,
      "markdown": "Kuipers, B. and Byun, Y., (1991). A robot exploration and mapping strategy based on a semantic hierarchy of spatial representations. *Robotics and autonomous systems*, **8**(1), pp. 47-63."
    },
    {
      "ordinal": 14,
      "raw_text": "Maier, A. and Simmen, D.E., (2001). DB2 optimisation in support of full text search. IEEE Data Eng.Bull., 24(4), pp. 3-6.",
      "doi": null,
      "markdown": "Maier, A. and Simmen, D.E., (2001). DB2 optimisation in support of full text search. *IEEE Data Eng.Bull*., **24**(4), pp. 3-6."
    },
    {
      "ordinal": 15,
      "raw_text": "Marcotte, E.M., Pellegrini, M., Thompson, M.J., Yeates, T.O. and Eisenberg, D., (1999). A combined algorithm for genome-wide prediction of protein function. Nature, 402(6757), pp. 83-86.",
      "doi": null,
      "markdown": "Marcotte, E.M., Pellegrini, M., Thompson, M.J., Yeates, T.O. and Eisenberg, D., (1999). A combined algorithm for genome-wide prediction of protein function. *Nature*, **402**(6757), pp. 83-86."
    },
    {
      "ordinal": 16,
      "raw_text": "Mur, R.A., (2006). Automatic Inductive Programming, Proceedings of the 23rd international conference on machine learning, tutorial 2006.",
      "doi": null,
      "markdown": "Mur, R.A., (2006). *Automatic Inductive Programming*, Proceedings of the 23rd international conference on machine learning, tutorial 2006."
    },
    {
      "ordinal": 17,
      "raw_text": "Navarro, G., Baesa-Yates, R.A., Sutinen, E. and Tarhio, J., (2001). Indexing methods for approximate string matching. IEEE Data Eng.Bull., 24(4), pp. 19-27.",
      "doi": null,
      "markdown": "Navarro, G., Baesa-Yates, R.A., Sutinen, E. and Tarhio, J., (2001). Indexing methods for approximate string matching. *IEEE Data Eng.Bull*., **24**(4), pp. 19-27."
    },
    {
      "ordinal": 18,
      "raw_text": "Nicolaou, A.I. and McKnight, D.H., (2006). Perceived information quality in data exchanges: Effects on risk, trust, and intention to use. Information Systems Research, 17(4), pp. 332-351.",
      "doi": null,
      "markdown": "Nicolaou, A.I. and McKnight, D.H., (2006). Perceived information quality in data exchanges: Effects on risk, trust, and intention to use. *Information Systems Research*, **17**(4), pp. 332-351."
    },
    {
      "ordinal": 19,
      "raw_text": "O'Neill, M. and Ryan, C., (2012). Grammatical evolution: evolutionary automatic programming in an arbitrary language. London: Springer Science & Business Media.",
      "doi": null,
      "markdown": "O'Neill, M. and Ryan, C., (2012). Grammatical evolution: evolutionary automatic programming in an arbitrary language. London: Springer Science & Business Media."
    },
    {
      "ordinal": 20,
      "raw_text": "Perry, D.L., 2002. VHDL: Programming by Example,New York:McGraw-Hill.",
      "doi": null,
      "markdown": "Perry, D.L., 2002. *VHDL*: Programming by Example,New York:McGraw-Hill."
    },
    {
      "ordinal": 21,
      "raw_text": "Simonyi, C., Christerson, M. and Clifford, S., (2006). Intentional software, ACM SIGPLAN Notices 2006, ACM, pp. 451-464.",
      "doi": null,
      "markdown": "Simonyi, C., Christerson, M. and Clifford, S., (2006). Intentional software, *ACM SIGPLAN Notices* 2006, ACM, pp. 451-464."
    },
    {
      "ordinal": 22,
      "raw_text": "Smith, D.R., Kotik, G.B. and Westfold, S.J., (1985). Research on knowledge-based software environments at Kestrel Institute. Software Engineering, IEEE Transactions on, (11), pp. 1278-1295.",
      "doi": null,
      "markdown": "Smith, D.R., Kotik, G.B. and Westfold, S.J., (1985). Research on knowledge-based software environments at Kestrel Institute. *Software Engineering, IEEE Transactions on*, (11), pp. 1278-1295."
    },
    {
      "ordinal": 23,
      "raw_text": "Weiss, G., (1999). Multiagent systems: a modern approach to distributed artificial intelligence. USA: MIT Press.",
      "doi": null,
      "markdown": "Weiss, G., (1999). Multiagent systems: a modern approach to distributed artificial intelligence. USA: MIT Press."
    },
    {
      "ordinal": 24,
      "raw_text": "Withers, K.J., (2005). Electronically stored information: The December 2006 amendments to the federal rules of civil procedure. New Journal of Technology& Intelligence. Prop., 4, pp. 171.",
      "doi": null,
      "markdown": "Withers, K.J., (2005). Electronically stored information: The December 2006 amendments to the federal rules of civil procedure. *New Journal of Technology& Intelligence. Prop*., **4**, pp. 171."
    },
    {
      "ordinal": 25,
      "raw_text": "Xing, L., Chen, Y., Wang, P., Shao, Q. and Xiong, J., (2010). A knowledge-based ant colony optimisation for flexible job shop scheduling problems. Applied Soft Computing, 10(3), pp. 888-896.",
      "doi": null,
      "markdown": "Xing, L., Chen, Y., Wang, P., Shao, Q. and Xiong, J., (2010). A knowledge-based ant colony optimisation for flexible job shop scheduling problems. *Applied Soft Computing*, **10**(3), pp. 888-896."
    },
    {
      "ordinal": 26,
      "raw_text": "Young, R.L., Kant, E. and Akers, L.A., (2000). A knowledge-based electronic information and documentation system, Proceedings of the 5th international conference on intelligent user interfaces, ACM, pp. 280-285.",
      "doi": null,
      "markdown": "Young, R.L., Kant, E. and Akers, L.A., (2000). *A knowledge-based electronic information and documentation system*, Proceedings of the 5th international conference on intelligent user interfaces, *ACM*, pp. 280-285."
    }
  ],
  "notes": [
    "⁹ PhD Candidate",
    "¹⁰ Cloud is synonymous with Apple iCloud, which is a popularly used Internet based data storage system for individual and company use",
    "¹¹ PHP is a server-side scripting language designed primarily for web development.",
    "¹² MySQL is an open-source Relational Database Management System (RDBMS) that uses Structured Query Language (SQL).",
    "¹³ Java is a concurrent, class-based, object-oriented computer programming language",
    "¹⁴ C++ is a programming language standardized by the International Organisation for Standardization (ISO)",
    "¹⁵ Logic programming is a type of programming paradigm which is largely based on formal logic",
    "¹⁶ \\[weblink: http://www.trilliumsoftware.com\\]",
    "¹⁷ IBM is an American multinational technology company that produce computer component and business solutions",
    "¹⁸ DB2 is a database product from IBM that uses Relational Database Management System (RDBMS)",
    "¹⁹ SQL: Structured Query Language"
  ],
  "figures": [
    {
      "kind": "figure",
      "file": "figures/fig-01-p23.png",
      "caption": "Fig 1: Generalising compile process (Browne et al., 1989)",
      "pdf_page": 23,
      "text_in_image": null
    },
    {
      "kind": "figure",
      "file": "figures/fig-02-p27.png",
      "caption": "Fig. 2: Research strategy for ‘Programming by example",
      "pdf_page": 27,
      "text_in_image": null
    }
  ],
  "files": {
    "html": "index.html",
    "body_markdown": "body.md",
    "pdf": "article.pdf"
  },
  "word_count": 3667,
  "conversion_warnings": [
    "Caption of Fig. 2 lacks the closing quotation mark in the source ('Research strategy for ‘Programming by example'); kept as printed.",
    "Source typos kept: heading 'Current Statue of Art in Programming by example'; 'Cloud¹⁰or' (no space after the footnote marker in the source).",
    "Body cites '(Vannevar, 1945)' while the reference list has 'Bush, V. (1945)'; kept as printed."
  ],
  "manifest_notes": "Author line 'Mahin Talukder 9'; footnote 9: 'PhD Candidate' (no institution printed). Essentially a research proposal (Research Objectives / Research Questions / Research Methodology sections, no results) - could arguably be typed research-protocol. 'Fig 1: Generalising compile process (Browne et al., 1989)' PDF p.23 (raster image); 'Fig. 2: Research strategy for ‘Programming by example' PDF p.27 (raster image; caption lacks closing quote). Heading typo in source: 'Current Statue of Art in Programming by example' (= State of the Art). Explanatory footnotes 10-19 at 8pt on PDF pp.21-24. References PDF pp.28-29; footer on pp.28-30 is shifted left (x~109/494) but page numbers continue normally.",
  "source": {
    "pdf": "vol05-no1-2017.pdf",
    "ocr": false
  },
  "reviewed": true
}
