Frage

Wikipedia Geotagging a Los von < a href = "http://en.wikipedia.org/wiki/Kent%27s_Cavern" rel = "nofollow noreferrer"> sein Artikel . (Suchen Sie in der rechten oberen Ecke der Seite.)

Gibt es eine API für die Abfrage alle mit Geotags Seiten innerhalb eines bestimmten Radius von a geographische Position?

Update

Okay, also basierend auf lost-Theorie Antwort habe ich versucht, diese (auf DBpedia Abfrage explorer ):

PREFIX geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>
SELECT ?subject ?label ?lat ?long WHERE {
    ?subject geo:lat ?lat.
    ?subject geo:long ?long.
    ?subject rdfs:label ?label.
    FILTER(xsd:float(?lat) - 57.03185 <= 0.05 && 57.03185 - xsd:float(?lat) <= 0.05
        && xsd:float(?long) - 9.94513 <= 0.05 && 9.94513 - xsd:float(?long) <= 0.05
        && lang(?label) = "en"
    ).
} LIMIT 20

Das ist ganz in der Nähe, was ich will, es sei denn es Ergebnisse innerhalb eines ( lokalen zurück um den Punkt) im Quadrat und keinen Kreis. Ich würde auch, wenn die Ergebnisse mag, wo auf dem Abstand von dem Punkt sortierten basiert. (Wenn möglich).

Update 2

Ich versuche, die euklidische Distanz als eine Annäherung der wahren Entfernung zu bestimmen, aber Ich habe Probleme, eine Zahl in SPARQL auf quadriert. ( Frage hier geöffnet.) Wenn ich etwas Nützliches erhalten werde ich aktualisieren die Frage, aber in der Zwischenzeit werde ich Vorschläge für alternative Ansätze zu schätzen wissen.

Update 3

Eine letzte Update. Ich habe über die Verwendung SPARQL durch DBpedia auf. Ich habe einen einfachen Parser geschrieben, die den Wikipedia-Artikel Text nächtlichen Datenbank-Dump holt und analysiert alle Artikel für Geocodes. Es funktioniert recht gut und es erlaubt mir Informationen über Geo-Tags Artikel zu speichern, aber ich will.

Dies ist wahrscheinlich die Lösung, die ich verwendet wird weitergehen, und wenn ich um eine schöne Oberfläche, um es zu schaffen, halte ich könnte öffentlichen API-Zugang und / oder Veröffentlichung die Quelle an den Parser erlaubt.

War es hilfreich?

Lösung

Der Openlink Virtuoso-Server vom dbpedia Endpunkt verwendet wird, hat mehrere Abfragefunktionen. Ich fand die Informationen auf http://docs.openlinksw.com/virtuoso/rdfsparqlgeospat.html nützlich für ein ähnliches Problem.

ich mit einer Abfrage wie diese am Ende:

SELECT ?page ?lat ?long (bif:st_distance(?geo, bif:st_point(15.560278, 58.394167)))
WHERE{
    ?m foaf:page ?page.
    ?m geo:geometry ?geo.
    ?m geo:lat ?lat.
    ?m geo:long ?long.
    FILTER (bif:st_intersects (?geo, bif:st_point(15.560278, 58.394167), 30))
}
ORDER BY ASC 4 LIMIT 15

In diesem Beispiel wird die mit Geotags Standorten innerhalb von 30 km von der Ursprungsposition.

Andere Tipps

Es sollte möglich sein, für geografische Breite / Länge abfragen mit SPARQL und dbpedia . Ein Beispiel (von hier ):

SELECT distinct ?s ?la ?lo ?name ?country WHERE {
?s dbpedia2:latitude ?la .
?s dbpedia2:longitude ?lo .
?s dbpedia2:officialName ?name .
?s dbpedia2:country ?country .
filter (
  regex(?country, 'England|Scotland|Wales|Ireland')
  and regex(?name, '^[Aa]')
)
}

Sie können eigene Abfragen hier laufen.

Es gibt ein paar Tools auf Werkzeuge und Anwendungen auf Basis von Koordinaten von Wikipedia . Ich bin mir nicht sicher, ob es ist, was Sie suchen, aber die Geosearch.py Werkzeug sieht ziemlich cool aus.

Nicht eine API, aber Sie können auch diese schöne Menge aller Geo-Tags wikipedia Artikel herunterladen und direkt in einer lokalen Datenbank abfragen: http://www.google.com/fusiontables/DataSource?dsrcid=423292

Die kostenlos GeoNames.org FindNearbyWikipedia Service Koordinaten versehenen Artikel für eine Postleitzahl oder gibt Koordinaten abrufen kann (Breitengrad, Längengrad)

Es bietet 30.000 Credits tägliches Limit pro Anwendung (durch den Parameter 'username' identifiziert), die stündliche Begrenzung 2000 Kredite ist. Ein Kredit ist eine Web-Service-Anforderung für die meisten Dienste betroffen. Eine Ausnahme wird ausgelöst, wenn der Grenzwert überschritten wird.

Ich bin nicht vertraut genug mit SPARQL, aber wenn sie die Macht in seinem Filter verwenden kann, dann ist es einfach, den Abstand eines bestimmten Artikel von einem gegebenen Punkt mit Satz des Pythagoras (a ^ 2 + b ^ 2 = c zu berechnen ^ 2) und das würden Sie alle Artikel in einem Radius.

Eine andere Möglichkeit wäre, zu bekommen einen Wikipedia Datendump und verarbeiten es selbst - das ich ist das, was getan hat, als ich brauchte eine linguistische Analyse auf Wikipedia-Artikel zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top