April 16, 2009

Some Domain-Driven Design in action

I've been working hard on the preview release of gloss.io which is now up for public scrutiny. Aloog the way I've been learning more about the problem domain and many of the req's are solidifying nicely. Meanwhile Eric Evans book on Domain Driven Design which:
  1. has many resonances with my keydrivers for gloss.io - i.e. developing contextual language as a core part of the solution lifecycle, and
  2. captures many useful design principles in a way that I'm going to explore in the next pyglos release (blue-bottle)
I enclose a couple of examples, the first showing an Entity Factory Pattern, using an Interface that specifies the contract which each Entity Factory must fulfil and the key classes that are produced by those factories.



While the following UML Class diagram illustrates the relationship between gloss.io domains for content subscription - such that a dependent domain ( one that reuses content from another domain ) can be notified of changes to the source content.



Both these models form part of the design make-over that I'm busy with right now.

One more thing, I've just found the Google MyLibrary service and have started to capture my professional library - this is a lot richer and easier to manage than my old wiki version of the same. Great work Google!

Glossio preview release

The gloss.io web glossonomy service is now open for public preview. The application reveals some of the basic principles of the pyglos project - an environment to support the growth of open, community driven concept maps that can be harnessed for domain-specific needs including Glossaries, Thesaurii, Taxonomies and Topic or Concept Maps - see this earlier blog for more.

This first major demonstrates core features for the searching, browsing and visualisation of Concepts identified by Terms. Three taxonomies are loaded : SONZ, FONZ and etnography. In the next release will be member-managed content with many cross-domain, reuse and extension features.

Related resources for this work can be found here...
Cheers, Chris

February 23, 2009

Transitioning web application frameworks towards the Semantic Web (master thesis progress report)

I found the this thesis presentations perpective and the project/apps it covers to be quite informative and a useful checklist of some semweb apps to investigate futher. No mention of the OORT libraries I used in CVCore but there is of the Python RDFLib.

Note to self: I should revisit this (CVCore) work as it seems the approach I took could be more innovative than I've realised. Even though this presentation is 2yrs old :)

re New Zealand Internet Blackout - Creative Freedom

It's impossible to see how such a law can be enacted without misuse of abuse. Let the legal system work as designed - i.e evidence based and with fair & qualified judgement.

Join the New Zealand Internet Blackout to protest against the Guilt Upon Accusation law 'Section 92A' that calls for internet disconnection based on accusations of copyright infringement without a trial and without any evidence held up to court scrutiny. This is due to come into effect on February 28th unless immediate action is taken by the Government.



New Zealand's new Copyright Law presumes 'Guilt Upon Accusation' and will Cut Off Internet Connections without a trial. Join the black out protest against it!


If you think this sounds daft or unfair then click on the link below and sign the petition.


New Zealand's new Copyright Law presumes 'Guilt Upon Accusation' and will Cut Off Internet Connections without a trial. CreativeFreedom.org.nz is against this unjust law - help us



February 13, 2009

pygloss primer

I've been working pretty solidly on my pygloss project: a Python Glossonomy web application. So what's Glossonomy you ask? Well, it's something between Glossary - a list of terms and definitions, and Taxonomy - a controlled vocabulary with relationships between terms (like Narrower/Wider, Container/Part, Related etc. ). Also in this space are Ontologies, Topic Maps and Concept Maps. And since I don't want to be constrained by preconceptions I've coined a new word - Glossonomy!

Here are a couple of scenarios that might be familiar...
Two groups of people (communities, departments, agencies) are working in similar spaces and have similar interests. Now they need to collaborate, but they find they're using different terms for the same thing, or the same term meaning different things. It can take months to iron out assumptions and errors caused by simple misconceptions.
A business has invested in defining a formal vocabulary to support its' core processes, and this is published as MS Word document. Because it covers the whole business it's weighty and mind-numbingly boring. People don't really use it as intended.
The tools I mention above all try to address these issues, and so does pygloss, but with some Web 2.0 influences at work. This give use the following characteristics/goals:
  • 100% web application
  • Bundles related Terms and Concepts into Domains which have self-managing user Communities.
  • Encourages sharing Terms and Concepts across Domains - cross-pollination, reuse and enrichment.
  • Search and Visualisation tools to explore related concepts.
  • The URI is important - terms get enduring URLs so they can be referenced from other places reliably.
  • Support for semantic web standards - RDF, skos etc
Other extended capabilities could include
  • Glossary Extraction from parsed documents.
  • Term, Concept Extraction, based on submitted content (docs, web pages etc) using Natural Language techniques.
In future posts I'll cover the following:
  • some screen shots and previews of latest pygloss 0.2 featues and the data model.
  • relationships to wordnet and other taxonomy tools
  • Some 'under the hood stuff' - how it hangs together (expect some python, ajax, zodb, xapian learnings here).
  • how this project relates to my earlier cvcore work.
But I'll sign-off now with an appetizer - a some visualisations produced by pygloss 0.1...

Using the AT&T dot library, automated layouts delivered as SVG, PDF, PNG etc...


And from thejit - interactive visualisations, using client-side javascript...

A 'hypertree' layout on the central term 'COURSE' and others within a radius of 2 'hops'



And a radial graph layout, composed of all the terms from the domain IM.SDR...

About Me

Wellington, New Zealand
Software Architect / Developer with a keen interest in open data and applications of the Semantic Web.