> Great Job Hernan & Alex ! > > When I try the following script, I don't get the same result than you. > I'm using the last Pharo 3.0 image.
I had to slightly modify MapBuilder. Simply update Roassal2 and it should work. Cheers, Alexandre > > > > <Screen Shot 2014-03-03 at 14.25.38.png> > > > On Mon, Mar 3, 2014 at 2:14 PM, Alexandre Bergel <[email protected]> > wrote: > Excellent Hernán! > > There are more Universities and Colleges in France than in Spain or Italy. > > <Screen Shot 2014-03-03 at 10.14.03 AM.png> > > -=-=-=-=-=-=-=-=-=-= > | map locations rawData rawData2 rawData3 | > map := RTMapBuilder new. > > map countries: #('France' 'Spain' 'Italy'). > map color: Color veryVeryLightGray. > > rawData := DBPediaSearch universitiesIn: 'France'. > > rawData2 := ((NeoJSONReader fromString: rawData) at: #results) at: #bindings. > rawData3 := rawData2 select: [ :d | d keys includesAll: #('label' 'long' > 'lat') ] thenCollect: [ :d | { (Float readFrom: ((d at: 'long') at: 'value')) > . (Float readFrom: ((d at: 'lat') at: 'value')) . (d at: 'label' ) at: > 'value' } ]. > locations := rawData3. > locations do: [ :array | > map cities addCityNamed: array third location: array second @ array > first ]. > map cities shape size: 8; color: (Color blue alpha: 0.03). > map cities: (locations collect: #third). > > > > rawData := DBPediaSearch universitiesIn: 'Italy'. > > rawData2 := ((NeoJSONReader fromString: rawData) at: #results) at: #bindings. > rawData3 := rawData2 select: [ :d | d keys includesAll: #('label' 'long' > 'lat') ] thenCollect: [ :d | { (Float readFrom: ((d at: 'long') at: 'value')) > . (Float readFrom: ((d at: 'lat') at: 'value')) . (d at: 'label' ) at: > 'value' } ]. > locations := rawData3. > locations do: [ :array | > map cities addCityNamed: array third location: array second @ array > first ]. > map cities shape size: 8; color: (Color blue alpha: 0.03). > map cities: (locations collect: #third). > > rawData := DBPediaSearch universitiesIn: 'Spain'. > > rawData2 := ((NeoJSONReader fromString: rawData) at: #results) at: #bindings. > rawData3 := rawData2 select: [ :d | d keys includesAll: #('label' 'long' > 'lat') ] thenCollect: [ :d | { (Float readFrom: ((d at: 'long') at: 'value')) > . (Float readFrom: ((d at: 'lat') at: 'value')) . (d at: 'label' ) at: > 'value' } ]. > locations := rawData3. > locations do: [ :array | > map cities addCityNamed: array third location: array second @ array > first ]. > map cities shape size: 8; color: (Color blue alpha: 0.03). > map cities: (locations collect: #third). > > > map scale: 5. > > map render. > map view openInWindowSized: 1000 @ 500. > -=-=-=-=-=-=-=-=-=-= > > On Mar 3, 2014, at 2:43 AM, Hernán Morales Durand <[email protected]> > wrote: > >> >> >> >> 2014-03-02 21:22 GMT-03:00 Alexandre Bergel <[email protected]>: >> I’ve just tried and it works pretty well! Impressive! >> >> Below I describe a small example that fetches some data about the US >> Universities from DBPedia and visualize them using Roassal2. >> >> Pick a fresh 3.0 image. >> >> First, you need to load Hernán work, Sven’s NeoJSON, and Roassal 2 (If you >> are using a Moose Image, there is no need to load Roassal2 since it is >> already in): >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= >> Gofer it >> smalltalkhubUser: 'SvenVanCaekenberghe' project: 'Neo'; >> package: 'ConfigurationOfNeoJSON'; >> load. >> ((Smalltalk at: #ConfigurationOfNeoJSON) load). >> >> Gofer it >> smalltalkhubUser: 'hernan' project: 'DBPedia'; >> package: 'DBPedia'; >> load. >> >> Gofer it >> smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; >> package: 'ConfigurationOfRoassal2'; >> load. >> ((Smalltalk at: #ConfigurationOfRoassal2) loadBleedingEdge). >> >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= >> >> Using Roassal2, I was able to render some data extracted from dbpedia: >> >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= >> | map locations rawData rawData2 rawData3 | >> map := RTMapBuilder new. >> >> map countries: #('UnitedStates' 'Canada' 'Mexico'). >> map color: Color veryVeryLightGray. >> >> rawData := DBPediaSearch universitiesInUS. >> rawData2 := ((NeoJSONReader fromString: rawData) at: #results) at: #bindings. >> rawData3 := rawData2 select: [ :d | d keys includesAll: #('label' 'long' >> 'lat') ] thenCollect: [ :d | { (Float readFrom: ((d at: 'long') at: >> 'value')) . (Float readFrom: ((d at: 'lat') at: 'value')) . (d at: 'label' ) >> at: 'value' } ]. >> >> >> locations := rawData3. >> locations do: [ :array | >> map cities addCityNamed: array third location: array second @ array >> first ]. >> map cities shape size: 8; color: (Color blue alpha: 0.03). >> map cities: (locations collect: #third). >> >> map scale: 2. >> >> map render. >> map view openInWindowSized: 1000 @ 500. >> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-= >> >> This is what you get: >> >> <Screen Shot 2014-03-02 at 9.09.57 PM.png> >> >> This is a small example. Naturally, adding popup for locations is trivial to >> add. >> >> I have described this on our Facebook page: >> https://www.facebook.com/ObjectProfile/photos/a.341189379300999.82969.340543479365589/596623173757617/?type=1&theater >> >> >> Super cool!! Thanks for sharing the nice mapping. >> >> Hernán, since SPARQL is a bit obscure, >> >> Absolutely, SPARQL is like the Assembler of the web. >> >> it would be great if you could add some more example, and also, how to >> parametrize the examples. For example, now we can get data for the US, how >> to modify your example to get them for France or Chile? >> >> >> Ok, uploaded an updated version. I have parametrized the query triplets as >> #universitiesIn: englishCountryName, >> >> DBPediaSearch universitiesIn: 'France'. >> DBPediaSearch universitiesIn: 'Chile'. >> >> I have to admit I am still learning SPARQL, but the more queries I execute, >> the more I discover linked data structure, so I will add convenience methods >> for easy parsing results. >> >> Cheers, >> >> Hernán >> >> >> >> _______________________________________________ >> Moose-dev mailing list >> [email protected] >> https://www.iam.unibe.ch/mailman/listinfo/moose-dev > > -- > _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: > Alexandre Bergel http://www.bergel.eu > ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. > > > > > > > -- > Serge Stinckwich > UCBN & UMI UMMISCO 209 (IRD/UPMC) > Every DSL ends up being Smalltalk > http://www.doesnotunderstand.org/ -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
