Εγχειρίδιο:Pywikibot/Wikidata
Η σελίδα αυτή εξηγεί πως να δημιουργήσετε bot σε python στα Wikidata κάνοντας χρήση βασικών βιβλιοθηκών του pywikibot.
Αν θέλετε απλώς να τρέξετε κάποια script χωρίς να γράψετε ούτε μια γραμμή σε python, δείτε τα Wikidata scripts που περιλαμβάνονται.
Πρσοχή: | Οι μέθοδοι και τα αποτελέσματα μπορεί να αλλάξουν στο μέλλον, καθώς το Wikibase αναπτύσσεται. |
Pywikibot supports lexical data objects like Lexemes with release 7.2 and above.
Παραμετροποίηση
Για να ξεκινήσετε τις συνεισφορές/δοκιμές χρησιμοποιώντας τον λογαριασμό bot θα πρέπει να προσθέσετε τα παρακάτω στο αρχείο user-config.py :
- Ιστότοπος παραγωγής
usernames['wikidata']['wikidata'] = 'YourBot'
- Ιστότοπος δοκιμών
usernames['wikidata']['test'] = 'YourBot'
Παράδειγμα
δείτε τη σελίδα d:Wikidata:Creating a bot για εκτεταμένη τεκμηρίωση. Το pywikibot core υποστηρίζει τα περισσότερα χαρακτηριστικά του Wikibase ήδη, π.χ., qualifiers, πηγές, ιδιότητες με αντικείμενο, συντεταγμένες, χρόνο, και τύπο συμβολοσειράς.
import pwb # only needed if you haven't installed the framework as side-package
import pywikibot
site = pywikibot.Site('wikipedia:en') # any site will work, this is just an example
page = pywikibot.Page(site, 'Douglas Adams')
item = pywikibot.ItemPage.fromPage(page) # this can be used for any page object
# you can also define an item like this
repo = site.data_repository() # this is a DataSite object
item = pywikibot.ItemPage(repo, 'Q42') # This will be functionally the same as the other item we defined
item.get() # you need to call it to access any data.
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]) # let's just assume it has sources.
# Edit an existing item
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')
# You can also make this all in one time:
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 scripts
- Wikidata:Creating a bot
- Wikidata:Pywikibot - Python 3 Tutorial
- How to interact with Wikidata via Pywikibot - a workshop by User:Mike Peel
Some bot examples
- If you need more help on setting up your Pywikibot visit the #pywikibot IRC channel connect or pywikibot@ mailing list.