دليل:باي ويكي بوت/ويكي بيانات
هذه الصفحة تشرح كيفية إنشاء بوتات تعمل بلغة بايثون على ويكي بيانات وذلك باستخدام مكتبة باي ويكي بوت الأساسية.
إن أردت استعمال بعض النصوص البرمجية فقط دون كتابة أي سطر بلغة بايثون، انظر النصوص البرمجية المضمّنة لويكي بيانات.
تحذير: | الطرق والنتائج قد تتغير مستقبلاً، يعتمد ذلك على تطوّر ويكي قاعدة «Wikibase». |
تدعم باي ويكي بوت كائنات البيانات المعجمية مثل الوحدات المجردة «Lexemes»، وذلك في الإصدار 7.2 وما بعده.
الإعداد
للبدء في المساهمة/إجراء الاختبارات باستخدام حساب البوت الخاص بك ينبغي أن تُضيف الآتي إلى ملف user-config.py :
- موقع إنتاج العمل
usernames['wikidata']['wikidata'] = 'YourBot'
- موقع الاختبار
usernames['wikidata']['test'] = 'YourBot'
مثال
للاطلاع على توثيق معلومات مفصّل انظر ويكي بيانات:إنشاء بوت. تدعم نواة باي ويكي بوت بالفعل معظم ميزات ويكي قاعدة، على سبيل المثال، المُحددات والمصادر والخصائص ضمن العنصر، كذلك الإحداثي والوقت ونوع سلسلة المحارف «string type».
import pwb # مطلوبة فقط في حال عدم ثبيتك لإطار العمل كحزمة جانبية
import pywikibot
site = pywikibot.Site('wikipedia:en') # أي موقع سيعمل، هذا فقط مثال
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page) # يمكن استخدامه مع أي كائن صفحة
# يمكنك أيضًا أن تعرّف عنصرًا هكذا
repo = site.data_repository() # هذا كائن موقع بيانات
item = pywikibot.ItemPage(repo, 'Q42') # سيكون هذا وظيفيًا مثل العنصر الآخر الذي قمنا بتعريفه
item.get() # أنت بحاجة إلى استدعائه للوصول إلى أي بيانات
sitelinks = item.sitelinks
aliases = item.aliases
if 'en' in item.labels:
print('The label in English is: ' + item.labels['en'])
if item.claims:
if 'P31' in item.claims: # instance of
print(item.claims['P31'][0].getTarget())
print(item.claims['P31'][0].sources[0]) # لنفترض فقط أنه لديه مصادر.
# تعديل عنصر موجود
item.editLabels(labels={'en': 'Douglas Adams'}, summary='Edit label')
item.editDescriptions(descriptions={'en': 'English writer'}, summary='Edit description')
item.editAliases(aliases={'en': ['Douglas Noel Adams', 'another alias']})
item.setSitelink(sitelink={'site': 'enwiki', 'title': 'Douglas Adams'}, summary='Set sitelink')
item.removeSitelink(site='enwiki', summary='Remove sitelink')
# يمكنك أيضًا إنشاء هذا كله مرةً واحدة:
data = {'labels': {'en': 'Douglas Adams'},
'descriptions': {'en': 'English writer'},
'aliases': {'en': ['Douglas Noel Adams', 'another alias'], 'de': ['Douglas Noel Adams']},
'sitelinks': [{'site': 'enwiki', 'title': 'Douglas Adams'}]}
item.editEntity(data, summary='Edit item')
انظر أيضا
- نصوص ويكي بيانات البرمجية
- Wikidata:Creating a bot
- Wikidata:Pywikibot - Python 3 Tutorial
- كيفية التفاعل مع ويكي بيانات من خلال باي ويكي بوت - ورشة عمل من User:Mike Peel
بعض أمثلة البوتات
- مثال على نص باي ويكي بوت للمستخدم Mike Peel
- تجميعة بوتات ويكي بيانات للمستخدم Multichill
- لو كنت بحاجة لمساعدة في إعداد بوت Pywikibot الخاص بك، يرجى زيارة قناة #pywikibot على آي آر سي تواصل أو القائمة البريدية pywikibot@.