Ticket #109 (closed Enhancement: fixed)
Add facets to the core data model
Reported by: | jri | Owned by: | jri |
---|---|---|---|
Priority: | Major | Milestone: | Release 4.1 |
Component: | DeepaMehta Standard Distribution | Version: | 4.0.4 |
Keywords: | Cc: | JuergeN, dgf | |
Complexity: | 13 | Area: | |
Module: | deepamehta-core |
Description (last modified by jri) (diff)
Regardless of its type a topic can be attached to any number of domain-specific "facets". Facets are on a per-topic basis. E.g. a File topic which has an underlying MP3 file can be attached to a "ID3 Tags" facet. Or any topic with a geo-reference can be attached to a "Geo Coordinate" facet.
A facet is modeled like a type. E.g. "ID3 Tags" or "Geo Coordinate" are (composite) types. A File or a Person instance is then attached to "ID3 Tags" or "GPS coordinate" instances respectively. Attachment happens through associations of a special association type (or role type) named "Facet". The "Facet" meta-type is part of the DM core. The actual facet types in turn are provided by domain-specific modules/plugins. The mentioned facets can be provided e.g. by the "Music Jukebox" and "Geo Mapping" modules respectively.
Being part of the DM core model facets can be exploited e.g. by the REST API and by the web client's page and form generators. Requesting a topic via REST API involves selected facets which are retrieved along with the topic. The page and form generators can be configured to involve selected facets in its rendering/processing procedures. Which facets are involved in each case depends on the application context. E.g. in a multi-site scenario with *one* underlying DM storage each site can be setup to present a different facet of the same topic.
The overall goal of the facet feature is to cope with multi-dimensionality of information without relying on rigid multiple-inheritance. Its rather a multi-typing system.
Attachments
Change History
comment:2 Changed 13 years ago by Jörg Richter
Geomaps: add a geo facet to address topics (#53).
Facets module (#109) provide public service:
- associateWithFacetType()
- addFacet()
Furthermore in core:
- DeepaMehtaObject?'s update() method is public
- Class ChangeReport? is public (moved from "impl" package to "service")
- POST_CREATE_TOPIC hook has a "directives" parameter
- POST_UPDATE_TOPIC hook has a "clientContext" parameter
See ticket 53, ticket 109
comment:3 Changed 13 years ago by Jörg Richter
Geomaps: add a geo facet to address topics (#53).
Facets module (#109) provide public service:
- associateWithFacetType()
- addFacet()
Furthermore in core:
- DeepaMehtaObject?'s update() method is public
- Class ChangeReport? is public (moved from "impl" package to "service")
- POST_CREATE_TOPIC hook has a "directives" parameter
- POST_UPDATE_TOPIC hook has a "clientContext" parameter
See ticket 53, ticket 109
comment:4 Changed 13 years ago by jri
- Status changed from new to closed
- Resolution set to fixed
- Description modified (diff)
A first 0.1 version is released as external plugin:
https://github.com/jri/dm4-facets
According to the first draft there are 2 differences:
- Facets are not part of the DM core but realized as an external plugin (however, this might change in the future).
- The "Facet" type is not realized as additional meta model entity but solely as a role type.