سؤال

ويكيبيديا هي تحديد الموقع الجغرافي أ كثير ل إنه مقالات.(انظر في الزاوية اليمنى العليا من الصفحة.)

هل هناك أي API للاستعلام عن الكل صفحات ذات علامات جغرافية ضمن دائرة نصف قطرها محددة من الموقع الجغرافي؟

تحديث

حسنًا، بناءً على إجابة النظرية المفقودة، جربت هذا (on مستكشف استعلام DBpedia):

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

هذا قريب جدًا مما أريد، باستثناء أنه يُرجع النتائج خلال (محلي) مربع حول النقطة وليس الدائرة.أود أيضًا أن يتم فرز النتائج بناءً على المسافة من النقطة.(إذا كان ذلك ممكنا.)

تحديث 2

أحاول تحديد المسافة الإقليدية كتقريب للمسافة الحقيقية، ولكن أواجه مشكلة في تربيع رقم في سباركل.(تم فتح السؤال هنا.) عندما أحصل على شيء مفيد سأقوم بتحديث السؤال، ولكن في هذه الأثناء سأقدر أي اقتراحات بشأن طرق بديلة.

تحديث 3

التحديث النهائي.لقد تخليت عن استخدام SPARQL من خلال DBpedia.لقد كتبت محللًا بسيطًا يقوم بجلب تفريغ قاعدة بيانات نص مقالة ويكيبيديا ليلاً ويوزع جميع المقالات للرموز الجغرافية.إنه يعمل بشكل جيد إلى حد ما ويسمح لي بتخزين معلومات حول المقالات ذات العلامات الجغرافية كيفما أشاء.

من المحتمل أن يكون هذا هو الحل الذي سأستمر في استخدامه، وإذا تمكنت من إنشاء واجهة جميلة له، فقد أفكر في السماح بالوصول إلى واجهة برمجة التطبيقات العامة و/أو نشر المصدر إلى المحلل اللغوي.

هل كانت مفيدة؟

المحلول

والخادم OpenLink الموهوب المستخدمة من قبل نقطة النهاية dbpedia لديها العديد من الميزات الاستعلام. لقد وجدت من المعلومات حول http://docs.openlinksw.com/virtuoso/rdfsparqlgeospat.html مفيد لمشكلة مماثلة.

وانتهى بي الأمر مع استعلام مثل هذا:

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

وهذا المثال يسترجع المواقع مضاف إليها علامات جغرافية في غضون 30 كم من موقع المنشأ.

نصائح أخرى

ويجب أن تكون قادرة على الاستعلام عن خط العرض / خط الطول باستخدام SPARQL و dbpedia . مثال (من هنا ):

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]')
)
}

ويمكنك تشغيل الاستعلامات الخاصة بك هنا .

هناك بضعة أدوات مدرجة في أدوات وتطبيقات تعتمد على الإحداثيات من ويكيبيديا.لست متأكدًا مما إذا كان هذا هو ما تبحث عنه، ولكن Geosearch.py تبدو الأداة رائعة جدًا.

وليس على API، ولكن يمكنك أيضا تحميل هذه المجموعة لطيفة من جميع المواد ويكيبيديا الموسومة الجغرافية والاستعلام مباشرة في قاعدة بيانات محلية: http://www.google.com/fusiontables/DataSource؟dsrcid=423292

مجانا <لأ href = "http://www.geonames.org/export/ ويكيبيديا-webservice.html # findNearbyWikipedia "يختلط =" نوفولو "> GeoNames.org FindNearbyWikipedia خدمة يمكن جلب المواد مضاف إليها علامات جغرافية لإعطاء الرمز البريدي أو الإحداثيات (خطوط الطول والعرض)

ويوفر 30000 الاعتمادات الحد اليومي في التطبيق (التي تم تحديدها من قبل 'اسم المستخدم' المعلمة)، والحد من ساعة هو 2000 نقطة. A الائتمان هو طلب خدمة ويب ضرب لمعظم الخدمات. تم إلقاء استثناء عند تجاوز الحد المسموح به.

وأنا لست على دراية بما فيه الكفاية مع SPARQL، ولكن إذا كان يمكن استخدام السلطة في تصفية لها ثم في السهل لحساب المسافة من مادة معينة من نقطة معينة باستخدام فيثاغورس نظرية (أ ^ 2 + ب ^ 2 = ج ^ 2) والتي من شأنها أن تعطيك جميع المواد في دائرة نصف قطرها.

وثمة خيار آخر يتمثل في الحصول على ويكيبيديا تفريغ البيانات و عملية بنفسك - وهذا هو ما فعلته عندما كنت في حاجة للقيام ببعض التحليل اللغوي على مقالة ويكيبيديا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top