Graph query languages may also prove to be the most generalizable way of expressing relationships that are more than simply traversing the prefixed links from one list to another. For instance, while links currently support the idea of CEO.Spouse.Dog.Name, there is no way to get from the dog to the Dog's Spouse's CEO's company's name. That might look like --Dog.--Spouse.--CEO.Name, or perhaps something else. (Perhaps this introduces an element of instability, especially in a distributed system. One could say that this is a search function and should not be treated as content. E.g., if the Dog wants to claim a relationship to the dog's "owner" the dog should say so. If someone wants to attribute ownership of the dog to someone, they can do so, but that is part of the other person, not part of the dog.) Similarly, there is no syntax for, say, all of the shareholders of a company, or all of the kids in a class. Again, this could be a query, and again, perhaps any query that results in a "document" should be recorded as such - as a list of each shareholder or each kid, which is recorded as such.