Kennt jemand von Euch eine API um Daten aus der Wikipedia halbwegs brauchbar rauszuholen? Ich muß für meine Diplomarbeit die Geokoordinaten aus Wikipediaartikeln rausholen und täte mir es gerne sparen, manuell alles zu machen.
lg Bernhard
Kennt jemand von Euch eine API um Daten aus der Wikipedia halbwegs brauchbar rauszuholen? Ich muß für meine Diplomarbeit die Geokoordinaten aus Wikipediaartikeln rausholen und täte mir es gerne sparen, manuell alles zu machen.
lg Bernhard
Wikimedia stellt die Daten eh maschinenlesbar zur Verfuegung: http://download.wikimedia.org/ .
Wikimedia stellt die Daten eh maschinenlesbar zur Verfuegung: http://download.wikimedia.org/ .
Thx.
Nur wenn ich mir das so anschau, schauts aus, als könnte ich da nur die gesamte wikipedia in einer sprache runterladen? was ich brauch ist:
* Artikel in gegebener Sprache suchen
* Schauen ob Geokoordinaten dafür eingepflegt
* Wenn ja die Daten als Lat/Long bekommen.
Wenns sowas fertig als Open Source gäbe, wärs super.
Also genau genommen brauch ich sowas wie http://mapki.com/getLonLat.php nur halt per API
Du brauchst dir doch nur den Wikitext der Seite holen und dort drin nach dem Koordinaten-Template suchen...
Wenn du dir zB http://de.wikipedia.org/wiki/Stonehenge ansiehst, steht rechts oben
Koordinaten: [URL='http://tools.wikimedia.de/%7Emagnus/geo/geohack.php?language=de¶ms=51_10_44_N_1_49_35_W_type:landmark_region:GB']51° 10′ 44" n. Br., 1° 49′ 35" w. L.[/URL]
Im Wikitext entspricht das der Zeile
bissi was selbst programmiern würd auch nicht schaden für die diplomarbeit;)
In wiki gibts eh normen wie was geschrieben werden soll
Daher musst du dich einfach daran orientieren und aus der ganzen wiki seite einfach die geo daten rausfiltern.
Ich denk mal nicht dass dir das selbst programmieren nicht erspart bleibt.
Probier einfach mal den gesamten "wikitext" mit deinem programm in eine datei runterzuladen.
bissi was selbst programmiern würd auch nicht schaden für die diplomarbeit;)
Das ist auch nicht das Problem, etwas selbst zu programmieren Nur ist es halt leider so, daß eigener Code da sehr mühsam ist. Natürlich ist es kein Problem, eine Wikipediaseite per http downzuloaden, zu parsen und die Koordinaten rauszukletzeln. Sind ca 20 Zeilen Code.
Das Problem fängt aber mit Mehrsprachigkeit an... Im Deutschen muß ich die Edit Seite nach "Koordinate" suchen. In der Englischen nach "Coordiante" usw usf.
Zitat von Stefan Kögl
Du brauchst dir doch nur den Wikitext der Seite holen und dort drin nach dem Koordinaten-Template suchen...
Was wiederum für schreibgeschützte Artikel (siehe zum Beispiel Rom - nicht funktioniert.... http://de.wikipedia.org/w/index.php?title=Rom&action=edit
Ich such einfach eine generische Lösung, die mehrsprachenfähig ist.
Hier könntest du evtl noch ein paar Informationen herausbekommen: http://www.gossamer-threads.com/lists/wiki/wikitech/42192
das tut es doch schon fast:
#(c) 2008 Ben Ferrari
#license: http://www.gnu.org/licenses/gpl.html
require "open-uri"
results = {"de" => "Koordinate",
"en" => "coor",
"fr" => "Coord" }.
collect do |lang, term|
url = "http://#{lang}.wikipedia.org/w/index.php?title=#{ARGV.first}&action=edit"
open(url).read.scan(/\{\{#{term}.*\}\}/)
end.flatten
puts results
Alles anzeigen
Zum Beispiel:
ben@kafka: ruby fetchGeoFromWikipedia.rb Stonehenge
{{Coord|51.178889|-1.826389|type:landmark_region:FR|format=dms|display=title}}
{{Koordinate Artikel|51_10_44_N_1_49_35_W_type:landmark_region:GB|51° 10′ 44" n. Br., 1° 49′ 35" w. L.}}
{{coor title dms|51|10|44|N|1|49|34|W|region:GB-WIL_type:landmark_scale:2000}}
ben@kafka:
Jetzt noch fuer jede Sprache eine Regex zum hash dazu, um die Ergebniszeilen zu parsen. Das ganze gibst du dann z.b. als CSV aus, oeffnest das in einem Spreadsheet und fahrst nochmal mit dem Auge drueber.
Wenn Du ALLE geodaten aus der Wikipedia moechtest, dann wiederhole ich mich gerne: Saug die ein Dump in einem maschinenlesbaren Format, und schmeiss sie in ein RDBMS oder einen Suchindex wie Lucene/Solr. Dann kannst du da blitzschnell drinnen suchen bzw mit einem Script drueber fahren.
Praktisch gesehen geht damit natuerlich trotzdem irgendwie ein Arbeitstag drauf. Also ich versteht schon warum du dich nach einem fertigen Tool umschaust. Aber sieh es doch mal so: Wenn Du damit fertig bist, kannst Du ja eine Luecke fuellen und die API online stellen. Und vermutlich macht sich das in der Arbeit auch nicht schlecht.
Praktisch gesehen geht damit natuerlich trotzdem irgendwie ein Arbeitstag drauf. Also ich versteht schon warum du dich nach einem fertigen Tool umschaust.
Hey, Dein Code ist ein guter Ansatz, danke. Tool deshalb, weil ich flexibler sein will als hardcoded URL irgendwo reinzuschreiben.
Aber sieh es doch mal so: Wenn Du damit fertig bist, kannst Du ja eine Luecke fuellen und die API online stellen. Und vermutlich macht sich das in der Arbeit auch nicht schlecht.
Dafür, daß das mit der geographischen Suche nur ein kleiner Gimmick von der Software ist, hab ich mir das wesentlich einfacher vorgestellt. Eigentlich gehts ja um die Verarbeitung digitaler Photos nach geographischen Merkmalen.
Ich halt Euch auf jeden Fall am Laufenden!
Wikipedia hat auch eine API: http://en.wikipedia.org/w/api.php
Sowas gibt es als tolle App fürs iPhone: http://www.iphonefaq.org/archives/97405
Es ortet dich per Funkzelle / WiFi Netz und zeigt dir die Wikipedia Artikel bzw. Flickr Bilder in deiner Nähe an. Sehr nett gemacht.
Wikipedia hat auch eine API: http://en.wikipedia.org/w/api.php
thx.
Ich bin btw draufgekommen, wo ich die Probleme bei meinen Versuchen mit der WIkipedia mit wget hatte... hätte die URL mit dem "...&edit..." in der shell unter Anführungszeichen setzen sollen....
Sowas gibt es als tolle App fürs iPhone: http://www.iphonefaq.org/archives/97405
Es ortet dich per Funkzelle / WiFi Netz und zeigt dir die Wikipedia Artikel bzw. Flickr Bilder in deiner Nähe an. Sehr nett gemacht.
Hast Du eine Ahnung, WIE es das macht? Zumindest bei den WLans muß er ja irgendwo eine Liste der WLan und geographische Zuordnung haben. Und ihre Location Area IDs werden die Telkos ja auch nicht einfach so zur Verfügung stellen.
Das müsste die Google Maps API hergeben. Technisch basiert das wohl auf einer Datenbank mit Funkzellen, die je nach Aufenthaltsort den zu dir nächst gelegenden Mobilfunkmasten ausspuckt bzw. dich durch die Sendestärke und einer Art "Kreuzpeilung" (nenn es mal laienhaft so) im Aufenthaltsradius eingrenzt.
Bei WiFi Netzen gibt es auch eine ziemlich große Datenbank mit allen möglichen Hotspots (Freewave, Fon!, beim Wardriving eingetragenen Netzen, usw.) die dir in Zusammenhang mit der Mobilfunkortung recht gute Ergebnisse beschert.
http://www.google.com/mobile/gmm/index.html
http://www.skyhookwireless.com/
Das müsste die Google Maps API hergeben. Technisch basiert das wohl auf einer Datenbank mit Funkzellen, die je nach Aufenthaltsort den zu dir nächst gelegenden Mobilfunkmasten ausspuckt bzw. dich durch die Sendestärke und einer Art "Kreuzpeilung" (nenn es mal laienhaft so) im Aufenthaltsradius eingrenzt.
Und genau diese Datenbank ist ja das Problem. Weil die Telkos geben die Daten ziemlich sicher nicht freiwillig raus.
Außerdem kannst Du lediglich aus der Location Area in der Du bist sehr schwer errechnen, wo Du bist. Dazu brauchst Zugriff auf die Daten der BTSen in der Location Area um zu triangulieren.
IIRC gab's dazu auch eine österreichische (!) Judikatur, wonach die möglicherweise ausgelesenen Daten nicht so ohne weiteres verwendet werden dürfen, weil Eigentum der Telko.
Bei WiFi Netzen gibt es auch eine ziemlich große Datenbank mit allen möglichen Hotspots (Freewave, Fon!, beim Wardriving eingetragenen Netzen, usw.) die dir in Zusammenhang mit der Mobilfunkortung recht gute Ergebnisse beschert.
*G* Über die Eindeutigkeit der ESSID brauch ich hier zum Glück nicht philosophieren
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!