ICON: Inferring Temporal Constraints from Natural Language API Descriptions
Abstract
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.
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.