Good point. The declaration is just an extra constraint. It specifies what you can insert not what you have to insert. So in your example you can just insert some of the resources.
That's a really good point thanks! I guess the right observation to make there is having a fully integrated distributed database behind the knowledge base, which hopefully could unlock some applications scenarios from which Prolog is usually excluded.
The Prolog syntax is very elegant but it could be clunky, I totally agree. Our syntax has resource and role names instead of relying on position:
e.g.
match $x has lastname "some last name";