مشكلة تكامل ويكيبيديا - بحاجة إلى حل هذه المشكلة أخيرًا 101

StackOverflow https://stackoverflow.com/questions/1001156

سؤال

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

لدي دليل بسيط للمواقع مثل المدن والبلدان.تطبيقي هو تطبيق بسيط يعتمد على PHP ويعتمد على تقنية Ajax مع إمكانية البحث والتصفح.يقوم الأشخاص بالتسجيل وربط أنفسهم بمدينة ما، وعندما يتصفح المستخدم المدن - يمكنه رؤية الأشخاص والشركات في تلك المدينة، على سبيل المثال.من هو جزء من نظامنا.

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

  1. ستحتوي علامة التبويب الأولى على صندوق معلومات يحتوي على معلومات عن مدينة بكين
  2. سيكون Seond عبارة عن علامة تبويب خاصة بالبلد تحتوي على صندوق معلومات لمعلومات البلد من الصين
  3. علامة التبويب الثالثة ستحتوي على قوائم بجميع جهات الاتصال في بكين.

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

هناك بعض الأفكار الجيدة والسيئة التي تمكنت من استيعابها حتى الآن وهي:

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

  2. قم بتنزيل ملف تفريغ ويكيبيديا واستفسر عنه.حسنًا، لقد قمت بتنزيل قاعدة البيانات بأكملها ولكن الأمر سيستغرق وقتًا طويلاً لاستيراد جميع الجداول من تفريغ XML.بالإضافة إلى ذلك، ضع في اعتبارك حقيقة أنني أريد فقط استخراج قائمة بالبلدان والمدن وصناديق المعلومات الخاصة بها - فالكثير من المعلومات الموجودة في ملف التفريغ ليست ذات فائدة بالنسبة لي.

  3. أنشئ جداول محلية خاصة بي وأنشئ برنامج نصي cron [سأشرح سبب وظيفة cron هنا] والذي من شأنه أن يقوم بطريقة ما بتحليل جميع صفحات البلدان والمدن على ويكيبيديا وتحويلها إلى تنسيق يمكنني استخدامه في جداولي.ومع ذلك، بصراحة، لا أحتاج إلى جميع المعلومات الموجودة في صناديق المعلومات كما هو الحال في الواقع، إذا كان بإمكاني الحصول على العلامات الأساسية لصناديق المعلومات كما هي - فسيكون ذلك أكثر من كافٍ بالنسبة لي.يحب:

Title of Country | Infobox Raw text

يمكنني شخصيًا استخراج أشياء مثل الإحداثيات والتفاصيل الأخرى إذا أردت ذلك.

حتى أنني حاولت تنزيل مجموعات بيانات تابعة لجهات خارجية من infochiumps وdbpedia لكن مجموعة البيانات من infochimps غير مكتملة ولا تحتوي على جميع المعلومات التي أردت عرضها - بالإضافة إلى أنه مع dbpedia ليس لدي أي فكرة على الإطلاق عما يجب فعله بملف csv الذي قمت بتنزيله من صناديق المعلومات وأخشى أنها قد لا تكون كاملة أيضًا.

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

أنا أبرمج باستخدام PHP وMySQL والموعد النهائي يقترب بسرعة - نظرًا للحالة والمتطلبات المذكورة أعلاه، ما هي الطريقة الأفضل والأكثر عملية للمتابعة والتنفيذ.أنا منفتح تمامًا على الأفكار - أمثلة عملية إذا قام أي شخص بشيء مماثل - أحب أن أسمع:D

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

المحلول

أود أن أقترح ما يلي

  • استعلم عن المدينة من ويكيبيديا عندما يتم إنشاؤها (المدينة) في قاعدة بياناتك
  • تحليل البيانات، وتخزين نسخة محلية مع الطابع الزمني لآخر تحديث
  • عند الوصول، قم بتحديث البيانات إذا لزم الأمر.يمكنك عرض القديم مع علامة مائية تقول أنه ...أيام قديمة ويتم تحديثها الآن.ثم قم بالتغيير إلى الإصدار المكتسب حديثًا عند الانتهاء من التحديث.لقد قلت أنك تستخدم AJAX، لذا لن تكون هناك مشكلة

سيؤدي ذلك إلى تقليل الاستعلامات إلى ويكيبيديا ولن تعرض خدمتك صفحات فارغة حتى عندما لا يمكن الوصول إلى ويكيبيديا.

نصائح أخرى

بعض الأشياء التي يمكنني التفكير فيها:

  1. ما عليك سوى عرض بيانات ويكيبيديا في إطار iframe على موقعك.

  2. استخدم Curl للحصول على HTML من ويكيبيديا، ثم استخدم ورقة أنماط مخصصة لتصميمه و/أو إخفاء الأجزاء التي لا تريد عرضها.

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

ماذا عن استخدام واحدة من خدمات الويب للترميز الجغرافي ويكيبيديا

هناك العديد من الأماكن المتاحة التي يمكنك المرور فيها، على سبيل المثال.الرمز البريدي والبلد إلى ملخص مقالة قصيرة ورابط إلى مقالة ويكيبيديا.

إذا كان ذلك سيكون كافيا.

قم بإلقاء نظرة على DBPedia فهو يحتوي على استخراج جيد لبيانات ويكيبيديا بتنسيق CSV.

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