User:Pelf/Social API requirements
Appearance
	
	
These are some loosely-defined requirements for a social API.
Functionality
Text
- Notes
 - Articles
 
Read
Write
Create
Update
Delete
Media
- Image
 - Video
 - Audio
 - Enterprise documents
 - Other content types
 
Containers
- Organize content [?]
 
Read
- List items in a container
 
Write
Create
- Create containers ("folders", "photo albums")
 
Update
- Add items to a container
 - Remove items from a container
 
Delete
- Delete a container
 
Connections
- Social network connections ("friends")
 - Lists (twitter) / Circles (G+) / Aspects (Diaspora)
 - Groups (facebook) / Communities (G+)
 
Read
- Read social network connections
 
Write
Create
- Create social network connections
- Follow-model (one way)
 - Friend-model (two way)
 
 
Update
Delete
- Delete social network connections
- Own
 - Others'
 
 
Responses
Read
Write
Create
- "Like"/"Unlike" content
 - Comment on content
 - "Share" content
 
Update
- Modify comments
 
Delete
- Delete comments
 
Activities
Read
- all activities by a single user
 - only activities of certain type by a single user (eg. CheckIn)
 - activities by a single user involving certain other user(s)
 
Write
Create
- Create new "activities" of arbitrary type
- Game results ("Jim reached level 2 in SuperGame 7")
 - Enterprise ("Evan released a package to shipping")
 - New applications
 
 
Modify
- add more participants (users involved)
 - change audience targeting
 
Delete
- Delete activities
 
Inbox
Read
- Read content posted by people in social network
- People you follow and friends
 
 - Read other activities (like, social network connection creation) by people in social network
 - Read content specifically "for" you
- Directed towards you
 - Mentions you
 - Includes you as a subject (e.g., tagged image or video)
 
 
Write
Create
Update
Delete
Technical
- Use the social data syntax we define
 - RESTful
 - Compatible with federation protocol
 
Out of scope
- Specific authentication system