Fair Use of The MediaWiki API In A Game‏

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Fair Use of The MediaWiki API In A Game‏

Tal Barda
Hello!
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game (or Wiki Race, some may say) for Android devices. There is a great multiplayer version of it for the iPhone and Web, but I think there should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it, including the gameplay experience (single-player and multiplayer) and the design. 
_________________________

I'm writing this email because I'd like to consult with some wiki experts about one of the main things which on my mind, and it's my usage of the Mediawiki API. I'd like to launch the game and upload it to the Play Store in a few months, but I can't keep working on it while knowing that I might put my efforts in danger if I will do so, because of unfair usage of the Wiki API.

Well, the game is based on generating two random articles: the first article (the starting point) and the target article (the end point) which the user should reach to using only the hyperlinks inside the articles.

The thing is, that unlike the currently exist Wiki Game version which is played by many users together at the same time (by joining "game rooms"), or using pre-generated articles, - I'm generating the articles live for each user individually. Each user can play in single-player mode and generate his own pair of articles, his own game, a thing which is gonna keep the game infinite for all of the players.

My generator generates two articles before each game and the user has 15 seconds to decide whether he would like to start the game or not. After the 15 seconds are up the generator is generating a new pair of articles. While the time is running, the user may refresh the articles manually and ask to generate a new pair.

So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks in the mobile version of Wikipedia, because the templates view in the mobile version is very limited and there are articles without references from other articles, and I don't want the users to get stuck.

In order to overcome this , and make sure that the target article is actually reachable, I need to make about 5 requests to the REST API each articles generation (one request after another, not together). The algorithm was made after a very long time of research by me, and I think its efficient for the purpose.

So, I assume that the average player is gonna play about an hour in a day, so he is gonna refresh his pair about 15 times, which are 75 requests from the API in a given day for a user. Let's say (hopefully and hypothetically) the game goes pretty viral - well, there are gonna be a lot of requests to the API at the same time, and this makes me unsure about my way of action.

I don't mind sending my random articles generator code (as long it is not copied :P ) for a review, and work together with somebody to make the game better and fair, and I'm also willing to donate a part of the game incomes (if there will be any) to the Wikimedia Foundation, but there is one thing I'm not gonna do, and it's launching the game before I'm making sure I do a fair use of the API. I know Wikipedia is taking care millions and billions of requests everyday, and still - I can't move on without knowing everything is fine.

This information about the usage limits is not very explicit, and it doesn't put the line between good and bad, and maybe I'm using it badly. I will accept every answer respectfully.

Thanks in advance,
Tal

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api
Reply | Threaded
Open this post in threaded view
|

Re: Fair Use of The MediaWiki API In A Game‏

Bartosz Dziewoński
The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests. In case your application would generate more traffic than Wikimedia are willing to support, this will let the Operations team contact you, or (in the worst and unlikely case) easily block your requests without affecting anyone else.


Thank you for caring about this! :)

On Sun, Dec 31, 2017 at 9:28 PM, Tal Barda <[hidden email]> wrote:
Hello!
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game (or Wiki Race, some may say) for Android devices. There is a great multiplayer version of it for the iPhone and Web, but I think there should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it, including the gameplay experience (single-player and multiplayer) and the design. 
_________________________

I'm writing this email because I'd like to consult with some wiki experts about one of the main things which on my mind, and it's my usage of the Mediawiki API. I'd like to launch the game and upload it to the Play Store in a few months, but I can't keep working on it while knowing that I might put my efforts in danger if I will do so, because of unfair usage of the Wiki API.

Well, the game is based on generating two random articles: the first article (the starting point) and the target article (the end point) which the user should reach to using only the hyperlinks inside the articles.

The thing is, that unlike the currently exist Wiki Game version which is played by many users together at the same time (by joining "game rooms"), or using pre-generated articles, - I'm generating the articles live for each user individually. Each user can play in single-player mode and generate his own pair of articles, his own game, a thing which is gonna keep the game infinite for all of the players.

My generator generates two articles before each game and the user has 15 seconds to decide whether he would like to start the game or not. After the 15 seconds are up the generator is generating a new pair of articles. While the time is running, the user may refresh the articles manually and ask to generate a new pair.

So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks in the mobile version of Wikipedia, because the templates view in the mobile version is very limited and there are articles without references from other articles, and I don't want the users to get stuck.

In order to overcome this , and make sure that the target article is actually reachable, I need to make about 5 requests to the REST API each articles generation (one request after another, not together). The algorithm was made after a very long time of research by me, and I think its efficient for the purpose.

So, I assume that the average player is gonna play about an hour in a day, so he is gonna refresh his pair about 15 times, which are 75 requests from the API in a given day for a user. Let's say (hopefully and hypothetically) the game goes pretty viral - well, there are gonna be a lot of requests to the API at the same time, and this makes me unsure about my way of action.

I don't mind sending my random articles generator code (as long it is not copied :P ) for a review, and work together with somebody to make the game better and fair, and I'm also willing to donate a part of the game incomes (if there will be any) to the Wikimedia Foundation, but there is one thing I'm not gonna do, and it's launching the game before I'm making sure I do a fair use of the API. I know Wikipedia is taking care millions and billions of requests everyday, and still - I can't move on without knowing everything is fine.

This information about the usage limits is not very explicit, and it doesn't put the line between good and bad, and maybe I'm using it badly. I will accept every answer respectfully.

Thanks in advance,
Tal

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api




--
Matma Rex

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api
Reply | Threaded
Open this post in threaded view
|

Re: Fair Use of The MediaWiki API In A Game‏

Martin Urbanec
Hello Tal,

here is how I understand the fair use rule. You are free to use the Wikipedia API as long as you care about other users of the API and do not want to get free profit of the service (by creating live mirrors that add adds to Wikipedia only etc). That includes identifying yourself (using descriptive User-Agent as Matmarex said), using most efecient algorythms that you can figure out, making one request at time, using maxlag in noninteractive tasks etc. etc.

That's the reason why the information published aren't perfectly describing like you may issue 30 requests per minute and not more. There is simply no way how can be such numbers figured out.

Thank you for caring about this and for your effort you put into the developing process!

Happy new year,

Martin Urbanec

po 1. 1. 2018 v 2:47 odesílatel Bartosz Dziewoński <[hidden email]> napsal:
The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests. In case your application would generate more traffic than Wikimedia are willing to support, this will let the Operations team contact you, or (in the worst and unlikely case) easily block your requests without affecting anyone else.


Thank you for caring about this! :)

On Sun, Dec 31, 2017 at 9:28 PM, Tal Barda <[hidden email]> wrote:
Hello!
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game (or Wiki Race, some may say) for Android devices. There is a great multiplayer version of it for the iPhone and Web, but I think there should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it, including the gameplay experience (single-player and multiplayer) and the design. 
_________________________

I'm writing this email because I'd like to consult with some wiki experts about one of the main things which on my mind, and it's my usage of the Mediawiki API. I'd like to launch the game and upload it to the Play Store in a few months, but I can't keep working on it while knowing that I might put my efforts in danger if I will do so, because of unfair usage of the Wiki API.

Well, the game is based on generating two random articles: the first article (the starting point) and the target article (the end point) which the user should reach to using only the hyperlinks inside the articles.

The thing is, that unlike the currently exist Wiki Game version which is played by many users together at the same time (by joining "game rooms"), or using pre-generated articles, - I'm generating the articles live for each user individually. Each user can play in single-player mode and generate his own pair of articles, his own game, a thing which is gonna keep the game infinite for all of the players.

My generator generates two articles before each game and the user has 15 seconds to decide whether he would like to start the game or not. After the 15 seconds are up the generator is generating a new pair of articles. While the time is running, the user may refresh the articles manually and ask to generate a new pair.

So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks in the mobile version of Wikipedia, because the templates view in the mobile version is very limited and there are articles without references from other articles, and I don't want the users to get stuck.

In order to overcome this , and make sure that the target article is actually reachable, I need to make about 5 requests to the REST API each articles generation (one request after another, not together). The algorithm was made after a very long time of research by me, and I think its efficient for the purpose.

So, I assume that the average player is gonna play about an hour in a day, so he is gonna refresh his pair about 15 times, which are 75 requests from the API in a given day for a user. Let's say (hopefully and hypothetically) the game goes pretty viral - well, there are gonna be a lot of requests to the API at the same time, and this makes me unsure about my way of action.

I don't mind sending my random articles generator code (as long it is not copied :P ) for a review, and work together with somebody to make the game better and fair, and I'm also willing to donate a part of the game incomes (if there will be any) to the Wikimedia Foundation, but there is one thing I'm not gonna do, and it's launching the game before I'm making sure I do a fair use of the API. I know Wikipedia is taking care millions and billions of requests everyday, and still - I can't move on without knowing everything is fine.

This information about the usage limits is not very explicit, and it doesn't put the line between good and bad, and maybe I'm using it badly. I will accept every answer respectfully.

Thanks in advance,
Tal

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api




--
Matma Rex
_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api
Reply | Threaded
Open this post in threaded view
|

Re: Fair Use of The MediaWiki API In A Game‏

Tal Barda
Thanks for your reply.  

I have a question regarding this part:
"The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests".

Should I treat my HTTP requests as individual requests per player? 
I mean, I wonder whether I should write in the User-Agent just the application name and my email, or add to it also the specific username of the request's sender. Eventually, each player sends the requests from its own device, and I don't know if I should treat all of them like one source of activity, or separated sources, so if there is an over extensive activity from a specific user in my app you will be able to block it, and not the whole app's activity.

Thanks again




בתאריך 1 בינו׳ 2018 4:12,‏ "Martin Urbanec" <[hidden email]> כתב:
Hello Tal,

here is how I understand the fair use rule. You are free to use the Wikipedia API as long as you care about other users of the API and do not want to get free profit of the service (by creating live mirrors that add adds to Wikipedia only etc). That includes identifying yourself (using descriptive User-Agent as Matmarex said), using most efecient algorythms that you can figure out, making one request at time, using maxlag in noninteractive tasks etc. etc.

That's the reason why the information published aren't perfectly describing like you may issue 30 requests per minute and not more. There is simply no way how can be such numbers figured out.

Thank you for caring about this and for your effort you put into the developing process!

Happy new year,

Martin Urbanec

po 1. 1. 2018 v 2:47 odesílatel Bartosz Dziewoński <[hidden email]> napsal:
The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests. In case your application would generate more traffic than Wikimedia are willing to support, this will let the Operations team contact you, or (in the worst and unlikely case) easily block your requests without affecting anyone else.


Thank you for caring about this! :)

On Sun, Dec 31, 2017 at 9:28 PM, Tal Barda <[hidden email]> wrote:
Hello!
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game (or Wiki Race, some may say) for Android devices. There is a great multiplayer version of it for the iPhone and Web, but I think there should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it, including the gameplay experience (single-player and multiplayer) and the design. 
_________________________

I'm writing this email because I'd like to consult with some wiki experts about one of the main things which on my mind, and it's my usage of the Mediawiki API. I'd like to launch the game and upload it to the Play Store in a few months, but I can't keep working on it while knowing that I might put my efforts in danger if I will do so, because of unfair usage of the Wiki API.

Well, the game is based on generating two random articles: the first article (the starting point) and the target article (the end point) which the user should reach to using only the hyperlinks inside the articles.

The thing is, that unlike the currently exist Wiki Game version which is played by many users together at the same time (by joining "game rooms"), or using pre-generated articles, - I'm generating the articles live for each user individually. Each user can play in single-player mode and generate his own pair of articles, his own game, a thing which is gonna keep the game infinite for all of the players.

My generator generates two articles before each game and the user has 15 seconds to decide whether he would like to start the game or not. After the 15 seconds are up the generator is generating a new pair of articles. While the time is running, the user may refresh the articles manually and ask to generate a new pair.

So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks in the mobile version of Wikipedia, because the templates view in the mobile version is very limited and there are articles without references from other articles, and I don't want the users to get stuck.

In order to overcome this , and make sure that the target article is actually reachable, I need to make about 5 requests to the REST API each articles generation (one request after another, not together). The algorithm was made after a very long time of research by me, and I think its efficient for the purpose.

So, I assume that the average player is gonna play about an hour in a day, so he is gonna refresh his pair about 15 times, which are 75 requests from the API in a given day for a user. Let's say (hopefully and hypothetically) the game goes pretty viral - well, there are gonna be a lot of requests to the API at the same time, and this makes me unsure about my way of action.

I don't mind sending my random articles generator code (as long it is not copied :P ) for a review, and work together with somebody to make the game better and fair, and I'm also willing to donate a part of the game incomes (if there will be any) to the Wikimedia Foundation, but there is one thing I'm not gonna do, and it's launching the game before I'm making sure I do a fair use of the API. I know Wikipedia is taking care millions and billions of requests everyday, and still - I can't move on without knowing everything is fine.

This information about the usage limits is not very explicit, and it doesn't put the line between good and bad, and maybe I'm using it badly. I will accept every answer respectfully.

Thanks in advance,
Tal

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api




--
Matma Rex
_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api


_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api
Reply | Threaded
Open this post in threaded view
|

Re: Fair Use of The MediaWiki API In A Game‏

Martin Urbanec
You should treat them as one source of activity with one user agent. 

Martin

Dne po 1. led 2018 9:00 uživatel Tal Barda <[hidden email]> napsal:
Thanks for your reply.  

I have a question regarding this part:
"The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests".

Should I treat my HTTP requests as individual requests per player? 
I mean, I wonder whether I should write in the User-Agent just the application name and my email, or add to it also the specific username of the request's sender. Eventually, each player sends the requests from its own device, and I don't know if I should treat all of them like one source of activity, or separated sources, so if there is an over extensive activity from a specific user in my app you will be able to block it, and not the whole app's activity.

Thanks again




בתאריך 1 בינו׳ 2018 4:12,‏ "Martin Urbanec" <[hidden email]> כתב:

Hello Tal,

here is how I understand the fair use rule. You are free to use the Wikipedia API as long as you care about other users of the API and do not want to get free profit of the service (by creating live mirrors that add adds to Wikipedia only etc). That includes identifying yourself (using descriptive User-Agent as Matmarex said), using most efecient algorythms that you can figure out, making one request at time, using maxlag in noninteractive tasks etc. etc.

That's the reason why the information published aren't perfectly describing like you may issue 30 requests per minute and not more. There is simply no way how can be such numbers figured out.

Thank you for caring about this and for your effort you put into the developing process!

Happy new year,

Martin Urbanec

po 1. 1. 2018 v 2:47 odesílatel Bartosz Dziewoński <[hidden email]> napsal:
The easiest and first thing you should do is make sure your application sends an unique User-Agent header with its HTTP requests. In case your application would generate more traffic than Wikimedia are willing to support, this will let the Operations team contact you, or (in the worst and unlikely case) easily block your requests without affecting anyone else.


Thank you for caring about this! :)

On Sun, Dec 31, 2017 at 9:28 PM, Tal Barda <[hidden email]> wrote:
Hello!
I hope this is the correct place to ask this question.
My name is Tal, and I'm developing my own version of the Wiki Game (or Wiki Race, some may say) for Android devices. There is a great multiplayer version of it for the iPhone and Web, but I think there should be a worthy version to the Android.
My version is still in progress, and I put a lot of effort into it, including the gameplay experience (single-player and multiplayer) and the design. 
_________________________

I'm writing this email because I'd like to consult with some wiki experts about one of the main things which on my mind, and it's my usage of the Mediawiki API. I'd like to launch the game and upload it to the Play Store in a few months, but I can't keep working on it while knowing that I might put my efforts in danger if I will do so, because of unfair usage of the Wiki API.

Well, the game is based on generating two random articles: the first article (the starting point) and the target article (the end point) which the user should reach to using only the hyperlinks inside the articles.

The thing is, that unlike the currently exist Wiki Game version which is played by many users together at the same time (by joining "game rooms"), or using pre-generated articles, - I'm generating the articles live for each user individually. Each user can play in single-player mode and generate his own pair of articles, his own game, a thing which is gonna keep the game infinite for all of the players.

My generator generates two articles before each game and the user has 15 seconds to decide whether he would like to start the game or not. After the 15 seconds are up the generator is generating a new pair of articles. While the time is running, the user may refresh the articles manually and ask to generate a new pair.

So why am I worried about my app's usage of the API?
Well, not all of the target articles are reachable through the hyperlinks in the mobile version of Wikipedia, because the templates view in the mobile version is very limited and there are articles without references from other articles, and I don't want the users to get stuck.

In order to overcome this , and make sure that the target article is actually reachable, I need to make about 5 requests to the REST API each articles generation (one request after another, not together). The algorithm was made after a very long time of research by me, and I think its efficient for the purpose.

So, I assume that the average player is gonna play about an hour in a day, so he is gonna refresh his pair about 15 times, which are 75 requests from the API in a given day for a user. Let's say (hopefully and hypothetically) the game goes pretty viral - well, there are gonna be a lot of requests to the API at the same time, and this makes me unsure about my way of action.

I don't mind sending my random articles generator code (as long it is not copied :P ) for a review, and work together with somebody to make the game better and fair, and I'm also willing to donate a part of the game incomes (if there will be any) to the Wikimedia Foundation, but there is one thing I'm not gonna do, and it's launching the game before I'm making sure I do a fair use of the API. I know Wikipedia is taking care millions and billions of requests everyday, and still - I can't move on without knowing everything is fine.

This information about the usage limits is not very explicit, and it doesn't put the line between good and bad, and maybe I'm using it badly. I will accept every answer respectfully.

Thanks in advance,
Tal

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api




--
Matma Rex
_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

_______________________________________________
Mediawiki-api mailing list
[hidden email]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api