I have to handle the aboutEachPrefix (AEP) attribute in some way. One way would be to include a boolean field in the resources table to indicate if that resource (pointed at by the subj field in statements) is to represent each of many resources. Every time I would be intrested of a property, connected to a AEP attribute, I would have to loop over ALL those attributes, to see if any of them is a substring of the resource at hand. Most SQL databases support searches on substring, so each search will go rather quickly. But there will be one for each AEP of intrest. In a partial stateless enviroment ( like mod_perl ) I can't maintain trees and tables in memory, if it is importent that the data is the most recent one. Some other process could update the database. For a small RDF database, with no connection to other databses on the internet, I could read in all the data and generate a tree structure. That is what I have done (using perl): 1. Read in all resources (and values) in memory 2. Create one hashref ('object') per triple. Store every obj resource references. 3. Create additional objects based on every AEP reffered to by a triple. 4. Update all objects with obj resource reference to point to the object in memory, if there is one. A 'real' implementation would have to constantly use the database. But that gives the problem of how do you know there to look for AEP attributes to use? Maby a new table of resources covered by the EAP, that would have to be update for each new resource in the database. In the future, I would hope that a lot of data would be imported from internet RDF sites and just cached. You will have to accept that you can't have the latest data or all the data.