URIs (again)
This is an old discussion that has not been active in a long time. Instead of commenting here, you should start a new discussion. If you think the content of this discussion is still relevant, you can link to it from your new discussion.
User data:
/users/[username]
/users/[username]/items
/users/[username]/items/[itemID]
/users/[username]/collections
/users/[username]/collections/[collectionID]
Notes and attachments are just items and don't have a separate URI pattern.
Group data:
Same as above, but with /groups/[group_name]/*
Abstract items:
/items/[abstractItemID]
User and group items will be asynchronously linked to abstract items using owl:sameAs. User/group-item-specific metadata can be represented with a separate URI, e.g., /users/[username]/items/[itemID]/data, in RDF, but /users/[username]/items/[itemID] is what the web page will be and what will be served by the API as the user item's URI.
Also, why does a group "item" have a different identity? Because it can be collaboratively edited?
There's a distinction between user item URIs and group item URIs because the items belong to specific libraries, and the separation provides for more transparent URLs, which is important for the site and for the API.
http://www.nytimes.com/2009/05/27/business/27auto.html
You wrote: My followup question: why is this relevant? Why not the below?
<http://zotero.org/users/doej/library>
z:hasItem <http://www.nytimes.com/2009/05/27/business/27auto.html> .
<http://zotero.org/groups/1234/library>
z:hasItem <http://www.nytimes.com/2009/05/27/business/27auto.html> .
E.g. link from the library (or collection) to the item, rather than the reverse. Does this still hold if my suggestion above is correct? Or rather, does this change the explanation?
I'm still a bit confused on the details of how this will work.
* If we wanted to be daring, the API server could just use zotero.org, and the GET response format (website HTML or Atom) could be determined by content negotiation, but that would present a bunch of additional technical challenges that probably aren't worth the effort. As it is, there'll be a <link rel="alternate" type="application/atom+xml" ...> available at the main URI.
My example was confusing, since I meant to have a zotero URI (the bookmark-like resource), and link to the original from there.
<http://zotero.org/users/doej/library>
z:hasItem <http://zotero.org/users/doej/1234> .
<http://zotero.org/users/doej/1234>
bm:recalls <http://www.nytimes.com/2009/05/27/business/27auto.html> .
From the RDF/OWL perspective (and really, it makes sense conceptually, so is not just an artifact of the technology), if you give something (x) an owl:sameAs relationship to something else (y), you are saying "all the properties of x apply to y (and vice versa)." So if you were, say, to merge all that data in a triple store with owl:sameAs inferencing, that data would literally get smashed together.
Is that what you intend?
Or to get practical: where do you hang the data (in the exposed RDF) about who captured/bookmarked an item, when they did it, and where it came from?
Thanks for clarifying.
(I skimmed this long thread, and did not see these, but apologize if repeated them.)
1) perhaps it might be helpful to average users changing a group name to warn them this will change the URI and allow them to revert. Also prevents mistakes...accidentally placed a typo in that field already.
2) Most systems like this allow you to change a title (e.g. <h1>title</h1> ) without changing a username/URI. Personally I would prefer an option of changing title, for several reasons, Or at least allow a subtitle of <h2> under the main title, so it can be a bit more explanatory of a title than a short, easier to type slug for URI.
3) if I understand correctly what you say with forwarding, someone changing the name around could, over time, deliberately or accidentally "squat" on major natural language permutations that describe a field.