Context
The image recommendations proof of concept will test putting an API layer over the image matching algorithm and MediaSearch. The API layer will serve up results from the image matching algorithm and additionally append non-duplicate results from MediaSearch to the image matching algorithm results.
Proof of Concept Success Criteria
- We know whether results from the algorithms combined are superior to the results of image matching or MediaSearch alone
- We know whether the combined forces of image matching and MediaSearch have varying results depending on wiki
- Combining results from both sources and serving them up is performant (quick response time)
- We’re able to test results across multiple wikis and compare effectiveness
- We know whether the API design is the right fit for the features planned by Android, Growth, and Structured Data.
"Happy Path" Scope
List Image Suggestions for a Given Article
- As a developer, when I make a request to the Image Suggestion API with a page title
- I expect to see a list of recommended images for the page I requested
- The list should be static and paginated
- The list should be at most 10 images per 1 page request
- Of the 10 images
- A maximum of 3 images should come from the ImageMatchingAlgorithm
- 7-10 images should be from MediaSearch
- I expect to see a list of recommended images for the page I requested
List Image Suggestions for all Wikipedia languages
- As a developer, when I make a request to the Image Suggestion API with a page title,
- I expect to be able to make requests for all Wikipedia projects in any language
- Android will need across all Wikis. The following Wikis will be used in Structured Data’s test plan:
- Arabic Wikipedia
- Cebuano Wikipedia
- English Wikipedia
- Vietnamese Wikipedia
- Android will need across all Wikis. The following Wikis will be used in Structured Data’s test plan:
- I expect to be able to make requests for all Wikipedia projects in any language
Provide the Source of an Image
- As a developer, when I receive a list of images
- I expect to know the source of how the suggestion was provided
- e.g. I see the image suggestion for the Frog page is from "Commons"
- I expect to know the source of how the suggestion was provided
Provide the Confidence Rating of an Image
- As a developer, when I receive a list of images
- I expect to know the confidence rating for each image recommended per page requested
- e.g. I see that the image for "Amazonian Tree Frog.jpg" has a confidence rating of "high"
- I expect to know the confidence rating for each image recommended per page requested
Error Scenarios
- As a developer, when I make a request to the Image Suggestion API with page-ID
- I expect to get an error stating the full page title is required to make a query
- As a developer, when I make a request to the Image Suggestion API
- And there are no image suggestions for the page
- I expect to receive an error stating there were no results found
- Unauthorized
- Unauthenticated
- Service Unavailable
Out of Scope
Filter # of Image Suggestions Per Article Request
- As a developer, when I provide a parameter to limit the number of image suggestions per page
- I expect to get somewhere between 1 and 10 images recommended per page requested
Record Users’ Judgement on Suggestion
- As a contributor, when I accept/skip/reject an image suggestion, I expect my feedback will be taken in and update the state/quality/confidence of the suggestion.
Apply and record revision when image suggestion is accepted
- As a contributor, when I've accepted an image suggestion to add to a page, I expect my edit to have been made and I can review the revision in the page history
- As a developer, when I make a request to the Image Suggestion API, I expect to get metadata on the image as follows:
- Notes
- Descriptions
- Categories
- Captions
- Depicts
- Size
- Copyright
- Date
- User
- Image type
- As a developer, when I make a request to the Image Suggestion API, I expect to be able to filter the results by image source
Non-Functional Requirements
- Authentication
- Authorization
- Performance
- API Product Metrics
- ML Metrics
- Documentation