|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (22)
View Page History{toc}
h1. Introduction
This spec is simple enough, so we put all parts (data model, spec and API) in this page.

h2. Effort
The initial version of Tags has modest effort allocation (from [RS Plan 3.6]):
- Tags spec: 1.5 p/d
- Tags spec: 1.5 p/d

Jira tasks:
- {jira:RS-541} Discussion
- {jira:RS-1175} Overall
- {jira:RS-1176} Spec
h1. Tags Data Model
h2. Source of Tags
Tags in RS come from two places:
- General thesauri.
- General thesauri.
Any thesaurus with rso:isTag=1 (marked as "t" in [Meta-Thesaurus and FR Names#Meta-thesaurus table|Meta-Thesaurus and FR Names#Meta-thesaurus table]) can be used as a source of tags
- Dedicated thesaurus.
A special RS Tags thesaurus ([http://www.researchspace.org/thesaurus/tag]). New tags are added here
h2. Applying Tags to Entities
Tags can be applied to the following RS entities (compare with [Data Basket Model#Item Types]):
- Bookmark
- Bookmark

h2. Tags Ontology
We use the [Tags Ontology|http://www.holygoat.co.uk/projects/tags/] ([tags.n3|http://www.holygoat.co.uk/owl/redwood/0.1/tags/tags.n3], which defines:
- class Tag as a subclass of skos:Concept. (This is perfect: when a skos:Concept is applied as a tag, it becomes tags:Tag.)
- class Tag as a subclass of skos:Concept. (This is perfect: when a skos:Concept is applied as a tag, it becomes tags:Tag.)

h1. Tags UI and Use Cases
Modeled after Yammer (with some simplifications):
!tags-edit.png!
!tags-edit.png!
Because of the limited effort in RS3.6, some viable cases are listed under [#Future Use Cases].
h2. RS3.6 Use Cases
h3. Tags in entity detailed view
- Every entity type should use the same Tags section
- Tags are represented as "buttons" for easier recognition
- Tags are represented as "buttons" for easier recognition

h3. Tags in entity list view
(eg Object search results list, Bookmarks list ...)
TODO: make mockups\!
- It's best to use the same Tags section as above
- Or do we want some "lighter-weight" version of it?
- Or do we want some "lighter-weight" version of it?

h3. Search by tag
- Clicking on a tag runs a search by that Tag, for that entity kind only
- In the Search dialog for every entity kind, there's a Tags section to add tags to the search
h2. Future Use Cases
- In the Search dialog for every entity kind, there's a Tags section to add tags to the search
h2. Future Use Cases
- Universal search (of any kind of object) by tag
- Apply/create tag using twitter notation in rich-text: #tag
- Tags maintenance of the dedicated thesaurus: an admin function
- Apply/create tag using twitter notation in rich-text: #tag
- Tags maintenance of the dedicated thesaurus: an admin function
-- Approval of new tags proposed by users.
-- If a tag is rejected, all its instances are deleted
-- Rename tag
-- Rename tag

Each project should be able to define a set of tags that are relevant to the research they are doing (primary tags)
- Tag cloud, in one of the following forms:
- Tag cloud, in one of the following forms:
!tag-cloud0.jpg!!tag-cloud1.jpg!!tag-cloud2.gif!!tag-cloud3.jpg|width=300! !tag-cloud0.jpg! !tag-cloud1.jpg! !tag-cloud2.gif! !tag-cloud3.jpg|width=300!
h1. Tags API
- Saves tag to OWLIM: URI saveTag(String label, URI objURI);
- Assign tag to an object: void addTagToObj(URI tagURI, URI objURI);
- Gets tags for an object: Tag[] getTags(URI uriObj, String sort, String filter, String filtVal);
- Deletes any statements that has been created for the tag: void deleteTag(URI tagUri);
- Delete only statements(IS_TAG_OF) that has been created for the tag and the object: void deleteTagFromObj(URI tagUri, URI objUri);
- autocomplete
TODO Jana & Svetoslav