Archive for category Loose Integration

OpenSocial: scope of disruption

If you’re only looking at adoption by the players like MySpace, I think you’re missing the big picture.

Sure, buy-in by these sites is going to push adoption of the APIs, but for me the real value is that this extends social capabilities beyond the sphere of these "container" sites to the entire web. If you read the Google OpenSocial FAQs, nowhere do they say that its goal is to enhance sharing between portals. In fact, they explicitly say:

This is an effort which we hope will benefit the entire web community. [...] In the future, we are planning to open-source the components that are required to run OpenSocial on your own website.

The code hasn’t been released yet, but the docs make it clear that this vision has merit. OpenSocial uses gData, AtomPub, and a whole lot of REST goodness to allow any website to implement interactive social capabilities.

I see this taking off quickly in blogging (FriendBlogRoll,etc), but I also see huge potential for things like distributed social mapping. Take a look at what Google has done with its Put Yourself on the Map capabilities. That’s pretty cool on an individual mapping level, but imagine extending that out to community maps, implemented similar to the concept of “Groups” on Facebook. Encapsulate some GeoRSS in gData (via Sean) and how hard would it be to build an OpenSocial system where "friends" can all interact with the same map through their interface of choice? OpenSocial is already geo-aware to some extent; the People data includes a GeoRSS GML Point element to locate individuals!

OpenSocial has incredible value for traditional web sites as well. I’ve been considering several different applications for my hobby website (I built this Drink Recipes website in college, and it’s stuck with me since) such as "tell a friend", "friends favourite drinks", etc, etc. All of these could be built as plug-ins for OpenSocial-enabled sites (and of course as an additional plug-in for Facebook), but they can also be exposed on the main website, turning the whole web into one big social network.

One area that I don’t really understand is how OpenSocial deals with distributed authentication. It looks like you can either authenticate locally (through user/pass) or through Google Accounts using AuthSub. I don’t know a lot about this area, but I really think that this may need to be extended to authentication methods like OpenID.

-J

, , ,

3 Comments

Kilroy Was AtomPub

I was happy to hear Charile’s news of the first successful Geo Web Rest interoperability day. I had seen Christopher’s post about a GeoRSS/AtomPub demo over at MetaCarta Labs earlier, and just had to spend some time checking it out.

Being the cultured guy that I am, I chose to engage is some highly artistic feature editing in this demo:

Kilroy wuz here

The OpenLayers demo is highly responsive. The editing tools are intuitive, and even the node insertion feature is well implemented. What is most impressive though is what is going on in the background. Every time you insert/update a feature, an AtomPub operation is triggered. The data that is stored via these operations is (of course) also available as a GeoRSS feed, allowing you to view it in any RSS browser, or even in Google Maps:

Kilroy Was Also Hanging Out In Mountain View

If you look close, you will see that Kilroy’s nose’s shape changed between the two screen shots. In the two minutes it took me to get back to take a screenshot of my beautiful artwork in the original interface, some vandal had come by and given him a huge proboscis. :)

I did suffer from some disappointment in my experimentation, though not with this service. I tried to pull this feed through Yahoo Pipes and do something interesting with it, and belatedly remembered how poor their GeoRSS support is. If anyone from Yahoo is listening: please add support for full GeoRSS geometries. Points don’t cut it any more.

Anyway, in my opinion this represents the future of GIS interoperability. Look at how AtomPub ties in with some of the service chaining (featureserver/spatialreference/yahoopipes/fme) stuff I mentioned yesterday. As richer client tools such as Google Earth and other proprietary and open source desktop GIS begin to play ball, I believe that we will see a revolution in social mapping. Anyone not paying attention had better smarten up. It’s no longer about ignoring the elephant; now it’s about getting out from under the steamroller.

-J

No Comments

JSON and GeoJSON in FME

Many of you know about JSON, an object serialization scheme that has rapidly gained acceptance in AJAX-style applications. What you may not know is that there is an effort to standardise the representation of JSON-ified spatial features, known as GeoJSON.

FME is usually quick to support new formats (like KML and GeoRSS) but this time Safe has surpassed themselves, getting early JSON and GeoJSON support into their betas before the GeoJSON specification has reached a release version. Tonight I took some time out to play with this new support.

The basis of JSON support in FME is provided by two new read/write formats: JSON and GeoJSON. These new formats are augmented by two new transformers: JSONExploder and JSONExtractor. To get started, I’m going to show you how to extract data from a JSON source I happen to have lying around (it’s publicly available at Yahoo Pipes), which looks like this:

JSON Raw

When you first import this data source into FME, it is imported with the top level of attributes broken out. In this case, Pipes returns a top-level object with several attributes (link, description, etc) that you can see in my test workspace below:

JSON Workspace

Now, this isn’t much use, because my features are hidden inside the “items” attribute. In order to get them out, I first need to explode my single object into multiple features. The new JSONExploder transformer comes to the rescue here:

JSONExploder

Now, I have a unique feature for each of my feed items, but I really want some of the nested attributes. In particular, I want the description from the root of the item, and the nested y:location["lat"] and y:location["lon"] attributes. The JSONExtractor makes it easy to pull these out into new attributes:

JSONExtractor

And once adding a couple more of these, each of my features has some nice attributes attached to it, which I could then turn into points if I wanted:

JSON Attributes

OK, so that’s kinda cool from a straight ETL standpoint. I can take in JSON, mess with it, and then pump it out into whatever format I want. But the fun stuff is when you start getting into GeoJSON. Fortunately there are a couple early adopters, Christopher Schmidt and Howard Butler, who gave me some feeds to play around with. The first of these comes from Christopher’s super-flexible FeatureServer application (check it out, it’s open source):

FeatureServer Demo in OpenLayers

The features displayed on this OpenLayers map can be easily downloaded from FeatureServer in GeoJSON format (or KML, or GeoRSS, or whatever). The URL for the GeoJSON representation is:

http://featureserver.org/featureserver.cgi/scribble?format=geojson

Pulling this into FME is as simple as creating a new FME data source, and specifying the URL:

Add GeoJSON

As you can see, you can then treat this data like any other spatial data source:

GeoJSON Visualizer

Now, for a final example… Howard has a GeoJSON resource collection of counties in Iowa, accessible in a pattern something like this:

http://geoservices.hobu.biz/political/json/johnson

Now we could take this feature, in its source projection of UTM Zone 15N NAD83, but Howard’s put together a really nifty (non-commercial use only, unless you want to pay Howard some $$$) JSON-based web processing projection service. Not only that, but he’s also made it smart enough to interpret projections referenced locally, but also from the oh-so-cool (and built as a collaborative effort between Christopher and Howard) SpatialReference.org. So, all you need to do is feed it the URL of your source data, the url of your source CRS (http://spatialreference.org/ref/epsg/26915/) and the url of your destination CRS (http://spatialreference.org/ref/epsg/4326/). Like so:

http://geoservices.hobu.biz/project/?url=%22http://geoservices.hobu.biz/political/json/johnson%22&inref=http://spatialreference.org/ref/epsg/26915/proj4/&outref=http://spatialreference.org/ref/epsg/4326/proj4/

And, as just another link in the dynamic web chain, FME can read this transformed JSON feature:

HoBu GeoJSON Example

Now, for desktop FME users, this gives us “Pipes on Steroids”: all the mashup flexibility of Yahoo Pipes, with the huge format support and rich processing model of FME. As cool as this is, I think the real power will be seen whenever Safe integrates this functionality into their Server product. It will allow them to play well on both the “enterprise” traditional GML/WFS/etc level and on the neogeography JSON/GeoRSS/KML mashup level with a single product from a single (or multiple if you want) data source. For organisations that want turn-key interoperability solutions, FME Server is going to rock your world.

-J

P.S. I’m thinking about getting a personalized plate that says GEO JSN :)

No Comments

… it’s off to GeoTec I go

GeoTec Event is a relatively large geospatial conference held in Canada. The show is fortunate to have a couple geobloggers attending: Ed Parsons is doing the opening keynote and Peter Batty (along with Ed and a couple other luminaries) is going to be on the opening panel. Hope I get a chance to talk with them. If any other geobloggers (even low-output ones like me) are going to be there, drop me a line…

Traditionally, GeoTec has alternated between BC and Ontario, but this year the western show is stopping in Calgary and co-locating with GeoAlberta. It’s not as technical as the vendor shows or events like Where 2.0, but it’s a great chance for traditional GIS folks to connect and learn from others.

This year I’m going to be part of two presentations.

The first is an “Introduction to Open Source” full day lab, where I’ll be working with Bob Bray from Autodesk, Paul Spencer from DM Solutions, and Samuel Smith from Refractions Research to introduce users to one of many potential open source software stacks. In this case: PostGIS, uDig, MapGuide Open Source, and DM Solutions’ Fusion (not yet released).

The second is an integrated case study entitled “City of Nanaimo Chooses Open Source Geospatial and Finds Success,” which is pretty long-winded, but sounded good at the time. Again, working with Samuel Smith and Paul Spencer, we’ll show how the City of Nanaimo is making use of open source tools (PostGIS, FDO, MapGuide Open Source, and Fusion) to deliver user-friendly services to our staff and residents. This will show integration points between traditional proprietary tools and the open source tools that we have implemented where it makes sense. Because most of the audience will probably not be familiar with open source geospatial, we’ll also be doing an introduction to OSGeo and the tools that the City of Nanaimo is using.

As much work as I put into getting ready for these conferences, I always find myself getting my slides finished off the weekend before, so it’s time to stop procrastinating and get back to work :)

-J

1 Comment

Pipes gets Spatial! (sort of)

Several suggestions have been posted to the Yahoo Pipes team — anonymously :) — about how they might enhance their spatial support, and it appears that they are listening. Today, they posted two interesting announcements:

  • Spatially-enabled feeds are previewed in Yahoo Maps
  • KML output is supported

I’m really impressed with these advancements but a good blogger always finds something to complain about. ;)

I did a few tests and, while their spatial support appears to have become a bit smarter, it still has a long way to go. Click on any of the images below to go to the source…

The first test I did tests whether a simple points-based GeoRSS feed will automatically show up as location-enabled:

GeoRSS Test at Yahoo Pipes

No dice; it isn’t that intuitive :(

The second test added a LocationExtracter into the stream:

GeoRSS Test B At Yahoo Pipes

Yes! It works! And… in Google Earth ™ too:

Pipes KML Test

OK, so giddy with my success, I decided to test a somewhat more complicated GeoRSS feed with polygons:

GeoRSS Test C At Yahoo Pipes

So much for enthusiasm. Not even centroids…

Oh well, I guess if there wasn’t anything left to work on it would be out of beta.

I have to say that the editing experience in Pipes has improved greatly since the last time I played with it a few weeks back. Smoother with far fewer glitches. Great job on the interface…

… but I still always pick the wrong end of a pipe to move.

-J

No Comments