Temporal constraints of an Application Programming Interface (API) are the allowed
sequences of method invocations in the API governing the secure and robust
operation of client software using the API. These constraints are typically
described informally in natural language API documents, and therefore are not
amenable to existing constraint-checking tools. Manually identifying and writing
formal temporal constraints from API documents can be prohibitively time-consuming
and error-prone. To address this issue, we propose ICON: an approach based on
Machine Learning (ML) and Natural Language Processing (NLP) for identifying and
inferring formal temporal constraints. To evaluate our approach, we use ICON to
infer and formalize temporal constraints from the Amazon S3 REST API, the PayPal
Payment REST API, and the java.io package in the JDK API. Our results indicate that
ICON can effectively identify temporal constraint sentences (from over 4000 human
annotated API sentences) with the average 79.0% precision and 60.0% recall.
Furthermore, our evaluation demonstrates that ICON achieves an accuracy of 70% in
inferring 77 formal temporal constraints from these APIs.