Well, I'm aware of systematic tree traversal (https://en.wikipedia.org/wiki/Tree_traversal) methods. Also, I know there exist some optimized searches such are Monte Carlo, or algorithm A*, and similar, but I'm not familiar with details. Anyway, if something has a tree structure, it can be searched. But specific tree structure isn't god given, you have to specify it somehow.
For example how would you specify the following conclusion:
all birds have wings
seagul is a bird
--------------------------
seagul has wings
Combining several conclusions in a row gives us entire process that could be considered as an algorithm in some cases.
What I want to say is that it is not "just a tree". It has to have some structure and atomic and compound elements, like constants, variables and operators. And I think discovering such structure elements is not such a trivial task. You might want to use some existing framework (mathematical logic or a kind of type theory), or you might want to discover your own. Anyway, the matter of a structure brings in a huge amount of complexity and it deserves a decent effort to investigate.
Basically, the process of tree search you describe is possible, but I'm telling that it because I know a few things about possible kinds of formal structures of knowledge represented by arbitrary expressions. I have to justify that it is easy to dismiss your ideas by someone with less experience in knowledge theories. I don't know how did you come to it, but recognizing your vision takes experience.
I'll pass you some links you might find relevant to your work. You might want to skim over term rewriting (https://en.wikipedia.org/wiki/Rewriting) to discover the whole world beneath the surface I'm trying to describe, and you might want to take a look at combinatorial explosion (https://en.wikipedia.org/wiki/Combinatorial_explosion), just to stay in touch with reality (there are methods like genetic programming (https://en.wikipedia.org/wiki/Genetic_programming), to partially avoid combinatorial explosion, if you are interested in digging further down the rabbit hole). For further details you would have to seek the web for PDF academic papers on meta knowledge (https://en.wikipedia.org/wiki/Metaknowledge) and similar materia.
The language that you are talking about is called first order logic. There are numerous dialects and implementations available. It forms the basis of many of the most advanced AI projects such as Cyc which is a fifty year project entering its final stages. The example that you gave earlier can be expressed with this rule "(forall ?x (=> (isa ?x bird) (haswings ?x)))" which reads "for all x, if x is a bird, then x has wings". If among your facts you have "(isa seagull bird)" and you ask "(haswings ?y)" it will answer "(seagull)".
Here's a more complicated example. First some rules.
(equal ?x ?x)
(<=> (equal ?x ?y) (equal ?y ?x))
(<=> (and (equal ?x ?y) (equal ?y ?z)) (equal ?x ?z))
(not (parent ?x ?x))
(not (grandparent ?x ?x))
(<=> (or (father ?x ?y) (mother ?x ?y)) (parent ?x ?y))
(<=> (or (grandfather ?x ?y) (grandmother ?x ?y)) (grandparent ?x ?y))
(<=> (and (parent ?x ?y) (mother ?y ?z)) (grandmother ?x ?z))
(<=> (and (parent ?x ?y) (father ?y ?z)) (grandfather ?x ?z))
And some facts:
(father carol robert)
(mother carol alice)
(father alice bill)
(mother alice mary)
(father robert tom)
(mother robert sally)
Query it for "(grandparent carol ?z)" and you get "(bill mary sally tom)".
For what it's worth I ran the above examples using my own C libraries which I wrote after years of research. I made some innovations along the way and to the best of my knowledge I have the fastest logical resolution software in existence, and no, I'm not sharing.
FFS read a book kids. You're trying to reinvent things that were invented 50 years ago.