Wikipedia entegrasyonu sorunu - Sonunda 101 Bunu halletmek için ihtiyaç

4 Cevap php

Üzgünüm beyler, ben bütün fikirler çalışıyor ve biraz vazgeçerek oldum gibi benim uygulamasına wikipedia verileri entegre etmek ve açıkçası benim ucunda herhangi bir başarı yaşadım sanmıyorum nasıl bir sahte soru sorabilecek çalışan oldum Ben bir çıkmaz ya da engel okurken. Ben burada yapmak çalışıyorum tam olarak ne anlatmaya çalışacağım.

Ben şehir ve ülkeleri gibi yerlerde basit bir dizin var. Benim uygulama bir arama ile basit bir php tabanlı ajax tabanlı uygulama ve tesis göz atın. İnsanlar kaydolmak ve bir şehir ile kendilerini ilişkilendirmek ve bir kullanıcı şehirler attığında - o / o bizim sistemin bir parçası olduğunu kim yani o şehirde insanların ve şirketlerin görebilirsiniz.

O kısmı biraz rahatlıkla kendi kurmak ve iyi çalışıyor. Şey Beijing Diyelim Benim arama sonuçları bazı biri aramalarda yani biçiminde olacağını olmasıdır. Bu üç sekmeli arayüz kutusu dönecekti:

  1. İlk Tab Pekin için bir infobox içeren ürünlerin, kent bilgi olurdu
  2. Seond Çin'den ülke bilgileri bir bilgi kutusu tutan bir ülke sekme olacak
  3. Üçüncü sekme Pekin tüm temasların Kayıtları olurdu.

Bunu nasıl yapabilirim ve bu tür onun oldukça olun - ilk iki sekmeler için içeriği tamamen bu yapılır ve ayrıca bir kez daha sonra bir metodoloji üzerinde karar almak için en iyi yolu ne olurdu ile kaybettim Wikipedia.Now gelmelidir sağlam.

Fikirlerin bir çift iyi ve sindirmek mümkün olmuştur kadar kötü o kadar uzaktır:

  1. Wikipedia doğrudan kıvırmak isteği çalıştırın ve arama yapılan her dönen verileri ayrıştırmak. Wikipedia verilerin bu durumda yerel bir kopyasını tutmak için herhangi bir gerek yoktur. Diğer konu olduğunu da uzak bir üçüncü yerden veri ve bunu temel bilgileri almak için wikipedia bir istek her şey yapmak için uygun olduğu şüphe tamamen güvenmek. Artı wikipedia verileri dikkate her talebi ayrıştırılması gerekir - şu olacak .. ağır sunucu yüklerine aşmak ya da ben burada spekülasyon duyuyorum.

  2. Wikipedia dökümü Dosyaya almak ve sorgulamak. Peki ben tüm veritabanını indirdiğiniz ama onun olacak xml dökümü tüm tabloları almak için sonsuza dek sürebilir. Dökümü bilgilerin sürü bana hiçbir faydası yoktur - Ayrıca ben sadece ülkeleri ve şehirleri ve onların bilgi kutularının listesini çıkarmak istediğiniz gerçeğini düşünün.

  3. Kendi yerel tabloları yapmak ve bir şekilde tüm teh ülkeleri ve wikipedia üzerinde şehirler sayfaları ayrıştırmak ve benim tablolarda kullanabileceğiniz bir biçime dönüştürmek olacağını senaryoyu [ben neden cron işi burada anlatacağım] cron oluşturun. Ancak dürüst olarak ben sadece bile infoboxes temel biçimlendirme alabilir infact olduğu gibi infoboxes içinde tüm bilgileri gerekmez konuşan - bu benim için fazlasıyla yeterli olacaktır. Gibi:

Ülke başlık | Infobox Raw metin

İstersem ben şahsen koordinatları ve diğer ayrıntılar gibi şeyler elde edebilirsiniz.

Hatta infochiumps ve dbpedia üçüncü parti veri setlerini indirerek denedim ama infochimps gelen veri kümesi eksik ve ben göstermek istedim tüm bilgileri içermiyordu - artı dbpedia ile ben infoboxes indirilecek csv dosyası ile ne hiçbir fikrim yok ve aynı zamanda tam olmayabilir korkuyorum.

Ama burada sorunun sadece bir parçasıdır. Ben wikipedia bilgilerini göstermek için bir yol istiyorum - tüm bağlantıları wikipedia işaret yanı sıra wikipedia güzel bir bilgi çevresinde düzgün görüntülenen olacak ANCAK sorunu ben periyodik ben var bilgilerini güncellemek bir yol gerekir olduğunu wikipedia atleast ben tamamen modası geçmiş veri yok. Gibi iyi kontrol edebilir ve yeni bir ülke veya yeni bir konum varsa o bilgiyi ayrıştırmak ve her nasılsa onu almak bir sistem Diyelim ki. Ben burada bunun için wikipedia ülkelerin ve şehirlerin kategorilerine dayanarak ediyorum ama açıkçası tüm bu fikirler kağıt üzerinde, kısmen kodlu ve büyük bir karmaşa.

PHP ve MySQL programlama ve benim son hızla yaklaşıyor kulüpler - Yukarıdaki durum ve takip ve uygulamak için en iyi ve en pratik yöntem nedir gereksinimleri verilmiştir. D: Ben fikirlere tamamen açığım - - uygulamalı örnekler herkes benzer bir şey yapmış ise ben duymak isterdim

4 Cevap

Ben şu öneririm

  • O (şehir) DB oluşturulduğunda wikipedia şehri sorgula
  • Veri ayrıştırmak, son güncelleme zaman damgası ile yerel bir kopyasını saklar
  • Gerekirse erişim, veri güncelleme. Bunu ... gün eski ve artık güncelleme olduğunu söyleyerek bir filigranlı eskisini görüntüleyebilirsiniz. Sonra güncelleme yapılır taze edinilmiş bir değiştirebilirsiniz. Eğer AJAX kullanarak söyledi ettik, bu yüzden bir sorun olmayacak

Bu wikipedia queryes minimize edecek ve wikipedia ulaşılamaz olsa bile servis boş sayfaları göstermez.

Aklıma bir kaç şey:

  1. Sadece sitenizde bir iframe wikipedia verileri görüntüleyebilir.

  2. Kullanım Curl wikipedia html almak için, o zaman stil için özel bir stil kullanmak ve / veya görüntülenmesini istemediğiniz bölümleri gizlemek.

Aslında HTML ayrıştırmak ve istediğiniz parçaları dışarı çekmeye çalışan dev bir ağrı olacak ve büyük olasılıkla her şehir için özel olmak zorunda olacak. Eğer karar verirseniz şimdi o geri gidiyor ve daha sonra geliştirmek için çalışan basit bir şey almak daha iyi gerçekten gerek.

Nasıl Wikipedia Geocoding Webservices birini kullanma hakkında

Eğer örneğin geçmek nerede kullanılabilir çeşitli vardır Kısa bir makale özeti ve wikipedia makaleye bir bağlantı PostalCode ve ülke.

Bu yeterli olurdu.

Bu CSV formatında Vikipedi veri güzel çıkarma içeren DBPedia bakabilirsiniz.