Dienstag, 2. Juli 2013

Pelagios Co-Occurrence Graph

Wow - only 1 year and 11 months since my last blog post! Ok, it's been a while. Thought I'd try to get back in the habit, with the occasional snippet from or around my current project work. As usual, involving maps, graphs, and various things zoomable.

The image below is a visualization of the global network of related places in the Pelagios project. Places are "related" in Pelagios if they appear alongside each other in the same dataset (co-occurrence). The graph shown in the visualization uses the 10 most strongly related neighbours of each place and represents them as a graph, with each place shown as a node, and each neighbourhood relationship as an edge.

Right now, the main purpose of this is really just to try out and brainstorm some ideas for the upcoming third phase of the Pelagios project. And also to test-drive Scala Force Layout, my force-directed graph layout engine (written in Scala). The graph has 4.756 nodes and 14.264 edges, and my notebook crunched through 1000 layout iterations in roughly 37 seconds.

Freitag, 5. August 2011

The PELAGIOS Graph Explorer: A First Look

This is just a quick cross-post to link to the blog of one of my current projects, PELAGIOS. Over the past weeks I've done some visualization work for this project, and just posted about it here.

Sonntag, 1. Mai 2011

The World is Flat

And 65.572.864 x 65.572.864 pixels in size. Or at least that's what the dimensions of the OpenStreetMap Mapnik base layer are, according to the OSM Wiki! Attaching a custom (i.e. non-Deep Zoom) tile source to Seadragon AJAX is really straightforward. To try this out, I added a simple OpenStreetMap Mapnik tile source implementation to my No.5 Seajax Utilities library. Demo embedded below, code on github as usual.

As a little more complex exercise, I've also added a tilesource implementation for the Tile Map Service (TMS) spec. TMS is also one of OpenLayers' supported formats, and you can generate TMS tilesets with tools such as MapTiler or (our own) MagickTiler.

Unfortunately, TMS has a little 'structural incompatiblity' with the Deep Zoom format, which will let TMS images appear slightly shifted to the lower left in Seajax. Eventually, I'd also like to add a Zoomify tilesource implementation (if there's ever the time to do it - the Math is slightly more complex there...). Zoomify wouldn't have this particular issue.

One issue that would remain, however, is the rather unattractive lines that show along the tile boundaries as the image zooms. (You can see it in the OSM demo above as well.) It's an issue the Seajax viewer generally has with any tile format that doesn't have overlapping tiles (that is to say ANY format except Deep Zoom...). And I'd really love to see it fixed. The Flash-based OpenZoom viewer doesn't have the same issue. So technically, I assume, there would be a way around. But right now it's probably wishful thinking, as official (open source) development on Seajax seems to be on hold. Hoping for the best that some's going to pick up on development! But at least there's some activity in that direction...

Montag, 25. April 2011

Raphael Vector Overlays for Seadragon AJAX

In the YUMA Map Annotation Tool, we're using OpenLayers as our display frontend for viewing high-resolution zoomable images. For a while, I've been playing around with the Seadragon AJAX viewer (aka Seajax), as a possible future alternative.

One 'issue' with OpenLayers in our case is that it's a full-fledge Web GIS environment. Using it as an image viewer is really a bit of a mis-use; and since we've never gotten around to creating an optimized OpenLayers build for our purposes, it also means the YUMA Map Annotation Tool comes with an estimated 500kBytes of JavaScript code that's never used.

Seajax, on the other hand, is less than 50kBytes in size. It's superior in terms of eye candy - with smooth, stepless zooming and a neat inertia effect when panning - and it (optionally) works in conjunction with Microsoft's zoom.it image hosting service. The Seajax API also supports 'map marker'-style icon overlays and rectangle overlays that can be styled via CSS.

The one thing that has been sadly missing from Seajax, however, was free-form vector overlays. I've been doing work with the Raphael vector drawing & animation library previously. Since I thought Raphael would make an excellent complement to Seajax, I thought I'd give it a try and see if they can be combined.

Turns out: they can! With a little tinkering, it's possible to attach Raphael drawing canvases to the Seajax viewer, and scale them smoothly as the viewer zooms.

I started to wrap my experiments into a little utility library. Not quite ready for prime time just yet, but usable enough in case you want to give it a try. Code and instructions are on github; an online demo (which I'll keep updating) is embedded above.

Freitag, 1. April 2011

New YUMA Map Annotation Screencasts

I recorded a couple of short screencasts in prepration for the ICA Workshop on Digital Technologies in Cartographic Heritage next week in The Hague. They're up on vimeo and embedded below.

Screencast no. 1 shows how to geo-reference a map in YUMA by adding four or more control points.

Screencast no. 2 shows how you can create annotations on a (geo-referenced) map, and use our 'Context Tag Cloud' (powered by Geonames and DBpedia Spotlight) to add semantic tags to your annotation.

Screencast no. 3 shows how the context information contained in the Semantic Tags helps to automagically enable multi-language and synonym search.

The videos are meant to accompany my talk at the workshop. I guess without anyone explaning what's going on, their informative value is somewhat limited. (I promise... we'll make a screencast with an audio track. One day ;-)

In the mean time, you might also want to check out the guided video tour of YUMA Map features that Bernhard prepared for the OAC Workshop on Using the OAC Data Model for Shareable Annotations in Chicago last week (but which was too long for my talk slot in The Hague d'oh!)

UPDATE: the slides from my CartoHeritage presentation are on Slideshare!

Mittwoch, 16. Februar 2011

YUMA Annotation Suite Update

It's been a while since my last post on YUMA. For those not in the know: YUMA is our prototype annotation framework for online media. It's conceptual roots date back to the BRICKS and TELplus projects; and we're now developing it further as part of the EuropeanaConnect project. Over the last months, YUMA has received a considerable overhaul, so I thought I'd take the time and summarize some of the things that have been going on.


The old YUMA used to work with RDF/XML throughout. Since RDF/XML is quite a verbose format, internal communication became somewhat slow for objects with lots of annotations. With the current update, YUMA now speaks JSON for all internal data communication (yeah I know, how boring). The revised API still delivers RDF, of course, but in more flavours (XML, N3, Turtle); and a few additional tricks are planned for the near future!


I introduced various CSS tweaks and beautification measures to nice-up the user interface. It's still not exactly an intuitive UI though, and nothing changed about the base layout, but hey - we're still in the 'tech demo' stage after all!


One of the central ideas behind YUMA was always that users should be able to augment their annotations with structured semantics without effort. The new update brings (1) a demo for tagging based on a structured vocabulary with auto-suggestion text entry and a tree-view tag browser. It's currently based on only a single SKOS file from the DISMARC project, unfortunately, and should be considered very beta. (2) Dynamic tag suggestions from our controversial (yet highly eye-candy-ish) context tag cloud, based on the automatic text annotation feature of DBpedia Spotlight.

More Talkative

The new server infrastructure now provides a range of RSS feed options. It's possible to subscribe to the public annotation activity on a particular object, by a particular user, or follow the (public) replies on any annotation. In addition, there's a basic search interface, the public timeline, an OpenSearch API that is...well.. half done, and the early beginnings of generally-understandable documentation, including a sign of good will that we are happy to give support to those who are daring enought to test drive YUMA!

Visit our YUMA online showcase or play around with a sample image here.

Donnerstag, 27. Januar 2011

Spain and Portugal, 1865

And another map salvaged from the 1865 edition of E. von Sydow's school atlas found at Grandma's house. (Another one is here.) This one has a total resolution 20.007 x 17.225 pixel (that's a whopping 344 Megapixel for all you digital photographers out there) and is embedded as a zoomable Web image below in full glory.

This time I also added a link to open the map in our YUMA Map Annotation Tool. So if you feel like adding a note to this map - and are adventurous enough to test drive a VERY beta (but fabulous) tool coming fresh out of the research lab, with absolutely no documentation whatsoever (well... there is some here) - give it at try! (And let me know!)