
Re Search:
- Vlado: should the rso:Search node be created when the Search is put in history, or only when it's put in basket?
- Jana: History is currently stored in Nuxeo
- Vlado1: I understand, but I thought we'd be storing the history same as the bookmarks? The question is who & when will create the node
- Jana: We be better store history in RDF indeed using the same data model. Still, it should be distinguishable from bookmarks as we need them separately in UI. (We may use a second basket for the user - a history one). I think we should use rso:Search for storing queries from history as well as saved searches (when we implement these).
- Vlado2: doesn't "saved search" mean the same as "search placed in basket"? The Search node is the same, no matter whether it's in one or more Histories and/or Baskets
h2. Bookmark
Each bookmark resides in a basket and points to a target item (URL). Fields:
| *UI Field* | *Property (path)* | *Applicability and Notes* |
| | rdf:type | rso:Bookmark (fixed value) |
| Type | rso:hasTargetType, oac:hasTarget/rdf:type | All except Text Snippet. See [#Item Types] |
| Preview | rso:hasTargetPreview | Image/Image Annotation: RS image URL. Web Link: URL from [Web Preview] service |
| Created by | oac:hasBody/dcterms:creator | |
| Created on | oac:hasBody/dcterms:created | |
| Title | oac:hasBody/rso:P3_has_title | Plain text. Copied from Item and shortened to 30 chars |
| Notes | oac:hasBody/rso:P3_has_description | Rich text. No default value |
| URL (Item) | oac:hasTarget | All except Text Snippet |
| Short URL | rso:hasTargetShortURL | From [URL Shortening] service |
| Item created by | oac:hasTarget/dcterms:creator | Only for Data/Image Annotation |
| Item created on | oac:hasTarget/dcterms:created | Only for Data/Image Annotation |
Notes:
- *Applicability* describes for which item types that field is applicable, and gives extra notes
- The following fields shown on [Data Basket UI design] don't really exist: Sent by, Tags, Last updated
Processing:
- oac:hasBody/dcterms:creator&created are set from the current user and datetime when the bookmark is created.
They are preserved if the bookmark is copied to another basket.
- oac:hasTarget/dcterms:creator&created are present only for 2 item types. They alraedy exist, they are not added when the bookmark is created.
h3. Web Link Example
{noformat}
<http://www.researchspace.org/bookmark/3> a rso:Bookmark;
oac:hasTarget <http://www.wikipedia.org>;
rso:hasTargetType foaf:Document;
rso:hasTargetShortURL <http://goo.gl/KA4Ll>;
rso:hasTargetPreview <http://api.webthumbnail.org?width=512&height=384&format=png&browser=firefox&url=http://www.wikipedia.org>;
oac:hasBody <http://www.researchspace.org/bookmark/3/body>.
<http://www.wikipedia.org> a foaf:Document. ##Note1: inserted with a separate API
<http://www.researchspace.org/bookmark/3/body> a oac:Body;
dcterms:creator "username2";
dcterms:created "2012-10-08T12:34:56"^^xsd:dateTime;
rso:P3_has_title "Wikipedia";
rso:P3_has_description "Wikipedia is a world-wide collaboratively-created encyclopedia".
{noformat}
h3. Web Link Illustration
In the illustrations below, a red square indicates a pre-existing statement. All others are created when a bookmark is created.
{plantuml}
hide circle
hide empty methods
class oac_Annotation as "<http://www.researchspace.org/bookmark/3>" {
a rso:Bookmark
--
rso:hasTargetType foaf:Document
rso:hasTargetShortURL <http://goo.gl/KA4Ll>
rso:hasTargetPreview <http://api.webthumbnail.org?...wikipedia.org>
}
class oac_Body as "<http://www.researchspace.org/bookmark/3/body>" {
a oac:Body
--
dcterms:creator "username2"
dcterms:created "2012-10-08T12:34:56"^^xsd:dateTime
rso:P3_has_title "Wikipedia"
rso:P3_has_description "Wikipedia is a world-wide.."
}
class foaf_Document as "<http://www.wikipedia.org>" {
a foaf:Document
}
oac_Annotation --> oac_Body : oac:hasBody
oac_Annotation --> foaf_Document : oac:hasTarget
{plantuml}
h3. Image Annotation Example
See [Image Annotation Design#Example] (we present only the relevant part of the image annotation's data)
{noformat}
@base <http://www.researchspace.org/> .
<DT219363.tif/annot/1> a oac:ImageAnnotation;
oac:hasBody <DT219363.tif/annot/1/body>;
oac:hasTarget <DT219363.tif/annot/1/target>.
<DT219363.tif/annot/1/target> a oac:ConstrainedTarget;
oac:constrains <DT219363.tif#xywh=1000,900,250,250>.
<DT219363.tif#xywh=1000,900,250,250>
dcterms:isPartOf <DT219363.tif>.
<DT219363.tif> a crm:E38_Image.
<DT219363.tif/annot/1/body> a oac:Body;
dcterms:creator "username1";
dcterms:created "2002-03-15T12:34:56"^^xsd:dateTime.
<bookmark/4> a rso:Bookmark;
oac:hasTarget <DT219363.tif/annot/1>;
rso:hasTargetType oac:ImageAnnotation;
rso:hasTargetShortURL <http://goo.gl/RdPAb>;
rso:hasTargetPreview <DT219363.tif>;
oac:hasBody <bookmark/4/body>.
<bookmark/4/body> a oac:Body;
dcterms:creator "username2";
dcterms:created "2012-10-08T12:34:56"^^xsd:dateTime;
rso:P3_has_title "The nose is large and wrinkled"; # copied from the Image Annotation
rso:P3_has_description "Some equally silly description".
{noformat}
Notes:
- We omit [http://www.researchspace.org/] from the URLs by using @base.
- The hasTargetPreview URL should be resolvable\! It's given above as <DT219363.tif>, but an appropriate thumbnail-size IIPserver URL should be used instead
- dcterms:creator&created from <DT219363.tif/annot/1/body> are displayed in the Bookmark, although they are not stored as part of the bookmark
h3. Image Annotation Illustration
- The illustration below shows "DT219363:tif" instead of "DT219363.tif" because of limitations in plantuml (treats "." as a package name separator)
- It's made with plantuml.jar standalone because of incomplete installation: {jira:OA-1608}
!ImageAnnotation.png!
h1. Discussion
Dominic:
- The specification is written specific according to existing tools. However, the way that the data basket works should be generic for existing and new tools to come.
- The production version of ResearchSpace will require an API that means that all tools that adhere to it can be accessed and inetgrated with the databasket tool. This means that there must be a consistent type of URI / URL with tool parameter so that tools can be launched and placed in the appropriate state.
- These links should be ones that could be used as a normal web link in a browser (RESTful) so that the links could be used outside the databasket using a simple browser address box.
- To this end the specification should also have a technical specification outlining the way in which the databasket would interact with the ResearchSpace environment
Vlado:
- I agree that bookmarking should be more in the style of using "browser address box". However, our URIs are currently not resolvable, see [RS URLs and URIs].
Adding a new item type ("tool") to the basket is a matter of adding it to the table above, and to frontend handling code (different types have somewhat different handling behavior).
- For full extensibility the Basket should be able to figure out the item's type from the item URI alone. That is the case above, except for Web Link (for which we need to add a type statement upon adding to basket).
-- I've used "a foaf:Document" above (that's the range of foaf:homePage)
-- OA recommends using "a dcmitype:Text; dc:format "text/html" which I don't find very nice (and may change)