Thursday, November 8, 2007

Tech Stack for CI (Revised)

In doing further research on available technology options for the visual learning in time and space application at CTLT, I have been considering a move away from Python and Django. Though I love the ease of working with these tools, I'm very interested in using flex to provide the UI and display of learning data.

So it seems that Flex provides an open SDK for PHP developers and not Python. Though a django developer has submitted a bridge for working with Flex, it still seems immature and I need to learn this fast rather than fighting with a system still in development.

With that said, I'm thinking PHP5 + Propel ORM + Flex, and since I will be using PHP I can't help but write a bridge to Drupal. Of course the application will need to integrate nicely with SharePoint as this is going to be the primary test case for using this custom app. However, I'm not using .NET and I'm not willing to write a custom web-part for this as the application must be available to CMS apps outside of the SharePoint MS paradigm.

So it will live as a standalone application in which others can build modules to extend and integrate into their own learning platforms. Plus, this way the application can be utilized for linking into the L.V. Patterns.

Generating Tag Fields for Individual Patterns: Networking our Patterns

After my evening walk of contemplation I began considering more deeply the idea of tags and providing more powerful ways to express interconnected meta-data as related to the Liberating Voices patterns.

Currently, the L.V. system uses a sort of quasi-tagging approach that defines categories and topics. For the most part these “tags” serve their proposed purpose. However, from my perspective it seems that the lack of dynamic capabilities minimizes the potential for filtering and organizing patterns. Instead, perhaps we should be thinking about ways to enable dynamic tagging where users can generate a folksonomy surrounding patterns.

This doesn’t mean we should get rid of what is already there, but rather we should extend the functionality of the system. It seems that the current terms being used are very high-level and generic. By keeping these more generic terms we can perhaps help frame the types of more user specific tags.

However, rather than merely providing a pathway to develop a folksonomy for the patterns, we must remember patterns exist in an often different way than a lot of content. For instance, patterns are keys or building blocks that exist with a multi-dimensional structure. In this way patterns possess relationships along a vertical as well as horizontal axis.

With this in mind perhaps we would instead want to start defining the levels of abstraction that patterns have by numerically describing the various levels. In this way a cluster of patterns would exist at a certain level. Now, L.V. has already categorized or clustered patterns but I do not think this is an explicit field in the database model. I think we need to add it!

To make this usable from a users standpoint, maybe a radio button describing the levels/categories and then some ajax call to the database would pull up all the tags related to a certain level, perhaps you could then define your own tag for the level within the hierarchy. Maybe we want to be able to annotate our tags and discuss the reasoning behind the categorization of the data in such a way. This annotation could in a sense point to related cases where the pattern was used and likewise show the relevance of the tag.

Why is this important to me? Well, because I am in the process of developing a listing of patterns related to my work, but that correlate directly to a previous post. I'm right now looking at education patterns as related to increasing information literacy and knowledge for natural resource management. An alternative and more tag friendly environment as well as way to search and filter through these tags would be great.

Fortunately, we have something like this in its infancy, but I think it will become a priority of mine in the near future as I attempt to build systems and processes to construct pattern languages based upon the L.V. repository.

Wow, I’m not sure if that made any sense, so I think it is worth a use case/interaction diagram at least.

Monday, November 5, 2007

Talk about outrage!

Read this: Asbestos is Not Banned in North America.

Using SharePoint Web Services

In furthering the conceptualization of this Visual Learning application, I was first struck by the possible approaches to querying the needed data. While I am predominately visual and think in terms of how things might look when complete, I recognize that getting data out of SharePoint might be a bit more difficult task than in some other cases.

However, there is much discussion on the use of SharePoint's web services. Some focus specifically on aggregating content from other places to create mash-ups, while others do note the possible importance of getting data out of SharePoint.

So over the next couple of days I'm going to be looking into the process of accessing the SharePoint web services feature and see how well it works. To do this I think I'm going to attempt a script using the python and ZSI library, or PHP and the nuSOAP model.

Either way, it is my hope that the technology will stand alone, outside of SharePoint and yet still be able to work well with the various MySites WSU has. If it works with the MySites then I don't see why it wouldn't work with plone or drupal. One thing that might be an issue is the need to allow for an XML-RPC approach as both Plone and Drupal utilize rpc.

However, more in connection with patterns is the need of this application to be able query the Liberating Voices! patterns. If I can get the query and parsing bit of the application then Yishay maybe able to extend his Mind mapping application to enable through the web mapping. Both pieces together could prove to be a very cool and very powerful solution for visual knowledge representation.

CTLT: Visual Representation of e-Learning

Following a meeting last week it became obviously clear that a few of us at CTLT are very interested in supporting an application that allows users to visually represent learning and information in a more interesting, and perhaps useful way. This is as opposed to the generic lists and document libraries currently available in SharePoint.

The idea behind the application is the construction of multi-faceted views that could produce visually connected components of information associated with a students learning process and outcomes. For instance, we might want to showcase the transition in associated assumptions over a period of time as linked to a primary goal or concern represented by the student at the outset of their recorded learning process. The point behind this part of the application would therefore be driven to represent this data in a time-line format, perhaps centering around the core value of the student.

Another possible outcome of the application would be to produce a cognitive map representing the various pieces of interconnected data relevant to the student’s project. This could be accomplished through identifying the connections between user-defined tags and the associations these tags imply to student information. Again, the output could be a visual concept or mind-map as defined by the student. If using a concept map, perhaps the student would need to be able to amend the visual map in order to add explicit semantic relationships between the various components.

Overall, the project is very intriguing as it has the potential for usage outside of the SharePoint application framework. However, more directly it is something that could represent a very novel approach to representing the types of trans-disciplinary and longitudinal learning that CTLT is trying to capture and promote. It also has direct relevance to some of my work with patterns as the application could serve as a foundation for usage with the visual representation of patterns and for the construction of semantic pattern maps.

Sunday, November 4, 2007

Evaluating Technologies for CI Research Project

As you might all know I'm particularly fascinated with 3 core open source projects at the moment. These of course being Plone, Drupal and Django. Plone and Drupal are interesting CMS applications which attempt to be usable systems for developing much more complex and customized software solutions. On the other hand, Django is a rapid development framework that could allow for the development of a Plone or Drupal type application. I think all have a very useful place, particularly within the non-profit software development field.

I have issues with each though and in some sense these issues might be ridiculous, but they are my reasons and I have never been accused of being practical.

The first issue though is practical and that is the hosting cost associated with Plone. Though Plone might be the most feature rich platform (not to mention I know it the best), with its stable integration of GIS through the web apps, it is cost prohibitive for most of the groups I'm currently working with. This is very annoying, but that is life.

The issue I have with Drupal is its use of PHP and its non-object oriented approach to using PHP. Yes, for some this is a stupid reason not to adopt a particular solution. After all, I predominately work with PHP. Not to mention, Drupal is full featured and growing rapidly as more users adopt and build custom modules, extending its capabilities. It is also a cheap solution.

Yet, I like Python, its cleanliness, readability and development speed. As a result, Django provides a very enticing opportunity, to build robust apps with Python. Django is also cheap to host. However, despite the useful helpers such as the Django admin, nice permission system and so on, it lacks a lot of the components already available to Drupal and Plone developers. This means that I would have to implement the various components myself or find like minded people interested in collaborating to reduce development time.

Yet, despite this very obvious problem, I find the lack of a django based application to fit my needs to be very irritating as this is perhaps the most powerful Python web framework I have come across (save for Pylons, but crappy documentation makes for crappy adoption). This almost seems to be a calling of sorts. There needs to be a powerful django app similar to drupal for us pythonistas. Yes, there is PyLucid, but the documentation is not very good and the level of deviation from the core django framework just seems unnecessary to me. There is already so much Django offers that it just seems to be a waste of time.

Now, I haven't completely sold myself on using Django, but I'm using it to write a custom shell of a CMS for JESA, currently the site I built is just static HTML, but as the requirements for this site expand dramatically (as I thought they would) they are in desperate need of an easy to use web app that allows them to extend the site and add content with ease.

This is all volunteer work, but there are some things to be said about doing volunteer work versus contract work. I have been given free reign to build the site and to use whatever technology I want provided the site is secure, easy to use, etc.

So a great opportunity to use django. I think after this I will be better able to gauge whether I want to invest the time to build a base CMS for my research or if Drupal will just have to cut it. We'll see.

Friday, November 2, 2007

Constructing a Pattern Language for Community Centered Information Systems

Returning back to the original focus of this blog I have begun to start thinking of the patterns that might be useful in constructing effective communication systems for natural resource management. The key here is not only providing the environmental information necessary for successful planning, but these systems are centered upon the human element, a central piece of systems design that can be overlooked or in many cases still under-appreciated.

Now, I can think of some pieces that might be useful for environmental monitoring of sustainability focused development such as, web-based GIS, systems modeling applications, weather and climate charts/graphs and maps. However, beyond the modeling and mapping applications that could be integrated, what other elements might we consider in constructing effective information systems?

The L.V. project presents a number of useful pointers that could be utilized for constructing these systems. Some of these patterns have already been mentioned, but I think it might be more useful to define the domains of interaction that could be taking place within the context of designing such systems. As a start this might be more effective than merely listing relevant patterns. Instead if we understand the meta-patterns at play then perhaps we can be more effective in understanding how our list of patterns integrates with one another.


(Source: Schuler, D. (1996). “New Community Networks: Wired for Change.”)

While this interconnected diagram presents some useful things to think about when considering how systems might need to enable community development, I think that environment must be added. With the Environment added to this diagram, I think it is possible to get a clearer picture of what we would hope for in a thriving, sustainable community.

The next step is to identify the patterns that fit under these larger headings. Once we have defined the patterns in relation to the larger elements at play then perhaps we can begin thinking about the systems and technologies that might be supportive of people’s movement in actualizing these fundamental elements.


Now, these patterns seems to address a number of technical as well as human-ceneterd patterns. However, the pattern langauge we see emerging remains at a fairly high-level and there needs to be an extension of these patterns or pattern lanaguage to include the lower-level or more specific patterns related to systems design.

In the next few posts we will explore these patterns as possible contributions to the construction of a gerneal P.L. for community centered environmental informatics.