Exploring Web platform cross-dependencies
During the 2016 edition of the W3C Geek Week, my colleague François Daoust and myself have explored another way of using this formalism. We first built a crawler and scrapper of specifications (based on the excellent jsdom library) which extracts the WebIDL definitions embedded in these specifications, and the normative references that bind these specifications to specifications they build upon.
With that data collected across all the specifications we were able to identify that use WebIDL, we built a first simple analyzer of that WebIDL graph, to identify potential bugs in specifications, including invalid WebIDL definitions, duplication of names in interfaces, references to undefined interface names, missing normative references.
We also built a simple explorer of that WebIDL data that allows to determine which interfaces are defined where, and re-used by what other specifications.
This combination of tools has already allowed us to identify and file a number of specification bugs, and we hope to continue developing them and exploring the resulting data to inform future APIs development and provide opportunities for even more consistency across the Web Platform.