a query like (#$properPhysicalPartTypes #$Automobile ?X) returns many collections of automobile parts. But if you take an individual automobile, such as EinsteinsCar and ask
(#$properPhysicalParts #$EinsteinsCar ?Y)
there will be no answers. It seems to me that Cyc ought to be able to conclude that since "every instance of TYPE1 has an instance of TYPE2 as a proper physical part" that EinsteinsCar ought to have as many answers as the query about Automobile. But I'm not sure how that would work, exactly; the answers would have to be individuals themselves rather than collections, something like "the FourCycleEngine of EinsteinsCar."
I can work around it with slightly more convoluted queries that refer to the proper physical parts of the collection to which EinsteinsCar belongs, but I wonder what the right way to handle this is.
Edit: I figured this out, I think. The way to ask it is:
(#$isa ?PART ?PARTTYPE)
(#$physicalParts #$EinsteinsCar ?PART)))
that keeps the inference engine from having to give a name to ?PART.