Sketching UML


Just discovered a very neat tool for playing around with small UML diagrams online. I was pondering extending the social bookmarking model earlier in the week, to make it possible to identify duplicate tags without confusing unrelated links. For example, a page tagged with ‘plant’ could be about machinery, or trees. yUML looks ideal for this kind of thing, drawing this diagram:

…from this simple markup:

# Social Bookmarking Diagram
[<<Entity>>;Tag]*-related to*[<<Entity>>;Tag]
[<<Entity>>;Tag]-[note: Tags could be ambiguous without knowing what other tags they are related to{bg:cornsilk}]
[<<Entity>>;Tag]*uses-used by*[<<Entity>>;Tagger]
[<<Entity>>;Tagger]*tagged by-bookmarked*[<<Entity>>;Link]
[<<Entity>>;Link]*applied to-tagged with*[<<Entity>>;Tag]

I can see this tool being really handy. If you want to give it a try, there are plenty of samples to get you started.

Advertisement

Social data modelling


I’ve been meaning to get round to extending a little social bookmarking example I started ages ago, and after a demo yesterday now seems like the perfect time. The rumours/news about Delicious are purely a coincidence; I’m definitely not planning to compete!!!

So I started out with a very basic model that only included bookmarks, which I’d now like to add tagging to, along with people. Here’s how I think that fits together:

The first question is, does that make sense as a basic tagging example? The next step is to create a physical data model, which I’m less sure about. My first attempt looks like this:

I hope I got the crows feat right, but is that a reasonable data model to achieve the kind of thing the first diagram shows? Are there any data modelling 101 guidelines that would help improve it? Any comments, tips and suggestions very welcome!