În lun., 4 feb. 2019 la 16:36, Kévin Bois <[email protected]> a scris: > > Hello, > > I'm trying to write a pywikibot script which read and create items / > properties on my Wikibase instance. Following pieces of tutorials and script > examples, I managed to write something working. > > 1/ The idea is to read a CSV file, and create an item with its properties for > each line. So I have to loop over thousands of lines and create an item and > multiple claims associated, and it takes quite some time to do so. (atleast 1 > hour to create 1000 items) I guess it's because for each line, I create a new > entity and new claims, which means multiple requests for each line. > Some pseudo code I use in my script: > To create a new item, I use : repo.editEntity({}, {}, summary='new item') > assuming repo = site.data_repository() > To create a new claim, I use : self.user_add_claim_unless_exists(item, > claim), assuming my Bot inherit WikidataBot > > Is there a better way to optimize that kind of bulk import ?
Not sure about this, but you might consider using low-level API functions directly or even crafting your API calls by hand. That kind of defies the purpose of using pwb, but oh well... > > -- > > 2/ I kind of have the same problem If I want to check if an item already > exists, because first I need to get all existing items and check if they are > in my CSV or not. (the CSV does not contain QIDs, but does contain a "custom" > ID I've created and added as a property to each item ) This sounds like a great job for a SPARQL Query (see https://query.wikidata.org for the public endpoint for WIkidata). Is it feasible to add such an interface to your instance? Regards, Strainu > > -- > > I hope I was clear enough, any relevant example, idea, advice, would be much > appreciated. Bear in mind I'm a beginner with the whole ecosystem so I'm open > to any recommendation. > Thanks ! > _______________________________________________ > pywikibot mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/pywikibot _______________________________________________ pywikibot mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/pywikibot
