Hi all,

I had in the idea to add small infoboxes when clicking on some terms in the articles of an external site. The infoboxes would print key properties from Wikidata and let the user navigate between items within the infobox.

I was wondering what would be the good practices for that.

1/ Using a full dump of Wikidata

This is the option that put the less stress on Wikidata. However it is a bit overkill to store an enormous database for a website that will use a few hundred of items at most. The point is that users can freely navigate between items and we don't know what items they will want to see.

Also, I had in the idea to add a button "Improve this item on Wikidata" that would redirect the user on the Wikidata page. If he improve the item on Wikidata but don't see his changes on the site he will be surprised...

2/ Query Wikidata API in real time

This is a simple way to get a dynamic linking. However I guess that Wikidata API has a query rate limit? It could be OK for a low trafic site but less if the site generate a big trafic.

3/ Query Wikidata API the first time an item is loaded and cache the result

With this option, Wikidata API will only be used the first time an user load an item infobox. Then the data is stored in the site database. 

To make it dynamic, the data is reloaded from Wikidata API if:
- An user clicked on "improve this item on Wikidata"
- A button "refresh" is clicked
- The data in the site database is older than one month.

4/ Other ?


What would be your opinion about this?

Thanks and regards