Needle s have the same functionality as Straw s in their ability to be linked from and to by other Straw s. This difference should be obvious to those with knowledge of database systems. However, in Haystack we extend the concept of database primitive from the usual set of strings, ints, reals, etc. The Haystack data model primitive provides a wrapper around any conceivable data type. For example a needle.
Text represents a wrapping around a particular bit of digital text.
Date may wrap around a long representation of the date. Therefore it is up to the programmer to cast the Object to a more specific type. However, the Needle programmer may throw a NeedleDataException if the data is not castable to the required format. It is our hope that this flexibility will not cause great difficulties to the programmers and users of our system. By properly specifying the behavior of all nodes we hope that the added functionality will allow for a richer set of services and applications.