Having been programming in MQL and using Freebase for about 10 days now, there are some items I'd like to see going forward. I'd love to hear what other users think before going forward with a formal RFE (Request for Enhancement.) What follows is the beginnings of my wishlist. Please forgive the constant references to sports leagues and fantasy football... it's been a long off-season and I chose a fantasy football tool as my test case for MQL and Freebase.
Virtual Types: A type which can be added to other types, but which cannot be instantiated itself.
- In the database I'm setting up, I have two types of record that have exactly the same fields. One is the Statistic, which is a record of an NFL player's performance in a given season, and the other is the Projection, which is a guess as to a player's performance in a given year, usually prior to the season actually beginning. Rather than entering the common attribute definitions into each type, I created a type called StatLine, which includes all of the shared fields, and included that type in the type definitions of Projection and Statistic. I'd like to be able to mark the StatLine type as virtual, so it cannot be instantiated,
Cascading Deletes/Updates: I'd like to be able to mark unique reciprocal links such that when the parent instance in the relationship is deleted, all instances uniquely linked to that instance get deleted as well. Similarly, if the parent field by which the instances are linked is updated, all of the child instances' fields should be updated as well.
Attribute Constraints: While the object attributes in Freebase can already be limited by type, it would be very helpful to be able to limit their values as well. For instance, A sports league was created in 1933. Many associated objects would reference a specific season of that league, and it would be helpful to be able to limit the input values. Ideally, I'd like to limit input values to dates which only include the year designation, and only allow values >=1932.
It is possible that some or all of these functions are already available in MQL, but I could find no reference to them in the available documentation on the Freebase site. If so, pointers to the appropriate reference materials would be greatly appreciated.
Please add to the discussion with your opinions of the above and add your own RFE thoughts.
MJ