Bx Examples Repository
Title: Folksonomy Data Generator
Version: 0.1
Type:
Industrial, Sketch.
Overview
In this example, a view is extracted from a folksonomy (a kind of social network consisting of users, resources, items, activities and tags).
Models
The diagram below (click on it for a better resolution) shows a small folksonomy consisting of two users Alice and Bob, a resource, and an activity eat ice cream.
Users can be friends of other users, and can have items, which can be either activities, resources, or tags.
A resource can have both tags and activities assigned to it, while activities can be structured in a hierarchy (so an activity can be a sub-activity of another activity).
In the view, basically a folder consisting of files with entries (the AST is shown in the diagram, which can easily be "pretty printed" to file with a simple template).
In this case the friendship relation between Alice and Bob is relevant, as well as the triple formed by Alice, her activity eat ice cream, and the resource this is assigned to (maybe the ice cream?) :)
Consistency
The interesting point here is that the scenario is asymmetric: only certain structures are relevant for the view and result in entries in the corresponding files: friendships, activity-resource-user triples, resource-tag-user triples, sub-activity relationships, and user-activity relationships (corresponding entry is not shown in the diaagram but is there due to Alice <=> eat ice cream).
It is, therefore, impossible to re-create the folksonomy from the view, while the view can be discarded and re-created without information loss.
Consistency Restoration
Properties [optional section]
Variants [optional section]
Discussion
References [optional section]
Author(s)
Anthony Anjorin, Moji Anjorin
Reviewer(s)
Comments
Artefacts [optional section]
A virtual machine hosted on Share is available with a workspace containing both (Ecore) metamodels, the concrete example used above, and a TGG formalizing the consistency relation as a set of rules: