A computational framework for authoring and searching product design specifications