Neural networks are the one thing I would not recommend. Your problem fits into the domain of predicate calculus, with some basic pattern recognition of the input sentences (assuming you only accept a certain type of sentences). You can do that without the need for masses of data.
First, transform your statement into a canonical representation, probably using first-order logic and simple pattern matching/string matching. For example,
I own a dog
X own/owns a/an Y
owns(I, dog)
Here you have a pattern "X own(s) a(n) Y", which you recognise in your user input. You then have a predicate owns(X, Y), which you add to your database of statements. This database you can then query. For example, Do I own a cat? could fit a question pattern Do/Does X own(s) a(n) Y?, and you can search for own(I, cat) in your DB; you will not find it, so the answer is "No". If the question is "Do I own a dog?" you will find owns(I, dog) in your database and you can reply "Yes".
This is all rather 'old' technology, but I think you will find that you will get decent results much quicker than with machine learning or statistical methods, especially if you have not much data to begin with.
A further branch to look into would be expert systems. If you're thinking in terms of programming languages, then Prolog would be well suited for this, but any language should do, really.