You said Semantic Networks can't represent quantifiers, like for all, for some, etc.. But in your own example you had the relation Has(Bird, Wing) and Can(Charlie, fly). Those relations do capture quantifiers, because it says that all birds have wings and that some birds can fly, since Charlie is a bird. They are at least categorical quantifiers. I don't think it is difficult to express existential generalization with a "maybe" relation, like in functional programming. For example, you might define Maybe(Bird, fly), meaning that if you search the children of the class Bird you are going to find at least one that can fly. Existential generalization can be seen as Bird inheriting Can(Charlie, fly), but changing it to Maybe. Alternatively, you could create a special "generic" instance of bird that has all the properties it's siblings has.