An optimal-component is the least costly instance of a component class. To evaluate this relation will require making some kind of closed-world assumption over possible components.
(<=> (Optimal-Component ?Comp ?Component-Class)
(And (Component ?Comp)
(Component-Class ?Component-Class)
(Instance-Of ?Comp ?Component-Class)
(=> (Instance-Of ?Other-Component ?Component-Class)
(=< (Component.Cost ?Comp)
(Component.Cost ?Other-Component)))))