r9 - 26 Dec 2003 - 14:09:04 - DuckySherwoodYou are here: OSAF >  Jungle Web  >  DataModelJunglePages > DataModelSept2003FeatureList

September 2003 Data Model Feature List and Issues List

Here's a summary of the features we're talking about having in the data model, and the open issues we still need to resolve, as of September 2003.

Features

The features listed below will be available to parcel developers who are creating new domain-specific schemas, and to end-users who are editing Chandler items or creating domain-specific schemas.

Most of the features listed below are here because they have some impact on the data model itself. Some of the features may not directly impact the data model, but we've included them here anyway because of their impact on Chandler's end-to-end data handling infrastructure.


Top Five Features

Here's the short list of the most interesting features of the Chandler data model.

  • DONE items, attributes, and kinds
  • DONE ad hoc attributes, and ad hoc items
  • DONE global attributes
  • DONE sub-attributes
  • DONE bi-directional references


Contents


Table of Features and Issues

resolved: "in" features

Features we've already implemented, or that we've resolved to implement.

resolved: "out" features

Features we've resolved not to implement. (The Chandler platform won't have first-class support for this feature, but third-party parcels might offer this feature, built on top of Chandler building blocks.)

open issues

Features that we haven't yet made a decision about.

queries # DONE queries represented as a query data structure (e.g. query items)

DONE queries can be saved and used again later

MOVED TO... no built-in support for queries that span multiple repositories

MOVED TO... no built-in support queries that span foreign data sources (like IMAP)

HELP queries represented as strings

HELP what sorts of queries?

attributes # DONE sub-attributes -- like in RDF

DONE global attributes -- attributes can be defined globally (like in RDF), or for a kind

DONE aliases -- users can set attributes to be vague types like "Number", "AnyString", "Anything"

DONE cardinalities -- 'single' and 'list' for both literals and references, plus 'dict' for literals

DONE attributes flagged as ones to index on

MOVED TO... no compound attributes -- attributes can have component attributes (name: first_name, last_name)

MOVED TO... no attributes bound to a kind (non-global)

MOVED TO... no attributes that describe sentences (as opposed to attributes that describe items)

HELP whether or not we deal with types and kinds as being homogeneous and interchangable
  • single valued attributes that can contain either items and literals (either "string" or "Task")
  • lists that contain both items and literals (e.g. both "strings" and "Tasks")
  • "Anything" as an alias
  • aliases to Types vs. aliases to Taxons
  • in the schema XML format, do we separate "attributes" and "references"
restrictions # DONE cardinality restrictions

DONE non-null restrictions (required/optional)

DONE data type restrictions (e.g. "Float") -- strong typing available, and weak typing available

MOVED TO... no multi-valued type restrictions (e.g. "Integer or String") HELP range restrictions (e.g. "21 to 35")

HELP inter-attribute restrictions

HELP transitive restrictions

HELP "expectations" vs. restrictions

ad hoc attributes # DONE ad hoc attributes that hold a single literal value HELP multi-valued ad hoc attributes (list, dict)

HELP ad hoc values that are item references rather than literals

HELP ad hoc attributes implemented as references to ad hoc Attribute items (e.g. so that they can have a display name)

references # DONE bi-directional references between items (but only within a repository)

DONE both weak-reference and strong-reference relationships (but only within a repository)

DONE references across repositories (only unidirectional weak-references)

DONE 'referencePolicy', as well as 'copyPolicy' and 'deletePolicy'

DONE cardinalities -- 'single', 'list' -- effectively supporting 1-to-1, 1-to-Many, and Many-to-Many relationships

MOVED TO... no bi-directional references across repositories

MOVED TO... no strong-references across repositories

HELP how we handle reference policies (e.g. wholly-owned items)

HELP unidirectional referenences

HELP cross-repository references -- foreign items, local proxies, and partial proxies

HELP reference policies -- can we have referencePolicy use inheritFrom to get deletePolicy and copyPolicy?

null values # DONE attributes with null values

DONE items with missing attributes (as distinct from attributes with null values)

default values # DONE default values can be specified for an attribute

DONE default values are set when attribute is created, not when an item is created, or on get()

data types # DONE both strong-typing and weak-typing for attributes (e.g. "float" vs. "Anything")

DONE UUIDs -- 128-bit ids, unique across all repositories

DONE basic data types -- Integer, Float, Boolean, etc.

HELP additional data types -- URL, file, Blob...

HELP timezones, and different types of dates and times

HELP lightweight enums (an enumeration of symbols) vs. heavyweight enums (an enumeration of items) -- mappings between lightweight enums and heavyweight enums

HELP hierarchical enums

strings # DONE 'Symbol' as a basic type (ASCII, no spaces, etc.) -- (available at system level, but not user level)

DONE unicode strings -- 'String' as a basic type (16-bit unicode strings) -- all strings in unicode, not ASCII

DONE platform independent rich text strings

DONE standard display string attribute ("displayName")

DONE kind-specific display string attributes ("displayAttribute")

DONE HTML links in strings

DONE "StringWithItems" -- strings with bi-directional chandler links

DONE "PolyglotString " -- dictionary of localizations keyed by language

HELP whether or not we support PolyglotString as a literal vs. an Item

HELP whether or not we support StringWithItems as a literal vs. an Item

HELP "AnyString" -- whether or not we have "AnyString" as alias for String, PolyglotString, and StringWithItems (strings with Chandler bi-directional references)

HELP recognisers that recognise strings as items

HELP "promoting" strings to items

HELP attributes that can be either a string or an item (e.g. "String" or "Task")

kinds and inheritance # DONE multiple inheritance (for kinds)

DONE single-kind items (an item can be a "primary instance" of just one kind)

DONE multi-kind items (an item can have a list of "secondary kinds" -- for example, e-mail messages that are also tasks)

DONE item morphing -- an item can change from one kind to another, but only if it does not have associated Python parcel code

DONE "type" inheritance -- an item of a sub-kind counts as being of the type of the super-kind

DONE "attribute" inheritance -- a sub-kind inherits the attributes from the super-kind

MOVED TO... no items becoming instances of a kind as a result of automatic ontology reasoning
associating behavior with kinds # DONE kinds can have associated python classes MOVED TO... no kinds with any sort of associated behavior other than via their python class associations
item versioning # DONE versioning features can be implemented by custom app code MOVED TO... no built-in support for versioning -- no DB-level support for item versions

MOVED TO... no past versions of items

MOVED TO... no change objects

sharing # DONE replicated items -- local copies of items from other repositories

HELP what kind of support for publishing and subscription -- how to implement automatic updates for subscriptions?

HELP cross-repository references

HELP local copies and proxies

  • local copies from other Chandler repositories
  • local copies from foriegn data sources (e.g. IMAP)
  • full proxies
  • partial proxy copies
schemas # HELP how does one schema add attributes to a kind defined in another schema?

HELP user customization of the PIM schema

HELP schema evolution in a multi-user shared-repository environment

HELP sharing items across different schemas

repositories # HELP repository subsets (DataModelIssues#Repository_Subsets)

HELP virtual repositories (within a server repository, my repository vs. your repository)

deletion and garbage collection # DONE simple garbage collection mechanism similar to ref-counting

DONE explicit deletion of items

reflection # DONE full reflection -- schema info as first class items -- items for Kinds, Types, Aliases, and Attributes

DONE third parties can create new Types, Aliases, Kinds, and Items

derivation # DONE attribute inheritance -- via the 'inheritFrom' attribute MOVED TO... no derivation rules -- on kinds or on instances

MOVED TO... no indexing of derived values

MOVED TO... no derived items (e.g. recurring events)

HELP flagging an attribute as a derived attributes, without any further special handling

HELP hooks that allow custom Python code to implement derived attributes

RDF # DONE import/export in Chandler-centric RDF format (bare-bones, and PIM ignorant) MOVED TO... import/export domain specific RDF formats (e.g. Calendar)

MOVED TO... mappings to other RDF schemas

HELP semantic dictionaries for mappings
names and namespaces # DONE XML schema files that use namespaces MOVED TO... non-global attribute definitions (bound to a kind) HELP where we want to use references by name vs. bi-directional item references (e.g. otherName vs. inverseAttribute)

HELP relationship between URLs, itemPaths, XML schema file namespaces, Chandler's notion of namespaces, and DomainSchemas

authorization # HELP users, accounts, permissions, groups

HELP relationship between Kinds used for authorization (users, permissions, groups) and Kinds used in the PIM schema (users, personas, profiles, groups, contacts, agents)

HELP item-level vs. attribute-level permissions (partial-item permissions)

HELP capabilities vs. ACLs -- other issues

HELP group permissions

HELP kind-instantiation permissions

HELP permissions for domain attributes vs. house-keeping attributes

files and attachements # HELP imported files vs. file bookmarks

HELP e-mail attachements

HELP "in-repository" storage vs. references to file-system files

notifications # DONE some form of simple notifications HELP what sort of notifications?

HELP conditions?

HELP triggers?

undo and transactions # DONE some form of transactions HELP rollback

HELP undo implemented based on transactions

  • single-user undo
  • multi-user undo
  • intra-session undo
  • inter-session undo



Contributors

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r9 < r8 < r7 < r6 < r5 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.