More on RIF - REBOL Index Files
I've received a number of comments on my RIF blog below. That's good. It looks like many people are interested in the idea.
I wanted to clarify one specific aspect of the RIF structure. RIF records do not imply a specific type of DB semantics. In other words, if you want to implement a normal DB table in RIF, you can. For instance, every record can include a fixed number of elements in a specific order. In that case you have a normal table. Example RIF records could be:
["Bob" "Smith" "Ukiah" "CA"] ["Jane" "Doe" "Willits" "CA"] ...
However, you can also use a free format within records. Variant records are allowed. So, if you want to implement a name-value attribute database (eg. like the Windows registry), you can do that too:
[name "Bob Smith" city "Ukiah" state "CA"] [name "Mary Doe" phone "444-555-1212"] [name "Lilly Long" state "WA"]
Both formats are allowed within RIF.
There is just one other thing to note. Name-value records (or any records that use words) will benefit from REBin (REBOL binary format) format because the words of the record are reduced to symbol table references. (The symbol table is held in the RIF global area).
One other note, on a different aspect of RIF: A few people have suggested that we just use an existing DB implementation. I want to comment that I am not opposed to that idea. But, there are normally three problems with this idea: implementation size, compatibility with REBOL concepts, and license. On the first, if the DB engine adds 250K to REBOL, then it's not worth it. On the second, REBOL is a highly reflective symbolic language with a wide variety of primitive datatypes. Most DBs don't have the necessary flexibility to support REBOL well. The third, well, it can be the smallest greatest DB on earth, but if they won't let us use it, then we can't.