<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.w3.org/2012/ldp/wiki/skins/common/feed.css?207"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Linked Data Platform - User contributions [en]</title>
		<link>http://www.w3.org/2012/ldp/wiki/Special:Contributions/Sbattle2</link>
		<description>From Linked Data Platform</description>
		<language>en</language>
		<generator>MediaWiki 1.15.5</generator>
		<lastBuildDate>Wed, 19 Jun 2013 00:49:03 GMT</lastBuildDate>
		<item>
			<title>F2F3</title>
			<link>http://www.w3.org/2012/ldp/wiki/F2F3</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- '''MINUTES: [http://www.w3.org/2012/ldp/meeting/2013-06-18 Day 1] [http://www.w3.org/2012/ldp/meeting/2013-06-19 Day 2] [http://www.w3.org/2012/ldp/meeting/2013-06-20 Day 3]''' --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Third Face to Face meeting =&lt;br /&gt;
&lt;br /&gt;
'''CONFIRMED:'''&lt;br /&gt;
Per the [http://www.w3.org/2012/ldp/meeting/2012-12-10#resolution_2 December 10, 2012 proposal], confirmed on [http://www.w3.org/2012/ldp/meeting/2013-04-08#resolution_2 April 8, 2013], this face to face will be held at the Center for Open Middleware in Madrid on June 18-20, 2013 (3 days).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
Below is the list of expected participants.&lt;br /&gt;
&lt;br /&gt;
==== People planning to be in Madrid: ====&lt;br /&gt;
# Arnaud Le Hors&lt;br /&gt;
# Raúl García Castro&lt;br /&gt;
# Steve Speicher&lt;br /&gt;
# Nandana Mihindukulasooriya&lt;br /&gt;
# [[User:Cburleso|Cody Burleson]]&lt;br /&gt;
# Roger Menday&lt;br /&gt;
# John Arwe&lt;br /&gt;
&lt;br /&gt;
==== People planning to participate remotely: ====&lt;br /&gt;
# [[Users:Tthibodeau|Ted Thibodeau]]&lt;br /&gt;
# [[User:Bvanleeu3| Bart van Leeuwen]] for at least 18 and 20  ( Maybe in madrid as well )&lt;br /&gt;
# Steve Battle&lt;br /&gt;
# &amp;lt;change this&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== People sending regrets: ====&lt;br /&gt;
# &amp;lt;change this&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Venue ==&lt;br /&gt;
&lt;br /&gt;
The meeting will be held at the [http://www.centeropenmiddleware.com Center for Open Middleware].&lt;br /&gt;
&lt;br /&gt;
The Center for Open Middleware is located near Madrid (there are buses &lt;br /&gt;
from different places in Madrid and the metro can also be used but &lt;br /&gt;
requires walking a bit):&lt;br /&gt;
&lt;br /&gt;
[https://maps.google.es/maps?ie=UTF8&amp;amp;cid=2071452775163188547&amp;amp;q=Center+for+Open+Middleware&amp;amp;gl=ES&amp;amp;hl=es&amp;amp;t=m&amp;amp;source=embed&amp;amp;ll=40.406904,-3.833349&amp;amp;spn=0.006813,0.018915&amp;amp;z=17&amp;amp;vpsrc=6&amp;amp;iwloc=A Google Map]&lt;br /&gt;
&lt;br /&gt;
More information about the [http://www.centeropenmiddleware.com/home/contact location, how to get to the COM premises, and suggested list of hotels].&lt;br /&gt;
&lt;br /&gt;
== Remote Participation ==&lt;br /&gt;
&lt;br /&gt;
'''TO BE CONFIRMED'''&lt;br /&gt;
A teleconference bridge has been reserved to provide for remote participation.&lt;br /&gt;
[http://www.timeanddate.com/worldclock/fixedtime.html?month=06&amp;amp;day=18&amp;amp;year=2013&amp;amp;hour=06&amp;amp;min=30&amp;amp;sec=0&amp;amp;p1=0 06:30-15:00 UTC] (8:30am-5:00pm Madrid local) - 8 ports&lt;br /&gt;
* Dial +1-617-761-6200 or sip:zakim@voip.w3.org then conference code LDPWG (53794) followed by #&lt;br /&gt;
* As usual we will also be using [http://www.w3.org/Project/IRC/ IRC] channel: [irc://irc.w3.org:6665/#ldp #ldp].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
* Linked Data Platform specification&lt;br /&gt;
** Discuss and close as many open issues as possible&lt;br /&gt;
** Identify any remaining issues&lt;br /&gt;
** Identify steps to Last Call Working Draft (LCWD) (scheduled for 2013-05)&lt;br /&gt;
* Use Cases &amp;amp; Requirements document&lt;br /&gt;
** Identify steps to WD2&lt;br /&gt;
* Test Suite and/or Validator&lt;br /&gt;
** Identify editors&lt;br /&gt;
** Identify steps to get it complete&lt;br /&gt;
* Access Control WG Note&lt;br /&gt;
** Identify editors&lt;br /&gt;
** Identify steps to FPWD&lt;br /&gt;
* Deployment Guide&lt;br /&gt;
** Identify/confirm editors&lt;br /&gt;
** Identify steps to FPWD&lt;br /&gt;
* Primer&lt;br /&gt;
** Identify editors&lt;br /&gt;
** Identify steps to FPWD&lt;br /&gt;
* Next Face to Face Meeting&lt;br /&gt;
** Identify possible dates and venues+hosts (scheduled for 2013-06)&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/hg/ldp.html LDP Editor's draft] [http://www.w3.org/TR/2013/WD-ldp-20130307/ LDP WD2]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/hg/ldp-ucr.html UC&amp;amp;R Editor's draft]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/wiki/AccessControl Access Control wiki]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/wiki/Testing Testing wiki]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/wiki/Deployment_Guide Deployment Guide wiki]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/track/issues Issues]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/charter#deliverables Deliverables per our charter]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/charter#schedule Schedule per our charter]&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
=== Day 1 - Tuesday June 18 ===&lt;br /&gt;
&lt;br /&gt;
; 09.00-09.30&lt;br /&gt;
: Welcome, logistics, short intro round, recap of meeting goals, agenda amendments.&lt;br /&gt;
; 9.30-10.30&lt;br /&gt;
: Use Cases &amp;amp; Requirements ([http://www.w3.org/2012/ldp/hg/ldp-ucr.html Editor's draft]) - status, steps towards WD2&lt;br /&gt;
; 10.30-11.00&lt;br /&gt;
: COFFEE/TEA BREAK&lt;br /&gt;
; 11.00-12.00&lt;br /&gt;
: LDP specification ([http://www.w3.org/2012/ldp/hg/ldp.html Editor's draft], [http://www.w3.org/TR/2013/WD-ldp-20130307/ WD2]) - steps towards LCWD, review of open issues, identify MUST-HAVEs&lt;br /&gt;
; 12.00-13.00&lt;br /&gt;
: LUNCH&lt;br /&gt;
; 13.00-13.30&lt;br /&gt;
: Primer - steps towards FWD&lt;br /&gt;
; 13.30-15.00&lt;br /&gt;
: LDP specification - pending issues&lt;br /&gt;
; 15.00-15.30&lt;br /&gt;
: COFFEE/TEA BREAK&lt;br /&gt;
; 15.30-16.30&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 16.30-17.00&lt;br /&gt;
: Day 1 recap, adjustments to agenda for day 2, dinner plans&lt;br /&gt;
; 18.30-20.30&lt;br /&gt;
: WG Dinner?&lt;br /&gt;
&lt;br /&gt;
=== Day 2 - Wednesday June 19 ===&lt;br /&gt;
&lt;br /&gt;
; 09.00-09.30&lt;br /&gt;
: Breakout sessions set up&lt;br /&gt;
; 09.30-10.00&lt;br /&gt;
: Access Control WG Note - steps towards FWD&lt;br /&gt;
; 10.00-10.30&lt;br /&gt;
: Deployment Guide - steps towards FWD&lt;br /&gt;
; 10.30-11.00&lt;br /&gt;
: COFFEE/TEA BREAK&lt;br /&gt;
; 11.00-11.30&lt;br /&gt;
: Test Suite &amp;amp; Validator - steps to completion&lt;br /&gt;
; 11.30-12.00&lt;br /&gt;
: Break out sessions&lt;br /&gt;
; 12.00-13.00&lt;br /&gt;
: LUNCH&lt;br /&gt;
; 13.00-15.00&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 15.00-15.30&lt;br /&gt;
: COFFEE/TEA BREAK&lt;br /&gt;
; 15.30-16.30&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 16.30-17.00&lt;br /&gt;
: Day 2 recap, adjustments to agenda for day 3, dinner plans&lt;br /&gt;
; 18.30-20.30&lt;br /&gt;
: WG Dinner?&lt;br /&gt;
&lt;br /&gt;
=== Day 3 - Thursday June 20 ===&lt;br /&gt;
&lt;br /&gt;
; 09.00-09.30&lt;br /&gt;
: Next Face to Face Meeting: when and where?&lt;br /&gt;
; 09.30-10.30&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 10.30-11.00&lt;br /&gt;
: COFFEE/TEA BREAK&lt;br /&gt;
; 11.00-12.00&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 12.00-13.00&lt;br /&gt;
: LUNCH&lt;br /&gt;
; 13.00-15.30&lt;br /&gt;
: LDP specification - pending issues continues&lt;br /&gt;
; 15.30-16.00&lt;br /&gt;
: Wrap-up&lt;/div&gt;</description>
			<pubDate>Mon, 29 Apr 2013 14:10:37 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:F2F3</comments>		</item>
		<item>
			<title>F2F2</title>
			<link>http://www.w3.org/2012/ldp/wiki/F2F2</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* People planning to be in Boston: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Second Face to Face meeting =&lt;br /&gt;
&lt;br /&gt;
In accordance with our [http://www.w3.org/2012/ldp/charter#schedule charter] a Face to Face meeting is expected in March 2013.&lt;br /&gt;
&lt;br /&gt;
Per the [http://www.w3.org/2012/ldp/meeting/2012-12-10#resolution_2 December 10, 2012 resolution], confirmed on [http://www.w3.org/2012/ldp/meeting/2013-01-07#resolution_2 January 7, 2013], this face to face will be held at MIT in Boston on March 13-15 (3 days).&lt;br /&gt;
&lt;br /&gt;
'''If you can sponsor the event with some financial support to cover catering and/or dinner, [mailto:lehors@us.ibm.com,Erik.Wilde@emc.com,eric@w3.org,yves@w3.org?Subject=LDP%20F2F2%20Sponsoring please let us know]!'''&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
Below is the list of expected participants.&lt;br /&gt;
&lt;br /&gt;
==== People planning to be in Boston: ====&lt;br /&gt;
# Arnaud Le Hors&lt;br /&gt;
# Ashok Malhotra&lt;br /&gt;
# Sandro Hawke&lt;br /&gt;
# Steve Speicher&lt;br /&gt;
# John Arwe&lt;br /&gt;
# [[User:Tthibodeau|Ted Thibodeau]]&lt;br /&gt;
# Roger Menday&lt;br /&gt;
# Richard Cyganiak (pending travel approval)&lt;br /&gt;
# [https://www.w3.org/users/36320 David Wood]&lt;br /&gt;
# Steve Battle&lt;br /&gt;
&lt;br /&gt;
==== People planning to participate remotely: ====&lt;br /&gt;
# Erik Wilde&lt;br /&gt;
# [[User:Fsergio|Sergio Fernández]]&lt;br /&gt;
&lt;br /&gt;
==== People sending regrets: ====&lt;br /&gt;
# [[User:Bvanleeu3|Bart van Leeuwen]]&lt;br /&gt;
&lt;br /&gt;
== Venue ==&lt;br /&gt;
&lt;br /&gt;
The meeting will be held at &lt;br /&gt;
&lt;br /&gt;
[http://www.csail.mit.edu/news/stata Ray and Maria Stata Center], MIT&amp;lt;br /&amp;gt;&lt;br /&gt;
Building 32&amp;lt;br /&amp;gt;&lt;br /&gt;
Gates Tower, G449&amp;lt;br /&amp;gt;&lt;br /&gt;
[http://whereis.mit.edu/map-jpg?mapterms=32&amp;amp;mapsearch=go 32 Vassar Street]&amp;lt;br /&amp;gt;&lt;br /&gt;
Cambridge, MA 02139&lt;br /&gt;
&lt;br /&gt;
Room TBD.&lt;br /&gt;
&lt;br /&gt;
We will provide coffee, lunch, refreshments during the breaks, and dinner. There will be wireless Internet access. [ '''Note: To be confirmed''' ]&lt;br /&gt;
&lt;br /&gt;
=== A few notes about the building===&lt;br /&gt;
&lt;br /&gt;
The Stata Center can be a bit confusing as there are two towers: Gates and Dreyfoos. This workshop will be held in the Gates Tower, the entrance to which is on the corner of Vassar and Main Streets.&lt;br /&gt;
&lt;br /&gt;
The building is on an automatic locking system. Doors to the elevator foyers on the 4th floor will be opened for the workshop but the stairwells automatically lock at 5pm (with the only unlocked exit door on the first floor).&lt;br /&gt;
&lt;br /&gt;
Please be careful of your belongings even when stepping away even for a short while. The building is open to the public and there have, unfortunately, been thefts.&lt;br /&gt;
&lt;br /&gt;
=== How to get to the Stata Center ===&lt;br /&gt;
&lt;br /&gt;
The MIT Computer Science and Artificial Intelligence Laboratory ([http://www.csail.mit.edu/ CSAIL]) is [http://whereis.mit.edu/map-jpg?mapterms=32&amp;amp;mapsearch=go located] at the northeastern edge of the MIT campus on Vassar Street near the intersection with Main Street.&lt;br /&gt;
&lt;br /&gt;
Boston [http://www.massport.com/logan/ Logan International Airport] is the closest international airport to MIT. The travel time between the airport and hotels in Cambridge will vary between 30 minutes to one hour depending on traffic conditions. Taxis from the airport are plentiful and fares will range around $30-40.&lt;br /&gt;
&lt;br /&gt;
The Stata Center is located a few blocks away from the [http://www.mbta.com/ MBTA] Red line Kendall/MIT stop ([http://www.csail.mit.edu/node/95 directions]). We strongly suggest that visitors use public transportation. Alternately, several of the the hotels provide shuttle service to MIT. Information on parking is located below.&lt;br /&gt;
&lt;br /&gt;
=== Parking ===&lt;br /&gt;
&lt;br /&gt;
The [http://web.mit.edu/facilities/transportation/index.html MIT Parking and Transportation Office] does not offer pay lots for visitors. They note: &amp;quot;Because the number of visitor parking spaces on campus is limited, it may not be possible to accommodate every visitor who wishes to park at MIT.... We strongly recommend using public transportation when visiting the MIT campus.&amp;quot; There is hourly on-street parking available around the Stata Center though Cambridge is a busy area and parking may be difficult to find, especially in inclement weather.&lt;br /&gt;
&lt;br /&gt;
Information on paid parking lots near campus can be found on MIT's [http://web.mit.edu/facilities/transportation/parking/visitors/public_parking.html parking site].&lt;br /&gt;
&lt;br /&gt;
=== Hotels ===&lt;br /&gt;
&lt;br /&gt;
MIT also has a list of [http://web.mit.edu/visit/hotels.html nearby hotels].&lt;br /&gt;
&lt;br /&gt;
== Remote Participation ==&lt;br /&gt;
&lt;br /&gt;
'''Note: To be confirmed''' A teleconference bridge has been reserved to provide for remote participation.&lt;br /&gt;
[http://www.timeanddate.com/worldclock/fixedtime.html?month=11&amp;amp;day=01&amp;amp;year=2012&amp;amp;hour=06&amp;amp;min=30&amp;amp;sec=0&amp;amp;p1=0 06:30-16:00 UTC] (2:30am-12:00pm Boston local) - 9 ports&lt;br /&gt;
* Dial +1-617-761-6200 or sip:zakim@voip.w3.org then conference code LDPWG (53794) followed by #&lt;br /&gt;
* As usual we will also be using [http://www.w3.org/Project/IRC/ IRC] channel: [irc://irc.w3.org:6665/#ldp #ldp].&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/hg/ldp.html Linked Data Platform spec]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements Use Cases &amp;amp; Requirements]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/wiki/Examples Examples]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/track/issues Issues]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/charter#deliverables Deliverables per our charter]&lt;br /&gt;
&lt;br /&gt;
* [http://www.w3.org/2012/ldp/charter#schedule Schedule per our charter]&lt;br /&gt;
&lt;br /&gt;
* [http://lists.w3.org/Archives/Public/public-ldp-wg/2012Oct/0195.html Andy's list of topics of special interest]&lt;br /&gt;
&lt;br /&gt;
== Agenda ==&lt;br /&gt;
&lt;br /&gt;
* TBD&lt;/div&gt;</description>
			<pubDate>Mon, 21 Jan 2013 15:01:59 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:F2F2</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Status of this Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made every effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.&lt;br /&gt;
&lt;br /&gt;
Following feedback from the face-to-face, the use-cases are captured in a narrative style that describes a behaviour, or set of behaviours drawn from user-stories. They are embellished with concrete examples drawn from representative user-stories. The aim throughout has been to avoid details of protocol (specifically the HTTP protocol), and use of any specific vocabulary that might be introduced by the LDP specification.&lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Issues before Nov 26th? will be included into FPWD&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' lists non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary]. It also lists functional requirements that stem from use-cases. It is also possible at this stage to explicitly identify some use-cases as non-requirements.&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:45:51 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Status of this Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made every effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.&lt;br /&gt;
&lt;br /&gt;
Following feedback from the face-to-face, the use-cases are captured in a narrative style that describes a behaviour, or set of behaviours drawn from the user-stories. They are embellished with concrete examples drawn from representative user-stories. The aim throughout has been to avoid details of protocol (specifically the HTTP protocol), and use of any specific vocabulary that might be introduced by the LDP specification.&lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Issues before Nov 26th? will be included into FPWD&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' lists non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary]. It also lists functional requirements that stem from use-cases. It is also possible at this stage to explicitly identify some use-cases as non-requirements.&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:40:34 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Organization of this Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made every effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.  &lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Issues before Nov 26th? will be included into FPWD&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' lists non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary]. It also lists functional requirements that stem from use-cases. It is also possible at this stage to explicitly identify some use-cases as non-requirements.&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:31:06 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Status of this Document */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made every effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.  &lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Issues before Nov 26th? will be included into FPWD&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:27:54 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Timetable */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made their best effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.  &lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Issues before Nov 26th? will be included into FPWD&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:27:26 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Steps to Complete */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Status of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is currently under review pending release as a First Public Working Draft. While the editors have made their best effort to identify a set of use-cases that are both evidenced in user-stories and in-scope of the charter, the document may yet be missing some key unidentified use-cases, or indeed, may include use-cases that ought to be removed. Furthermore, the coarse grouping of use-cases to avoid CRUDdy operations may not be to people's taste and is open to challenge.  &lt;br /&gt;
&lt;br /&gt;
===Timetable===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:25:39 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* To Be Done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** &amp;lt;strike&amp;gt;[http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (PENDING REVIEW)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (PENDING REVIEW)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux, Steve Speicher.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 17:10:54 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* To Be Done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for the management of Cloud infrastructure (IaaS). Infrastructure consists of Systems, Computers, Networks, Discs, etc. The overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc), complemented with crossing links (e.g. multiple Machines connected to a Network). &lt;br /&gt;
&lt;br /&gt;
The IaaS scenario makes specific requirements on lifecycle management and discovery, handling non-instant changes, history capture and query:&lt;br /&gt;
&lt;br /&gt;
* Many aspects of Cloud infrastructure have associated lifecycle, e.g. a Computer can be transitioned between Running and Shutdown. This should be manageable through the API, which should include how a client discovers dynamic lifecycle options and thus help steering through an application. &lt;br /&gt;
* It is often the case that attaining a new lifecycle state is not instantaneous. Clients require a universal mechanism for monitoring such changes. &lt;br /&gt;
* A facility to retrieve all events in the lifecycle of a resource can be useful. &lt;br /&gt;
* Query provides the means to interrogate the resources behind the API, as well as finding new entry points into the application. &lt;br /&gt;
&lt;br /&gt;
Infrastructure management may be viewed as the manipulation of the underlying graph of resources.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 14:04:54 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* To Be Done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Check hyperlinks&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:21:24 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Check hyperlinks&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:20:46 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Functional Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Check hyperlinks&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
'''TODO: Refine these based on use case and scenario updates'''&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Access media resources, from [[#UC8: Manage media resources]]&lt;br /&gt;
# Media-resource attachments, from  [[#UC8: Manage media resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:20:26 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* UC8: Manage media resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Check hyperlinks&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: access media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
'''TODO: Refine these based on use case and scenario updates'''&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Add non-RDF resources, from  [[#UC8: Manage non-RDF Resources]]&lt;br /&gt;
# Add multiple non-RDF resources, from  [[#UC8: Manage non-RDF Resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:19:38 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Examples</title>
			<link>http://www.w3.org/2012/ldp/wiki/Examples</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Hosting POSTed Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Other User Stories =&lt;br /&gt;
&lt;br /&gt;
=== RESTful Interactions ===&lt;br /&gt;
&lt;br /&gt;
REST's main focus is on building interactions around the exchange transfer between clients and servers. For this to work, it must be possible to define and communicate expectations for certain state transfers. [https://gist.github.com/2927644 In this gist] the discussion centers around book orders, but pretty much any interaction in a SOA context could be used: some interaction requires a specific state transfer between client and server, and there must be a way how this state transfer is &lt;br /&gt;
&lt;br /&gt;
* captured in the context of a bigger interaction flow (what a media type defines on the web), and&lt;br /&gt;
* expressed by means of expectations/constraints that apply to a specific representations, so that a server can validate against those expectations/constraints, and only accept those representations which satisfy the expectations/constraints (what often is done with a combination of schemas and prose in the context of a media type's conversation).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;[http://dret.typepad.com/dretblog/2012/07/what-are-linked-data-services.html What Are Linked Data Services?]&amp;quot; describes these requirements as the &amp;quot;service surface&amp;quot; that needs to be defined by any platform that is providing some sort of services. This becomes particularly important in any kind of loosely coupled scenario, where servers/services cannot trust clients to always do the &amp;quot;right thing&amp;quot; or &amp;quot;behave cooperatively&amp;quot;. instead, the platform must provide support so that misbehaving and adversarial clients can be dealt with effectively, and that means that the &amp;quot;service contract&amp;quot; needs to define the service surface based on the state representations that are acceptable in the context of the use case that is addressed by the service, so that anything else can be easily rejected.&lt;br /&gt;
&lt;br /&gt;
=== Hosting POSTed Resources ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://dev.example/bugs&amp;gt; is a factory resource for creating new bugs (well, documenting existing bugs). It accepts &amp;lt;Bug&amp;gt;s of the form:&lt;br /&gt;
&lt;br /&gt;
  _:newBug a &amp;lt;Bug&amp;gt; ;&lt;br /&gt;
           &amp;lt;product&amp;gt; &amp;lt;http://products.example.com/gun&amp;gt; ;&lt;br /&gt;
           &amp;lt;issueText&amp;gt; &amp;quot;kills people&amp;quot; ;&lt;br /&gt;
           dc:author &amp;quot;Bob&amp;quot; ;&lt;br /&gt;
           dc:date &amp;quot;2012-07-04T23:54&amp;quot;^^xsd:dateTime&lt;br /&gt;
&lt;br /&gt;
By this definition &amp;quot;hosting&amp;quot; means changing '''_:newBug''' to '''&amp;lt;http://dev.example/bug/7&amp;gt;'''. LDP doesn't provide any guidance around that.&lt;br /&gt;
&lt;br /&gt;
===Constrained Devices===&lt;br /&gt;
&lt;br /&gt;
For a detailed description of [http://www.w3.org/2012/ldp/wiki/images/2/2e/Application-scenarios-constrained-devices.pdf application scenarios for constrained devices] see a separate document kindly compiled by [http://www.deri.ie/about/team/member/myriam_leggieri/ Myriam Leggieri].&lt;br /&gt;
&lt;br /&gt;
= Linked Data Platform Examples =&lt;br /&gt;
&lt;br /&gt;
In the scenarios that follow, there are a number of commonly used namespace prefixes:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix bp: &amp;lt;http://example.com/ns/basicProfile#&amp;gt;.&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt;.&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix wdrs: &amp;lt;http://www.w3.org/2007/05/powder-s#&amp;gt;.&lt;br /&gt;
@prefix skos &amp;lt;http://www.w3.org/2004/02/skos/core#&amp;gt;.&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/#&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt;.&lt;br /&gt;
@prefix eg: &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Create a resource within a container using POST/PUT''' ===&lt;br /&gt;
An HTTP POST to the target container creates a new resource within that container, returning the URI of the new resource. A subsequent PUT to this URI adds content. This approach is useful for clients that cannot use the null relative URI form.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP POST on a URI identifying an LDP Container. &lt;br /&gt;
# The server creates a new resource.&lt;br /&gt;
# If the creation succeeded, the server answers with 201 Created and the location of the created resource.&lt;br /&gt;
# The client requests an HTTP PUT on the new resource URI including the RDF content and appropriate Content-Type.&lt;br /&gt;
# The server answers 204 No Content to confirm the PUT.&lt;br /&gt;
&lt;br /&gt;
==Get RDF representation of an information resource (UC-LDPR1-S1)==&lt;br /&gt;
In the basic case, the requested resource is an information resource:&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying an LDP resource, with an accept header requesting information in the required RDF format.&lt;br /&gt;
# The server answers with 200 OK and returns an RDF representation of the resource in the requested format.&lt;br /&gt;
&lt;br /&gt;
Based on [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], a user should be able to read contact details so that they are able to interact with a contact. An LDP  holds social contact information about Alice. In this example the contact details make no distinction between resources and the people they describe.&lt;br /&gt;
Resource &amp;lt;nowiki&amp;gt;http://example.com/people/Alice&amp;lt;/nowiki&amp;gt; delineates the following RDF model. A Request for this resource returns an RDF representation in the desired format which could be Turtle or another RDF serialisation.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A data source holds social contact information about Alice and Bob, and the client requests contact details for Alice. In this example the contact details make no distinction between the information resources and the people they describe.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob.&lt;br /&gt;
&lt;br /&gt;
:bob a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Bob&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:bob@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resource identified by &amp;lt;http://example.com/people/alice&amp;gt; is requested below:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response describes Alice, but not Bob :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Get RDF description of a non-information resource==&lt;br /&gt;
&lt;br /&gt;
In the case that the URI is unresolvable, the LDP server may redirect the URI to a resolvable LDPR.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying a non-information resource.&lt;br /&gt;
# The server answers with 303 See Other, redirecting the client to an LDPR.&lt;br /&gt;
# The client requests an HTTP GET on the LDPR, with an accept header requesting information in the required RDF format.&lt;br /&gt;
# The server answers with 200 OK and the requested RDF representation.&lt;br /&gt;
&lt;br /&gt;
The data source holds social contact information about Alice and Bob, and the client requests contact details for Alice. The &amp;lt;nowiki&amp;gt;wdrs:describedby&amp;lt;/nowiki&amp;gt; relationship introduces a distinction between things and their descriptions.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob;&lt;br /&gt;
   wdrs:describedby :alice.rdf.&lt;br /&gt;
&lt;br /&gt;
:bob a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Bob&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:bob@example.com&amp;gt;;&lt;br /&gt;
   wdrs:describedby :bob.rdf.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case, the &amp;lt;http://example.com/people/alice&amp;gt; resource is redirected to it's descriptive URI, &amp;lt;http://example.com/people/alice.rdf&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first response is the redirection to &amp;lt;http://example.com/people/alice.rdf&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 303 See Other&lt;br /&gt;
Location: http://example.com/people/alice.rdf&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client requests a GET of the returned location:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice.rdf HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response includes information about &amp;lt;http://example.com/people/alice.rdf&amp;gt; ''and anything it describes''.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob;&lt;br /&gt;
   wdrs:describedby :alice.rdf.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Replace the current resource in full using PUT (UC-LDPR2-S1) ==&lt;br /&gt;
A data source holds social contact information about Alice, and the client wishes to update the email contact details for her.&lt;br /&gt;
&lt;br /&gt;
Replace the entire persistent state of the identified resource with the entity representation in the body of the request. The scenario covers a typical sequence of events where the client first GETs the current state prior to the update.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying an LDP Resource, with an accept header requesting information in the required RDF format.&lt;br /&gt;
# The server answers with 200 OK and returns the requested representation, describing the resource in the requested format, including the current entity tag.&lt;br /&gt;
# The client requests an HTTP PUT on the same URI with RDF representing the updated resource, including an If-Match header with the last known entity tag, and the appropriate Content-Type.&lt;br /&gt;
# If no entity tag is supplied in the request, the server should respond with 409 Conflict.&lt;br /&gt;
# If the update succeeds, the server responds with 204 No Content.&lt;br /&gt;
# Otherwise, the server responds with 412 Precondition Failed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client performs an initial HTTP GET to establish the current state of the resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As well as the RDF state, the client saves the entity tag.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resource identified by &amp;lt;http://example.com/people/alice&amp;gt; is updated below, including the current entity tag:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PUT http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.org&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms the update:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 204 No Content &lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Selective update of the resource using PATCH (UC-LDPR2-S2) ==&lt;br /&gt;
A data source holds social contact information about Alice, and the client wishes to update the email contact details for her.&lt;br /&gt;
The client may perform an HTTP GET to get the current state.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response describes social contact information about Alice.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resource identified by &amp;lt;http://example.com/people/alice&amp;gt; is updated below, including the current entity tag. The PATCH is defined here using a ''changeset''. see &amp;lt;http://docs.api.talis.com/getting-started/changesets&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :alice ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update mbox&amp;quot; ;&lt;br /&gt;
  cs:removal [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :alice ;&lt;br /&gt;
    rdf:predicate foaf:mbox ;&lt;br /&gt;
    rdf:object &amp;lt;mailto:alice@example.com&amp;gt; .&lt;br /&gt;
  ] ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :alice ;&lt;br /&gt;
    rdf:predicate foaf:mbox ;&lt;br /&gt;
    rdf:object &amp;lt;mailto:alice@example.org&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms the update, returning the modified resource description.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 204 No Content &lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
== Retrieve resource entity tag using HEAD (UC-LDPR3-S1) ==&lt;br /&gt;
The client requests an HTTP HEAD to establish the current state of the resource.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP HEAD of a URI identifying an LDP Resource.&lt;br /&gt;
# The server answers with the current entity tag for the resource, and allowed operations.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client requests an HTTP HEAD to establish the current state of the resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HEAD http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response includes the entity tag and allowed operations.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 204 No Content&lt;br /&gt;
Allow: GET, PUT, POST, HEAD, PATCH, DELETE &lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Conditional GET request (UC-LDPR3-S2)==&lt;br /&gt;
The client performs a conditional HTTP GET on a resource using 'If-none-Match'. If the RDF representation hasn't changed the response is a 304 'Not Modified' with no entity body. &lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP HEAD on a URI identifying an LDP Resource.&lt;br /&gt;
# If the resource hasn't changed, the server answers with HTTP response code 304 'Not Modified' and returns the current entity tag for the resource.&lt;br /&gt;
# Otherwise, the server returns 200 OK, the RDF representation and current entity tag.&lt;br /&gt;
&lt;br /&gt;
Determine if the contact for Alice has changed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client requests an HTTP GET to determine if it has changed.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
If-none-Match: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming the resource is unchanged, the response includes the entity tag.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 304 Not Modified&lt;br /&gt;
ETag: W/&amp;quot;123456789&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Delete resource (UC-LDPR4-S1) ==&lt;br /&gt;
The client requests an HTTP DELETE of a resource.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In practice, sensitive data will be subject to access control as described in user-story [[#LDP and Authentication/Authorization| LDP and Authentication/Authorization]]. In this scenario authentication is based on [http://www.w3.org/wiki/WebAccessControl Web Access Control].  The user authenticates to the LDP server using [http://www.w3.org/wiki/Foaf%2Bssl FOAF+SSL], returning a [http://www.w3.org/wiki/WebID WebID] - a URI identifying the user. We assume the LDP holds an RDF Access Control List (ACL) expressed in the [http://www.w3.org/ns/auth/acl Basic Access Control ontology]. This is used to determine whether or not the user is authorized to perform the operation, in this case a deletion (a write operation). In the ACL fragment below the agent identified as &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/card#i&amp;gt;&amp;lt;/nowiki&amp;gt; is permitted access to delete &amp;lt;nowiki&amp;gt;&amp;lt;resourceX&amp;gt;&amp;lt;/nowiki&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix acl: &amp;lt;http://www.w3.org/ns/auth/acl#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
[acl:accessTo &amp;lt;resourceX&amp;gt;; acl:mode acl:Read, acl:Write; acl:agent &amp;lt;http://example.com/card#i&amp;gt;].&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP DELETE on a URI identifying an LDP Resource.&lt;br /&gt;
# If the request includes an 'If-Match' header then compare this entity tag with the current entity tag.&lt;br /&gt;
# If the resource is successfully deleted, the server answers 204 No Content, confirming deletion.&lt;br /&gt;
# Otherwise answer with 412 Precondition Failed. &lt;br /&gt;
&lt;br /&gt;
As HTTP DELETE is idempotent it is not an error to delete a resource that has already been deleted.&lt;br /&gt;
&lt;br /&gt;
Delete the contact for Alice.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client requests an HTTP DELETE.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
DELETE http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Assuming the resource is successfully deleted, the response includes the entity tag.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 204 No Content&lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create a new resource using PUT (UC-LDPR5-S1) ==&lt;br /&gt;
Create a new resource based on the RDF in the request body using PUT.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP PUT at the target URI with RDF representing the new resource, with the appropriate Content-Type.&lt;br /&gt;
# If the creation succeeds, the server responds with 201 Created and the entity tag.&lt;br /&gt;
# Otherwise, the server responds with 409 Conflict.&lt;br /&gt;
&lt;br /&gt;
The client wishes to create a new contact for Carol.&lt;br /&gt;
&lt;br /&gt;
The client performs an initial HTTP GET to establish the current state of the resource. We assume that there is no pre-existing resource at the address.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PUT http://example.com/people/carol HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Carol&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:carol@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The confirmation includes the entity tag.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 201 Created&lt;br /&gt;
ETag: W/&amp;quot;987654321&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create a new resource using PATCH (UC-LDPR5-S2) ==&lt;br /&gt;
Create a new resource using PATCH to insert the relevant triples.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP PATCH on the target URI with RDF representing the new resource, and the appropriate Content-Type.&lt;br /&gt;
# If the creation succeeds, the server responds with 201 Created and the entity tag.&lt;br /&gt;
# Otherwise, the server responds with 409 Conflict.&lt;br /&gt;
&lt;br /&gt;
== List contained resources but not their properties (UC-LDPC1-S1) ==&lt;br /&gt;
In this scenario, the server returns references to the full membership of the container in a single request. It is implementation specific whether or not the server returns any additional information about each member.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying an LDP Container. The accept header specifies the required media type for the returned RDF serialization.&lt;br /&gt;
# If the size of the container is too large, the LDP may redirect the request to the paginated collection, answering 307 Moved temporarily with the Location header set.&lt;br /&gt;
# Otherwise, the server answers with 200 OK and returns the RDF representation in the requested format.&lt;br /&gt;
&lt;br /&gt;
This scenario is based on the user-story [[#Maintaining Social Contact Information]]. The data source holds social contact information in a container called /mycontacts (an information resource).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
eg:mycontacts a bp:Container;&lt;br /&gt;
   rdfs:member&lt;br /&gt;
      :alice,&lt;br /&gt;
      :bob.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob.&lt;br /&gt;
&lt;br /&gt;
:bob a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Bob&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:bob@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user requests information about the container resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycontacts HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response should include information about the container and references to contained resources, but not information about them.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
eg:mycontacts a bp:Container;&lt;br /&gt;
   rdfs:member&lt;br /&gt;
      :alice,&lt;br /&gt;
      :bob.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Paginated list of contained resources and their properties (UC-LDPC1-S2)==&lt;br /&gt;
In many applications, it is desirable for the client to be able to get full descriptions about multiple members of a container, in a single request. However, if the membership is large, a single representation containing descriptions of all members may be onerously large. Paging allows different subsets of the membership to returned in a sequence of requests.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying an LDP Container, qualified with the requested page (eg. ?firstpage). The accept header specifies the required media type for the returned RDF serialization.&lt;br /&gt;
# If an 'If-Match' header is supplied, the entity tag should be compared with the curent container entity tag.&lt;br /&gt;
# The members are sorted according to some criteria, and the relevant subset of properties are listed.&lt;br /&gt;
# The server answers with 200 OK and returns the RDF representation of the subset in the requested format.&lt;br /&gt;
# An opaque URI in the returned representation identifies the next page.&lt;br /&gt;
&lt;br /&gt;
'''Example''': The data source holds social contact information in a container resource called /mycontacts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
eg:mycontacts a bp:Container;&lt;br /&gt;
   rdfs:member&lt;br /&gt;
      :alice,&lt;br /&gt;
      :bob,&lt;br /&gt;
      :carol.&lt;br /&gt;
&lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob.&lt;br /&gt;
&lt;br /&gt;
:bob a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Bob&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:bob@example.com&amp;gt;.&lt;br /&gt;
   &lt;br /&gt;
:carol a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Carol&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:carol@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user requests the first page of information about the container membership. In this example the page size is 2.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycontacts?firstPage HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response should include information about the container and the relevant subset of the membership and their properties.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
eg:mycontacts a bp:Container;&lt;br /&gt;
   rdfs:member&lt;br /&gt;
      :alice,&lt;br /&gt;
      :bob.&lt;br /&gt;
	  &lt;br /&gt;
&amp;lt;&amp;gt; a bp:Page;&lt;br /&gt;
   bp:pageOf eg:mycontacts;&lt;br /&gt;
   bp:nextPage eg:mycontacts?p=2.&lt;br /&gt;
	  &lt;br /&gt;
:alice a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Alice&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:alice@example.com&amp;gt;;&lt;br /&gt;
   foaf:knows :bob.&lt;br /&gt;
&lt;br /&gt;
:bob a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Bob&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:bob@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The follow-up request for the next page may include the container entity tag to ensure consistent pagination. &lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycontacts?p=2 HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response includes the remaining contact.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;123456790&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/people/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
eg:mycontacts a bp:Container;&lt;br /&gt;
   rdfs:member&lt;br /&gt;
      :carol.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a bp:Page;&lt;br /&gt;
   bp:pageOf eg:mycontacts;&lt;br /&gt;
   bp:nextPage rdf:nil.&lt;br /&gt;
	  &lt;br /&gt;
:carol a foaf:Person;&lt;br /&gt;
   rdfs:label &amp;quot;Carol&amp;quot;;&lt;br /&gt;
   foaf:mbox &amp;lt;mailto:carol@example.com&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a resource within a container==&lt;br /&gt;
An HTTP POST to the target container, including a representation of the new resource, creates a new resource within that container.&lt;br /&gt;
&lt;br /&gt;
'''Assumptions'''&lt;br /&gt;
&lt;br /&gt;
* The document base URI is the URI of the created resource.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP POST on a URI identifying an LDP Container, including the RDF content with appropriate Content-Type.&lt;br /&gt;
# The server creates a new resource with the defined properties and relationships. The resource URI defines the document base of the posted RDF representation.&lt;br /&gt;
# If the creation succeeded, the server answers with 201 Created and the location of the created resource.&lt;br /&gt;
&lt;br /&gt;
Assume we have an existing container resource with a defined membership predicate.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;http://example.com/contacts/&amp;gt; a bp:Container;&lt;br /&gt;
  bp:membershipPredicate rdfs:member .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
POST http://example.com/contacts/ HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
   foaf:primaryTopic &amp;lt;#me&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;#me&amp;gt; a foaf:Person;&lt;br /&gt;
     foaf:name &amp;quot;Henry&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms creation of the new resource at the indicated location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 201 Created&lt;br /&gt;
Location: http://example.com/contacts/a0001&lt;br /&gt;
ETag: W/&amp;quot;1234567890&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Create a container under another container (UC-LDPC2-S2) ==&lt;br /&gt;
&lt;br /&gt;
Helios bugs allow bugs to have sub-issues using the membership predicate &amp;lt;helios_bt:hasSubIssue&amp;gt;. The new member can be identified as a Container.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
POST http://example.com/bugtracker HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
@prefix helios_bt: &amp;lt;http://heliosplatform.sourceforge.net/ontologies/2010/05/helios_bt.owl#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member [&lt;br /&gt;
      a helios_bt:BugtrackerIssue, bp:Container;&lt;br /&gt;
      dc:identifier	&amp;quot;58366&amp;quot;;&lt;br /&gt;
      dc:type	&amp;quot;bug&amp;quot;;&lt;br /&gt;
      helios_bt:isInBugtracker eg:bugtracker ;&lt;br /&gt;
&lt;br /&gt;
      bp:membershipPredicate helios_bt:hasSubIssue .&lt;br /&gt;
   ]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms creation of the new resource at the indicated location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 201 Created&lt;br /&gt;
Location: http://example.com/bugtracker/a0002&lt;br /&gt;
ETag: W/&amp;quot;1234567891&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Retrieve non-member properties of a container (UC-LDPC3-S1)==&lt;br /&gt;
In this scenario, the server returns references to the full membership of the container in a single request. It is implementation specific whether or not the server returns any additional information about each member.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET on a URI identifying an LDP Container qualified with ?non-member-properties. The accept header specifies the required media type for the returned RDF serialization.&lt;br /&gt;
# The server answers with 200 OK and returns the RDF representation in the requested format.&lt;br /&gt;
&lt;br /&gt;
This scenario is based on the user-story [[#Data_catalogs]] and [http://www.w3.org/TR/vocab-dcat/ Data Catalog Vocabulary (DCAT)]. The data source holds catalog information in a container called /mycatalog (a container resource).&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; ;&lt;br /&gt;
    dcat:record :record-001.&lt;br /&gt;
	   &lt;br /&gt;
 :record-001 a dcat:CatalogRecord ;&lt;br /&gt;
    foaf:primaryTopic :dataset-001 ;&lt;br /&gt;
    dcterms:issued &amp;quot;2011-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
	   &lt;br /&gt;
 :dataset-001 a dcat:Dataset ;&lt;br /&gt;
    dcterms:title &amp;quot;Example dataset&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The user requests information about the container resource /mycatalog.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycatalog?non-member-properties HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response should include information about the container.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;9999999999&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/dcat/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Place an existing resource in a container (UC-LDPC4-S1)==&lt;br /&gt;
Add a named resource to a container using HTTP PATCH. There are many reasons why we might wish to add a named resource to a container. The same resource may be added to multiple containers, or we may simply want to create ''sensible'' names for things that people can understand intuitively (rather than a machine generated name) (see [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search]).&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP PATCH on the container (or the resource) including the insertion of an explicit membership relationship between a container membership subject and an existing resource. The request should indicate the appropriate Content-Type.&lt;br /&gt;
# The server answers 204 No Content to confirm the patch.&lt;br /&gt;
&lt;br /&gt;
Example: This example is based on [[#Library Linked Data]] use-cases [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme, bp:Container.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The client wishes to insert a new concept into the scheme.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/concept-scheme/subject-heading HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange scheme:subject-heading ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update concept scheme&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:Outer+space--Exploration ;&lt;br /&gt;
    rdf:predicate skos:inScheme ;&lt;br /&gt;
    rdf:object scheme:subject-heading .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response indicates the revised state of the container resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;111111111&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme, bp:Container.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space--Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Place resource in more than one container (UC-LDPC4-S2) ==&lt;br /&gt;
SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, we add the same concept to two different container concepts (via skos:narrowerTransitive).&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
concept:TissueSpecimen a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrowerTransitive .&lt;br /&gt;
   &lt;br /&gt;
concept:SpecimenFromTrunk a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrowerTransitive .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now wish to assert a new concept concept:TissueSpecimenFromHeart which falls under both concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/concept/TissueSpecimen HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange concept:TissueSpecimen ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update concept hierarchy&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:TissueSpecimen ;&lt;br /&gt;
    rdf:predicate skos:narrowerTransitive ;&lt;br /&gt;
    rdf:object concept:TissueSpecimenFromHeart .&lt;br /&gt;
  ] ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:TissueSpecimenFromHeart ;&lt;br /&gt;
    rdf:predicate rdf:type ;&lt;br /&gt;
    rdf:object skos:Concept .&lt;br /&gt;
  ] ; &lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;1234567890&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
concept:TissueSpecimen a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrowerTransitive ;&lt;br /&gt;
   skos:narrowerTransitive concept:TissueSpecimenFromHeart .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second container is patched separately.&lt;br /&gt;
 &lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/concept/SpecimenFromTrunk HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange concept:SpecimenFromTrunk ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update concept hierarchy&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:SpecimenFromTrunk ;&lt;br /&gt;
    rdf:predicate skos:narrowerTransitive ;&lt;br /&gt;
    rdf:object concept:TissueSpecimenFromHeart .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms the addition.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;1234567891&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
concept:SpecimenFromTrunk a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrowerTransitive ;&lt;br /&gt;
   skos:narrowerTransitive concept:TissueSpecimenFromHeart .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remove a LDPR from a container but not delete it from the system (UC-LDPC4-S3)==&lt;br /&gt;
Selectively remove membership properties from a container resource resource.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET of a URI identifying an LDP container.&lt;br /&gt;
# The server answers with an RDF representation of the container membership and the entity tag.&lt;br /&gt;
# The client requests an HTTP PATCH on the container describing the removal of the membership relation between the container and the subordinate resource.&lt;br /&gt;
# The server answers 204 No Content to confirm the patch.&lt;br /&gt;
An HTTP GET is used to retrieve the initial state of the container.&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/planets HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response lists the container membership and entity tag.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;1234567890&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
eg:planets a skos:Collection, bp:Container;&lt;br /&gt;
   skos:prefLabel &amp;quot;The planets&amp;quot;@en;&lt;br /&gt;
   skos:member eg:Mercury;&lt;br /&gt;
   skos:member eg:Venus;&lt;br /&gt;
   skos:member eg:Earth;&lt;br /&gt;
   skos:member eg:Mars;&lt;br /&gt;
   skos:member eg:Jupiter;&lt;br /&gt;
   skos:member eg:Saturn;&lt;br /&gt;
   skos:member eg:Uranus;&lt;br /&gt;
   skos:member eg:Neptune;&lt;br /&gt;
   skos:member eg:Pluto.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
An HTTP PATCH is used to directly edit membership.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/planets HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;1234567890&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt; a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange eg:planets ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Pluto is a dwarf planet&amp;quot; ;&lt;br /&gt;
  cs:removal [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject eg:planets ;&lt;br /&gt;
    rdf:predicate skos:member ;&lt;br /&gt;
    rdf:object eg:Pluto .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms the removal.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;1234567891&amp;quot;&lt;br /&gt;
&lt;br /&gt;
eg:planets a skos:Collection, bp:Container;&lt;br /&gt;
   skos:prefLabel &amp;quot;The planets&amp;quot;@en;&lt;br /&gt;
   skos:member eg:Mercury;&lt;br /&gt;
   skos:member eg:Venus;&lt;br /&gt;
   skos:member eg:Earth;&lt;br /&gt;
   skos:member eg:Mars;&lt;br /&gt;
   skos:member eg:Jupiter;&lt;br /&gt;
   skos:member eg:Saturn;&lt;br /&gt;
   skos:member eg:Uranus;&lt;br /&gt;
   skos:member eg:Neptune.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Move a LDPC under another LDPC (UC-LDPC4-S4)==&lt;br /&gt;
&lt;br /&gt;
This example is based on [http://www.w3.org/TR/skos-primer/ The SKOS Primer].&lt;br /&gt;
Assume we already have the following SKOS concepts. In this example, the concepts mammals, animals and cats are all defined as containers.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
concept:animals a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrower .&lt;br /&gt;
   &lt;br /&gt;
concept:mammals a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrower ;&lt;br /&gt;
   skos:narrower concept:cats .&lt;br /&gt;
&lt;br /&gt;
concept:cats a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrower ;&lt;br /&gt;
   skos:broader concept:mammals .&lt;br /&gt;
   &lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We now wish to assert the concept hierarchy; the missing relationship between animals and mammals.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/concept/animals HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange concept:animals ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update concept scheme&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:animals ;&lt;br /&gt;
    rdf:predicate skos:narrower ;&lt;br /&gt;
    rdf:object concept:mammals .&lt;br /&gt;
  ] ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject concept:mammals ;&lt;br /&gt;
    rdf:predicate skos:broader ;&lt;br /&gt;
    rdf:object concept:animals .&lt;br /&gt;
  ] ; &lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms the addition.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;1234567891&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
concept:animals a skos:Concept, bp:Container ;&lt;br /&gt;
   bp:membershipPredicate skos:narrower ;&lt;br /&gt;
   skos:narrower concept:mammals.&lt;br /&gt;
&lt;br /&gt;
concept:mammals skos:broader concept:animals .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selective update (UC-LDPC5-S1)==&lt;br /&gt;
Selectively add and remove properties to and from the identified resource. The scenario covers a typical sequence of events where the client first GETs the current state prior to the update.&lt;br /&gt;
&lt;br /&gt;
# The client requests an HTTP GET of a URI identifying an LDP resource.&lt;br /&gt;
# The server answers with an RDF representation of the resource and the entity tag.&lt;br /&gt;
# The client requests an HTTP PATCH describing the updates.&lt;br /&gt;
# The server answers 204 No Content to confirm the patch.&lt;br /&gt;
&lt;br /&gt;
This example relates to user-story [http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements#Hosting_POSTed_Resources Hosting posted resources],&lt;br /&gt;
and is based on [http://heliosplatform.sourceforge.net/ontologies/helios_bt.html Helios].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycatalog?non-member-properties HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;9999999999&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/dcat/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The new publisher information is added to the catalog with HTTP PATCH. This example uses a Talis changeset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PATCH http://example.com/mycatalog?non-member-properties HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;9999999999&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog metadata&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject : catalog ;&lt;br /&gt;
    rdf:predicate dcterms:publisher ;&lt;br /&gt;
    rdf:object &amp;lt;http://example.com/people/alice&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms successful update of the container resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
ETag: W/&amp;quot;10000000000&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; ;&lt;br /&gt;
    dcterms:publisher &amp;lt;http://example.com/people/alice&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==substituting update ==&lt;br /&gt;
# The client requests an HTTP GET of a URI identifying an LDP container non-membership properties.&lt;br /&gt;
# The server answers with an RDF representation of the container  and the entity tag.&lt;br /&gt;
# The client requests an HTTP PUT with a replacement description and the appropriate Content-Type.&lt;br /&gt;
# The server answers 204 No Content to confirm the patch.&lt;br /&gt;
&lt;br /&gt;
This example relates to user-story [http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements#Hosting_POSTed_Resources Hosting posted resources],&lt;br /&gt;
and is based on [http://heliosplatform.sourceforge.net/ontologies/helios_bt.html Helios].&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; ;&lt;br /&gt;
    dcat:record :record-001.&lt;br /&gt;
	   &lt;br /&gt;
 :record-001 a dcat:CatalogRecord ;&lt;br /&gt;
    foaf:primaryTopic :dataset-001 ;&lt;br /&gt;
    dcterms:issued &amp;quot;2011-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
	   &lt;br /&gt;
 :dataset-001 a dcat:Dataset ;&lt;br /&gt;
    dcterms:title &amp;quot;Example dataset&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial state of the non-membership properties of a container are retrieved.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
GET http://example.com/mycatalog?non-member-properties HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Accept: text/turtle&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 200 OK &lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
ETag: W/&amp;quot;9999999999&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/dcat/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The non-membership properties of a container may be substituted with HTTP PUT.This enables us to add a publisher to the catalog.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
PUT http://example.com/people/alice HTTP/1.1&lt;br /&gt;
Host: example.com&lt;br /&gt;
Content-Type: text/turtle&lt;br /&gt;
If-Match: W/&amp;quot;9999999999&amp;quot;&lt;br /&gt;
&lt;br /&gt;
@prefix : &amp;lt;http://example.com/dcat/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 :mycatalog a bp:Container;&lt;br /&gt;
   bp:membershipSubject :catalog;&lt;br /&gt;
   bp:membershipPredicate dcat:record.&lt;br /&gt;
&lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcterms:title &amp;quot;Example catalog&amp;quot; ;&lt;br /&gt;
    dcterms:publisher &amp;lt;http://example.com/people/alice&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The response confirms successful update of the container resource.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
HTTP/1.1 204 No Content &lt;br /&gt;
ETag: W/&amp;quot;10000000000&amp;quot;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
==Requirements==&lt;br /&gt;
===TBD: Which of these follow from the use-cases?===&lt;br /&gt;
# Update resources, either RDF-based or not&lt;br /&gt;
# Use optimistic collision detection on updates&lt;br /&gt;
# Apply minimal constraints for creation and update&lt;br /&gt;
# Remove a resource, including any associations with a container&lt;br /&gt;
# Get members of a container&lt;br /&gt;
# Get just data about a container, without all the members&lt;br /&gt;
# Handle a large number of members of a container, breaking up representation into pages&lt;br /&gt;
&lt;br /&gt;
===TBD: Which of these follow from use-cases?===&lt;br /&gt;
# Define a minimal set of RDF media-types/representations&lt;br /&gt;
# Define a limited number of literal value types&lt;br /&gt;
# Use standard vocabularies as appropriate&lt;br /&gt;
# Ensure clients are ready for resource format and type changes&lt;br /&gt;
# When getting members of a container, provide data about the members&lt;br /&gt;
# Allow pages to have order information for members, within a page and across all pages&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:15:57 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Examples</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Constrained Devices and Networks */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Check hyperlinks&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;br /&gt;
    rdf:predicate dcat:dataset ;&lt;br /&gt;
    rdf:object :dataset/002 .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC5: Determine if a resource has changed===&lt;br /&gt;
It should be possible to retrieve versioning information about a resource (e.g. last modified or entity tag) without having to download a representation of the resource.&lt;br /&gt;
This information can then be compared with previous information held about that resource to determine if it has changed.&lt;br /&gt;
This versioning information can also be used in subsequent ''conditional'' requests to ensure they are only applied if the version is unchanged.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
Based on the user-story, [[#Constrained Devices and Networks| Constrained Devices and Networks]], an LDP could be configured to act as a proxy for a [http://tools.ietf.org/html/draft-ietf-core-coap CoAP] based  [http://en.wikipedia.org/wiki/Web_of_Things Web of Things]. As an observer of CoAP resources, the LDP registers its interest so that it will be notified whenever the sensor reading changes. Clients of the LDP can interrogate the LDP to determine if the state has changed.&lt;br /&gt;
&lt;br /&gt;
In this example, the information about a sensor and corresponding sensor readings can be represented as RDF resources. The first resource below, represents a sensor described using the [http://www.w3.org/2005/Incubator/ssn/ Semantic Sensor Network] ontology.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a :MainsFrequencySensor;&lt;br /&gt;
  rdfs:comment &amp;quot;Sense grid load based on mains frequency&amp;quot;;&lt;br /&gt;
  ssn:hasMeasurementCapability [&lt;br /&gt;
	a :FrequencyMeasurementCapability;&lt;br /&gt;
	ssn:hasMeasurementProperty &amp;lt;#property_1&amp;gt; .&lt;br /&gt;
  ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The value of the sensor changes in real-time as measurements are taken. The LDP client can interrogate the resource below to determine if it has changed, ''without'' necessarily having to download the RDF representation. As different sensor properties are represented disjointly (separate RDF representations) they may change independently.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/energy-management/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://example.com/energy-management#property_1&amp;gt; :hasMeasurementPropertyValue &amp;lt;&amp;gt; .&lt;br /&gt;
&amp;lt;&amp;gt; a :FrequencyValue;&lt;br /&gt;
	:hasQuantityValue &amp;quot;50&amp;quot;^^xsd:float.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC6: Aggregate resources===&lt;br /&gt;
There is a requirement to be able to manage ''collections'' of resources. The concept of a collection overlaps with, but is distinct from that of a container. These collections are (weak) aggregations, unrelated to the lifecycle management of resources, and distinct from the ownership between a resource and its container. However, the composition of a container may be reflected as a collection to support navigation of the container and its contents. There is a need to be able to create collections by adding and deleting individual membership properties. Resources may belong to multiple collections, or to none.&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
* Relative URIs: It should be possible to &amp;quot;ship payloads of RDF&amp;quot; for a collection as a whole without breaking internal links (from [[#Constrained Devices and Networks]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: add a resource to a collection====&lt;br /&gt;
This example is from [[#Library Linked Data|Library Linked Data]] and [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC], specifically [http://www.w3.org/2005/Incubator/lld/wiki/Use_Case_Subject_Search Subject Search].&lt;br /&gt;
&lt;br /&gt;
There is an existing collection at &amp;lt;nowiki&amp;gt;&amp;lt;http://example.com/concept-scheme/subject-heading&amp;gt;&amp;lt;/nowiki&amp;gt; that defines a collection of subject headings. This collection is defined as a skos:ConceptScheme and&lt;br /&gt;
the client wishes to insert a new concept into the scheme. which will be related to the collection via a &amp;lt;nowiki&amp;gt;skos:inScheme&amp;lt;/nowiki&amp;gt; link. The new subject-heading, &amp;quot;outer space exploration&amp;quot;, is not necessarily owned by a container. The following RDF would be added to the (item-level) description of the collection.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix scheme : &amp;lt;http://example.com/concept-scheme/&amp;gt;.&lt;br /&gt;
@prefix concept : &amp;lt;http://example.com/concept/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
scheme:subject-heading a skos:ConceptScheme.&lt;br /&gt;
&lt;br /&gt;
concept:Outer+space+Exploration skos:inScheme scheme:subject-heading.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: add a resource to multiple collections====&lt;br /&gt;
Logically, a resource should not be owned by more than one container. however, it may be a member of multiple collections which define a weaker form of ''aggregation''. As this is simply a manipulation of the RDF description of a collection, it should be possible to add the same resource to multiple collections.&lt;br /&gt;
&lt;br /&gt;
As a machine-readable collection of medical terms, the [http://www.ihtsdo.org| SNOMED] ontology is of key importance in [[#Healthcare | healthcare]]. SNOMED CT allows concepts with more than one parent that don't fall into a lattice.&lt;br /&gt;
In the example below, the same concept may fall under two different parent concepts.&lt;br /&gt;
The example uses skos:narrowerTransitive to elide intervening concepts.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/snomed/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:_119376003 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Tissue specimen&amp;quot;&lt;br /&gt;
	skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
   &lt;br /&gt;
:_127462005 a skos:Concept ;&lt;br /&gt;
	skos:prefLabel &amp;quot;Specimen from heart&amp;quot;&lt;br /&gt;
   skos:narrowerTransitive :TissueSpecimenFromHeart.&lt;br /&gt;
&lt;br /&gt;
:_128166000 a skos:Concept;&lt;br /&gt;
	rdfs:label &amp;quot;Tissue specimen from heart&amp;quot;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC7: Filter resource description===&lt;br /&gt;
This use-case extends the normal behaviour of retrieving an RDF description of a resource, by dynamically excluding specific (membership) properties.&lt;br /&gt;
For containers, it is often desirable to be able to read a collection, or item-level description that excludes the container membership.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: retrieve collection-level description====&lt;br /&gt;
This scenario, based on [[#Library Linked Data| Library Linked Data]], uses the Dublin Core Metadata Initiative [http://dublincore.org/groups/collections/collection-application-profile/| Collection-Level] description. &lt;br /&gt;
A collection can refer to any aggregation of physical or digital items.&lt;br /&gt;
This scenario covers the case whereby a client can request a collection-level description as typified by the example below, without necessarily having to download a full listing of the items within the collection. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix rdf: &amp;lt;rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/bookshelf/&amp;gt;.&lt;br /&gt;
@prefix dcmitype: &amp;lt;http://purl.org/dc/dcmitype/&amp;gt;.&lt;br /&gt;
@prefix cld: &amp;lt;http://purl.org/cld/terms/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;&amp;gt; dc:type dcmitype:Collection ;&lt;br /&gt;
	dc:title &amp;quot;Directory of organizations working with Linked Data&amp;quot; ;&lt;br /&gt;
	dcterms:abstract &amp;quot;This is a directory of organisations specializing in Linked Data.&amp;quot;&lt;br /&gt;
	cld:isLocatedAt &amp;lt;http://dir.w3.org&amp;gt;&lt;br /&gt;
	cld:isAccessedVia &amp;lt;http://dir.w3.org/rdf/2012/directory/directory-list.xhtml?construct&amp;gt;&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve item-level description of a collection====&lt;br /&gt;
This use-case scenario, also based on [[#Library Linked Data| Library Linked Data]], focuses on obtaining an item-level description of the resources aggregated by a collection. &lt;br /&gt;
The simplest scenario is where the members of a collection are returned within a single representation, so that a client can explore the data by following these links. Different applications may use different membership predicates to capture this aggregation. The example below uses &amp;lt;nowiki&amp;gt;rdfs:member&amp;lt;/nowiki&amp;gt;, but many different membership predicates are in common use, including RDF Lists.&lt;br /&gt;
Item-level descriptions can be captured using the Functional Requirements for Bibliographic Records ([http://www.ifla.org/publications/functional-requirements-for-bibliographic-records FRBR]) [http://vocab.org/frbr/core.html ontology]. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix frbr: &amp;lt;http://purl.org/vocab/frbr/core#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; rdfs:member &amp;lt;#ebooks97&amp;gt;, &amp;lt;#ebooks21279&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#work97&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
   dc:title &amp;quot;Flatland: a romance of many dimensions&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Abbott_Edwin&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook97&amp;gt;.&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;#work21279&amp;gt; a frbr:LiteraryWork;&lt;br /&gt;
	dc:title &amp;quot;2 B R 0 2 B&amp;quot; ;&lt;br /&gt;
	frbr:creator &amp;lt;#Vonnegut_Kurt&amp;gt;;&lt;br /&gt;
	frbr:manifestation &amp;lt;ebook21279&amp;gt;.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Collections are potentially very large, so some means may be required to limit the size of RDF representation returned by the LDP (e.g. pagination).&lt;br /&gt;
&lt;br /&gt;
===UC8: Manage media resources===&lt;br /&gt;
It should be possible to easily add non-RDF media resources to containers that accept them. Media resources may be updated and removed during the lifecycle of the container.&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: describe media resources====&lt;br /&gt;
From the User Story [[#Sharing Binary Resources and Metadata| Sharing Binary Resources and Metadata]] it should be possible to easily add non RDF resources to a containers that accept them. Clients submit a non-RDF representation to a container in a media type accepted by that container. The container creates a URI to represent this media resource, and creates a link from the container to the new URI.The media resource may have an explicit representation of the media type. It should be possible to find the metadata about such a resource and to access and edit it in the usual ways.&lt;br /&gt;
&lt;br /&gt;
This example uses the [http://www.w3.org/TR/mediaont-10/#ont-ttl Ontology for Media Resources] to describe a media resource added to a collection.&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ma: &amp;lt;http://www.w3.org/ns/ma-ont#&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset&amp;gt; a ma:Collection ;&lt;br /&gt;
	:hasMember &amp;lt;dataset/image1.jpg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;dataset/image1.jpg&amp;gt; a ma:MediaResource ;&lt;br /&gt;
	ma:hasFormat &amp;quot;image/jpeg&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: media-resource attachments====&lt;br /&gt;
A resource may have multiple ''renditions''; the idea that you can have a PDF and a JPEG representing the same thing. A user is trying to create a work order along with an attached image showing a faulty machine part. To the user and to the work order system, these two artifacts are managed as a set. A single request may create the work order, the attachment, and the relationship between them, atomically. &lt;br /&gt;
When the user retrieves the work order later, they expect a single request by default to retrieve the work order plus all attachments.&lt;br /&gt;
When the user updates the work order, e.g. to mark it completed, they only want to update the work order proper, not its attachments.&lt;br /&gt;
Users may add/remove/replace attachments to the work order during its lifetime.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
&lt;br /&gt;
'''TODO: Refine these based on use case and scenario updates'''&lt;br /&gt;
&lt;br /&gt;
===Functional Requirements===&lt;br /&gt;
# Create Containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of nested containers, from  [[#UC1: Manage containers]]&lt;br /&gt;
# Creation of resources (within a container), from  [[#UC2: Manage resources]]&lt;br /&gt;
# Deletion of resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Moving contained resources, from  [[#UC2: Manage resources]]&lt;br /&gt;
# Retrieve resource description, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Retrieve description of a non-document resource, from  [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Enrichment (substituting update of existing resource), from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Selective update of a resource, from  [[#UC4: Update existing resource]]&lt;br /&gt;
# Determine if a resource has changed, from  [[#UC5: Determine if a resource has changed]]&lt;br /&gt;
# Add a resource to a collection, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Add a resource to multiple collections, from  [[#UC6: Aggregate resources]]&lt;br /&gt;
# Retrieve collection-level description, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Retrieve item-level description of a collection, from  [[#UC7: Filter resource description]]&lt;br /&gt;
# Add non-RDF resources, from  [[#UC8: Manage non-RDF Resources]]&lt;br /&gt;
# Add multiple non-RDF resources, from  [[#UC8: Manage non-RDF Resources]]&lt;br /&gt;
&lt;br /&gt;
===Non-Functional Requirements===&lt;br /&gt;
&lt;br /&gt;
# Provide access guidance to resources, from [[#UC1: Manage containers]]&lt;br /&gt;
# Non-duplication of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Distribution of resources, from [[#UC2: Manage resources]]&lt;br /&gt;
# Consistent, global naming, from [[#UC2: Manage resources]]&lt;br /&gt;
# Use standard vocabularies as appropriate, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Scalable linking model, from [[#UC3: Retrieve resource description]]&lt;br /&gt;
# Unrestricted vocabulary, from [[#UC4: Update existing resource]]&lt;br /&gt;
# Resource descriptions are a &amp;quot;mix of simple data and collections&amp;quot;, from [[#UC6: Aggregate resources]]&lt;br /&gt;
# Relative URIs enabling sharing of collections, from [[#UC6: Aggregate resources]]&lt;br /&gt;
&lt;br /&gt;
== Acknowledgements ==&lt;br /&gt;
We would like to acknowledge the contributions of user-story authors; Christophe Guéret, Roger Menday, Eric Prud'hommeaux.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</description>
			<pubDate>Mon, 10 Dec 2012 11:15:10 GMT</pubDate>			<dc:creator>Sbattle2</dc:creator>			<comments>http://www.w3.org/2012/ldp/wiki/Talk:Use_Cases_And_Requirements</comments>		</item>
		<item>
			<title>Use Cases And Requirements</title>
			<link>http://www.w3.org/2012/ldp/wiki/Use_Cases_And_Requirements</link>
			<description>&lt;p&gt;Sbattle2:&amp;#32;/* Non-Functional Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Linked Data Platform Use Cases And Requirements =&lt;br /&gt;
&lt;br /&gt;
This is a working document used to collect use cases and requirements for consideration by the WG.&lt;br /&gt;
The starting point comes from [http://www.w3.org/Submission/2012/SUBM-ldbpucr-20120326/ Linked Data Basic Profile Use Cases and Requirements].&lt;br /&gt;
&lt;br /&gt;
== Steps to Complete ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;strike&amp;gt;Nov 26? WG to confirm User Story content: add, remove, refine (see process below).  Note: this is ONLY User Stories (not Use Cases, Use Case Scenarios or Requirements)&amp;lt;/strike&amp;gt;&lt;br /&gt;
** Issues before Nov 26th? will be included into FPWD&lt;br /&gt;
* Editors to:&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 3 refine User Stories based on feedback&amp;lt;/strike&amp;gt;&lt;br /&gt;
** &amp;lt;strike&amp;gt;Dec 5 elaborate on Use Cases in support of User Stories&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Dec 10 - WG to review prior to FPWD &lt;br /&gt;
** Review period ends Dec 15th&lt;br /&gt;
** insert open issues into draft for FPWD&lt;br /&gt;
* Dec 17 - Publish FPWD&lt;br /&gt;
** convert wiki page to ReSpec for FPWD&lt;br /&gt;
* Dec ?? Deadline for publications by year end 2012&lt;br /&gt;
&lt;br /&gt;
===To Be Done===&lt;br /&gt;
* &amp;lt;strike&amp;gt;Move [[#LDP_and_Authentication.2FAuthorization| LDP and Authentication]] to [http://www.w3.org/2012/ldp/wiki/AccessControl AccessControl]&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Complete [[#Alternative_scenario:_moving_contained_resources| moving contained resources]] scenario with content from ericP on issue-30.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Augment [[#Cloud_Infrastructure_Management| Cloud Infrastructure Management]] scenario with content from Roger Menday.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Ensure issue-40/41 are fully covered in [[#UC8:_Managing_non-RDF_Resources| UC8: Managing non-RDF Resources]]. 2 scenarios (single v multiple attachments) ?&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Contact owner of [[#Data_Sharing| Data Sharing]] user-story to determine if we keep or not.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Review [[#Requirements| Requirements]] section for functional/non-functional requirements arising in UCs.&lt;br /&gt;
* &amp;lt;strike&amp;gt;Propose resolutions to open issues against UC&amp;amp;R where possible.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* &amp;lt;strike&amp;gt;Identify and acknowledge user-story contributors.&amp;lt;/strike&amp;gt;&lt;br /&gt;
* Check hyperlinks&lt;br /&gt;
* Convert to ReSpec&lt;br /&gt;
* Annotate document with open issues against UC&amp;amp;R&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/30 ISSUE-30] (OPEN)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/40 ISSUE-40] (RAISED)&lt;br /&gt;
** [http://www.w3.org/2012/ldp/track/issues/41 ISSUE-41] (RAISED)&lt;br /&gt;
&lt;br /&gt;
=== Process to introduce new User Stories &amp;amp; Use Cases ===&lt;br /&gt;
&lt;br /&gt;
Open an Issue in the tracker against the UC&amp;amp;R product.  The WG will review these and decide whether they are valid.&lt;br /&gt;
&lt;br /&gt;
== Scope and Motivation ==&lt;br /&gt;
&lt;br /&gt;
Linked Data was defined by Tim Berners-Lee with the following guidelines [http://www.w3.org/DesignIssues/LinkedData.html]:&lt;br /&gt;
&lt;br /&gt;
# Use URIs as names for things&lt;br /&gt;
# Use HTTP URIs so that people can look up those names&lt;br /&gt;
# When someone looks up a URI, provide useful information, using the standards (RDF*, SPARQL)&lt;br /&gt;
# Include links to other URIs. so that they can discover more things&lt;br /&gt;
&lt;br /&gt;
These four rules have proven very effective in guiding and inspiring people to publish Linked Data on the web. The amount of data, especially public data, available on the web has grown rapidly, and an impressive number of extremely creative and useful “mashups” have been created using this data as result.&lt;br /&gt;
&lt;br /&gt;
There has been much less focus on the potential of Linked Data as a model for managing data on the web - the majority of the Application Programming Interfaces (APIs) available on the Internet for creating and updating data follow a Remote Procedure Call (RPC) model rather than a Linked Data model.&lt;br /&gt;
&lt;br /&gt;
If Linked Data were just another model for doing something that RPC models can already do, it would be of only marginal interest. Interest in Linked Data arises from the fact that applications with an interface defined using Linked Data can be much more easily and seamlessly integrated with each other than applications that offer an RPC interface. In many problem domains, the most important problems and the greatest value are found not in the implementation of new applications, but in the successful integration of multiple applications into larger systems.&lt;br /&gt;
&lt;br /&gt;
Some of the features that make Linked Data exceptionally well suited for integration include:&lt;br /&gt;
&lt;br /&gt;
* A single interface – defined by a common set of HTTP methods – that is universally understood and is constant across all applications. This is in contrast with the RPC architecture where each application has a unique interface that has to be learned and coded to.&lt;br /&gt;
* A universal addressing scheme – provided by HTTP URLs – for both identifying and accessing all “entities”. This is in contrast with the RPC architecture where there is no uniform way to either identify or access data.&lt;br /&gt;
* A simple yet extensible data model – provided by RDF – for describing data about a resource in a way which doesn’t require prior knowledge of vocabulary being used.&lt;br /&gt;
&lt;br /&gt;
Experience implementing applications and integrating them using Linked Data has shown very promising results, but has also demonstrated that the original four rules defined by Tim Berners-Lee for Linked Data are not sufficient to guide and constrain a writable Linked Data API. As was the case with the original four rules, the need generally is not for the invention of fundamental new technologies, but rather for a series of additional rules and patterns that guide and constrain the use of existing technologies in the construction of a Basic Profile for Linked Data to achieve interoperability.&lt;br /&gt;
&lt;br /&gt;
The following list illustrates a few of the issues that require additional rules and patterns:&lt;br /&gt;
* What URLs do I post to in order to create new resources?&lt;br /&gt;
* How do I get lists of existing resources, and how do I get basic information about them without having to access each one?&lt;br /&gt;
* How should I detect and deal with race conditions on write?&lt;br /&gt;
* What media-types/representations should I use?&lt;br /&gt;
* What standard vocabularies should I use?&lt;br /&gt;
* What primitive data types should I use?&lt;br /&gt;
&lt;br /&gt;
A good goal for the Basic Profile for Linked Data would be to define a specification required to allow the definition of a writable Linked Data API equivalent to the simple application APIs that are often written on the web today using the Atom Publishing Protocol (APP). APP shares some characteristics with Linked Data, such as the use of HTTP and URLs. One difference is that Linked Data relies on a flexible data model with RDF, which allows for multiple representations.&lt;br /&gt;
&lt;br /&gt;
== Organization of this Document ==&lt;br /&gt;
&lt;br /&gt;
This document is organized as follows:&lt;br /&gt;
&lt;br /&gt;
* '''[[#User Stories| User Stories]]''' capture statements about system requirements written from a user or application perspective. They are typically lightweight and informal and can run from one line to a paragraph or two (sometimes described as an 'epic') [http://www.agilemodeling.com/artifacts/userStory.htm]. Analysis of each user story will reveal a number of (functional) use-cases and other non-functional requirements. See [http://www.w3.org/TR/dap-policy-reqs/| Device API Access Control Use Cases and Requirements] for a good example of user stories and their analysis.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Use Cases| Use Cases]]''' are used to capture and model functional requirements. Use cases describe the system’s behavior under various conditions [http://alistair.cockburn.us/get/2465], cataloguing who does what with the system, for what purpose, but without concern for system design or implementation [http://www.bredemeyer.com/pdf_files/functreq.pdf]. Each use case is identified by a reference number to aid cross-reference from other documentation; use-case indexing in this document is based on [http://www.w3.org/TR/rdb2rdf-ucr/ rdb2rdf use-cases]. A variety of styles may be used to capture use-cases, from a simple narrative to a structured  description with actors, pre/post conditions, and step-by-step behaviours as in [http://www.w3.org/TR/powder-use-cases/ POWDER: Use Cases and Requirements], and non-functional requirements raised by the use-case. Use cases act like the hub of a wheel, with spokes supporting requirements analysis, scenario-based evaluation, testing, and integration with non-functional, or quality requirements.&lt;br /&gt;
&lt;br /&gt;
* '''Scenarios''' are more focused still, representing a single instance of a use case in action. Scenarios may range from lightweight narratives as seen in [http://www.w3.org/TR/media-frags-reqs/ Use cases and requirements for Media Fragments], to being formally modeled as interaction diagrams. Each use-case should include at least a primary scenario, and possibly other alternative scenarios.&lt;br /&gt;
&lt;br /&gt;
* '''[[#Requirements| Requirements]]''' list non-functional or quality requirements, and the use cases they may be derived from. This approach is exemplified in the [http://dvcs.w3.org/hg/gld/raw-file/default/dcat-ucr/index.html Use Cases and Requirements for the Data Catalog Vocabulary].&lt;br /&gt;
&lt;br /&gt;
== User Stories ==&lt;br /&gt;
&lt;br /&gt;
=== Maintaining Social Contact Information ===&lt;br /&gt;
&lt;br /&gt;
Many of us have multiple email accounts that include information about the people and organizations we interact with – names, email addresses, telephone numbers, instant messenger identities and so on. When someone’s email address or telephone number changes (or they acquire a new one), our lives would be much simpler if we could update that information in one spot and all copies of it would automatically be updated. In other words, those copies would all be linked to some definition of “the contact.” There might also be good reasons (like off-line email addressing) to maintain a local copy of the contact, but ideally any copies would still be linked to some central “master.”&lt;br /&gt;
&lt;br /&gt;
Agreeing on a format for “the contact” is not enough, however. Even if all our email providers agreed on the format of a contact, we would still need to use each provider’s custom interface to update or replace the provider’s copy, or we would have to agree on a way for each email provider to link to the “master”. If we look outside our own personal interests, it would be even more useful if the person or organization exposed their own contact information so we could link to it.&lt;br /&gt;
&lt;br /&gt;
What would work in either case is a common understanding of the resource, a few formats needed, and access guidance for these resources. This would support how to acquire a link to a contact, and how to use those links to interact with a contact (including [[#UC3: Retrieve resource description|reading]], [[#UC4: Update existing resource|updating]], and [[#Alternative scenario: delete resource|deleting]] it), as well as how to easily [[#Primary scenario: create resource|create a new contact]] and add it to my contacts and when deleting a contact, how it would be removed from my list of contacts. It would also be good to be able to add some application-specific data about my contacts that the original design didn’t consider. Ideally we’d like to eliminate multiple copies of contacts, there would be additional valuable information about my contacts that may be stored on separate servers and need a simple way to link this information back to the contacts. Regardless of whether a contact collection is my own, shared by an organization, or all contacts known to an email provider (or to a single email account at an email provider), it would be nice if they all worked pretty much the same way.&lt;br /&gt;
&lt;br /&gt;
=== Keeping Track of Personal and Business Relationships ===&lt;br /&gt;
&lt;br /&gt;
In our daily lives, we deal with many different organizations in many different relationships, and they each have data about us. However, it is unlikely that any one organization has all the information about us. Each of them typically gives us access to the information (at least some of it), many through websites where we are uniquely identified by some string – an account number, user ID, and so on. We have to use their applications to interact with the data about us, however, and we have to use their identifier(s) for us. If we want to build any semblance of a holistic picture of ourselves (more accurately, collect all the data about us that they externalize), we as humans must use their custom applications to find the data, copy it, and organize it to suit our needs.&lt;br /&gt;
&lt;br /&gt;
Would it not be simpler if at least the Web-addressable portion of that data could be linked to consistently, so that instead of maintaining various identifiers in different formats and instead of having to manually supply those identifiers to each one’s corresponding custom application, we could essentially build a set of bookmarks to it all? When we want to [[#UC3: Retrieve resource description|examine]] or [[#UC4: Update existing resource|change]] their contents, would it not be simpler if there were a single consistent application interface that they all supported? Of course it would.&lt;br /&gt;
&lt;br /&gt;
Our set of links would probably be a [[#UC6: Aggregate resources|simple collection]]. The information held by any single organization might be a mix of simple data and [[#UC6: Aggregate resources|collections of other data]], for example, a bank account balance and a collection of historical transactions. Our bank might easily have [[#Alternative scenario: create a nested container|a collection of accounts for each of its collection of customers]].&lt;br /&gt;
&lt;br /&gt;
=== System and Software Development Tool Integration ===&lt;br /&gt;
&lt;br /&gt;
System and software development tools typically come from a diverse set of vendors and are built on various architectures and technologies. These tools are purpose built to meet the needs for a specific domain scenario (modeling, design, requirements and so on.) Often tool vendors view integrations with other tools as a necessary evil rather than providing additional value to their end-users. Even more of an afterthought is how these tools’ data -- such as people, projects, customer-reported problems and needs -- integrate and relate to corporate and external applications that manage data such as customers, business priorities and market trends. The problem can be isolated by standardizing on a small set of tools or a set of tools from a single vendor, but this rarely occurs and if does it usually does so only within small organizations. As these organizations grow both in size and complexity, they have needs to work with outsourced development and diverse internal other organizations with their own set of tools and processes. There is a need for better support of more complete business processes (system and software development processes) that span the roles, tasks, and data addressed by multiple tools. This demand has existed for many years, and the tools vendor industry has tried several different architectural approaches to address the problem. Here are a few:&lt;br /&gt;
&lt;br /&gt;
* Implement an API for each application, and then, in each application, implement “glue code” that exploits the APIs of other applications to link them together.&lt;br /&gt;
* Design a single database to store the data of multiple applications, and implement each of the applications against this database. In the software development tools business, these databases are often called “repositories.”&lt;br /&gt;
* Implement a central “hub” or “bus” that orchestrates the broader business process by exploiting the APIs described previously.&lt;br /&gt;
&lt;br /&gt;
It is fair to say that although each of those approaches has its adherents and can point to some successes, none of them is wholly satisfactory. The use of Linked Data as an application integration technology has a strong appeal. [http://open-services.net/ OSLC]&lt;br /&gt;
&lt;br /&gt;
=== Library Linked Data ===&lt;br /&gt;
&lt;br /&gt;
The W3C Library Linked Data working group has a number of use cases cited in their Use Case Report. [http://www.w3.org/2005/Incubator/lld/wiki/UseCaseReport LLD-UC] These referenced use cases focus on the need to extract and correlate library data from disparate sources. Variants of these use cases that can provide consistent formats, as well as ways to improve or update the data, would enable simplified methods for both efficiently sharing this data as well as producing incremental updates without the need for repeated full extractions and import of data.&lt;br /&gt;
&lt;br /&gt;
The  'Digital Objects Cluster' contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Grouping: This should &amp;quot;Allow the end-users to define [[#UC6: Aggregate resources|groups of resources]] on the web that for some reason belong together. The relationship that exists between the resources is often left unspecified. Some of the resources in a group may not be under control of the institution that defines the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Enrichment: &amp;quot;Enable end-users to [[#UC4: Update existing resource|link resources together]].&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Browsing: &amp;quot;[[#UC7: Filter resource description|Support end-user browsing through groups]] and resources that belong to the groups.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Re-use: &amp;quot;Users should have the capability to re-use all or parts of a collection, with all or part of its metadata, elsewhere on the linked Web.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The 'Collections' cluster also contains a number of relevant use-cases:&lt;br /&gt;
&lt;br /&gt;
* Collection-level description: &amp;quot;Provide [[#UC7: Filter resource description|metadata pertaining to a collection as a whole]], in contrast to item-level description.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Collections discovery: &amp;quot;Enable innovative collection discovery such as identification of nearest location of a physical collection where a specific information resource is found or mobile device applications ... based on collection-level descriptions.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
* Community information services: Identify and classify collections of special interest to the community.&lt;br /&gt;
&lt;br /&gt;
=== Municipality Operational Monitoring ===&lt;br /&gt;
&lt;br /&gt;
Across various cities, towns, counties, and various municipalities there is a growing number of services managed and run by municipalities that produce and consume a vast amount of information. This information is used to help monitor services, predict problems, and handle logistics. In order to effectively and efficiently collect, produce, and analyze all this data, a fundamental set of loosely coupled standard data sources are needed. A simple, low-cost way to [[#UC3: Retrieve resource description|expose data]] from the diverse set of monitored services is needed, one that can easily integrate into the municipalities of other systems that inspect and analyze the data. All these services have links and dependencies on other data and services, so having a simple and scalable linking model is key.&lt;br /&gt;
&lt;br /&gt;
=== Healthcare ===&lt;br /&gt;
&lt;br /&gt;
For physicians to analyze, diagnose, and propose treatment for patients requires a vast amount of complex, changing and growing knowledge. This knowledge needs to come from a number of sources, including physicians’ own subject knowledge, consultation with their network of other healthcare professionals, public health sources, food and drug regulators, and other repositories of medical research and recommendations.&lt;br /&gt;
&lt;br /&gt;
To diagnose a patient’s condition requires current data on the patient’s medications and medical history. In addition, recent pharmaceutical advisories about these medications are linked into the patient’s data. If the patient experiences adverse affects from medications, these physicians need to publish information about this to an appropriate regulatory source. Other medical professionals require access to both validated and emerging effects of the medication. Similarly, if there are geographical patterns around outbreaks that allow both the awareness of new symptoms and treatments, this information needs to quickly reach a very distributed and diverse set of medical information systems. Also, reporting back to these regulatory agencies regarding new occurrences of an outbreak, including additional details of symptoms and causes, is critical in producing the most effective treatment for future incidents.&lt;br /&gt;
&lt;br /&gt;
=== Metadata Enrichment in Broadcasting ===&lt;br /&gt;
&lt;br /&gt;
There are many different use cases when broadcasters show interest in metadata [[#UC4: Update existing resource| enrichment]]:&lt;br /&gt;
&lt;br /&gt;
* enrich archive or news metadata by linking facts, events, locations and personalities&lt;br /&gt;
* enrich metadata generated by automatic extraction tools such as person identification, etc.&lt;br /&gt;
* enrich definitions of terms in classification schemes or enumeration lists&lt;br /&gt;
&lt;br /&gt;
This comes in support of more effective information management and data/content mining (if you can't find your content, it' like if you don't have and must either recreate or acquire it again, which is not financially effective).&lt;br /&gt;
&lt;br /&gt;
However, there is a need for solutions facilitating linkage to other data sources and taking care of the issues such as discovery, automation, disambiguation. Etc. Other important issues that broadcasters would face are the editorial quality of the linked data, its persistence, and usage rights.&lt;br /&gt;
&lt;br /&gt;
=== Aggregation and Mashups of Infrastructure Data ===&lt;br /&gt;
&lt;br /&gt;
For infrastructure management (such as storage systems, virtual machine environments, and similar IaaS and PaaS concepts), it is important to provide an environment in which information from different sources can be [[#UC6: Aggregate resources|aggregated]], [[#UC7: Filter resource description|filtered]], and visualized effectively. Specifically, the following use cases need to be taken into account:&lt;br /&gt;
&lt;br /&gt;
* While some data sources are based on Linked Data, others are not, and aggregation and mashups must work across these different sources.&lt;br /&gt;
* Consumers of the data sources and aggregated/filtered data streams are not necessarily implementing Linked Data themselves, they may be off-the-shelf components such as dashboard frameworks for composing visualizations.&lt;br /&gt;
* Simple versions of this scenario are pull-based, where the data is requested from data sources. In more advanced settings, without a major change in architecture it should be possible to move to a push-based interaction model, where data sources push notifications to subscribers, and data sources provide different services that consumers can subscribe to (such as &amp;quot;informational messages&amp;quot; or &amp;quot;critical alerts only&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
In this scenario, the important factors are to have abstractions that allow easy aggregation and filtering, are independent from the internal data model of the sources that are being combined, and can be used for pull-based interactions as well as for push-based interactions.&lt;br /&gt;
&lt;br /&gt;
=== Sharing payload of RDF data among low-end devices ===&lt;br /&gt;
&lt;br /&gt;
Several projects around the idea of [http://worldwidesemanticweb.wordpress.com/ downscaling the Semantic Web] need to be able to ship payloads of RDF across the nodes member of a given network. The transfers are done in a constrained context in terms of bandwidth, scope of the local semantics employed by the nodes and computing capabilities of the nodes. In a P2P style, every node has the capability to act either as a data consumer or a data provider, serving its own data or acting as a relay to pass other's data along (typically in mesh networks).&lt;br /&gt;
&lt;br /&gt;
The transfer of an arbitrary payload of RDF data could be implemented through the container mechanism, adding and removing sets of RDF triples to it. Currently, one of the project &amp;quot;SemanticXO&amp;quot; uses named graphs and the graph protocol to create/delete/copy graphs across the nodes but this (almost) imposes the usage of a triple store. Unfortunately, triple store are rather demanding piece of software that are not always usable on limited hardware. Some generic ReST like interaction backed up with a lightweight column store would be better approach.&lt;br /&gt;
&lt;br /&gt;
===  Sharing Binary Resources and Metadata ===&lt;br /&gt;
&lt;br /&gt;
When publishing datasets about stars one may want to publish links to the pictures in which those stars appear, and this may well require publishing the pictures themselves. Vice versa: when publishing a picture of space we need to know which telescope took the picture, which part of the sky it was pointing at, what filters were used, which identified stars are visible, who can read it, who can write to it, ...  &lt;br /&gt;
&lt;br /&gt;
If LinkedData contains information about resources that are most naturally expressed in non-rdf formats (be they binary such as pictures or videos, or human readable documents in XML formats), those non RDF formats should be just as easy to publish to the LinkedData server as the RDF relations that link those resources up. A LinkedData server should therefore allow publishing of non linked data resources too, and make it easy to publish and edit metadata about those resources.&lt;br /&gt;
&lt;br /&gt;
The resource comes in two parts - the image and information about the image (which may in the image file but better external to it as it's more general).  The information about the image is vital. It's a compound item of image data and other data (being application metadata about the image does not distinguish from the platform's point-of-view.&lt;br /&gt;
&lt;br /&gt;
=== Data Catalogs ===&lt;br /&gt;
&lt;br /&gt;
The Asset Description Metadata Schema ([http://joinup.ec.europa.eu/asset/adms/home ADMS]) provides the data model to describe semantic assets repositories contents, but this leaves many open challenges when building a federation of these repositories to serve the need of assets reuse. These include accessing and querying individual repositories and efficiently retrieving [[#UC5: Determine if a resource has changed| updated content]] without having to retrieve the whole content.  Hence, we chose to build the integration solution capitalizing on the Data Warehousing integration approach. This allows us to cope with heterogeneity of sources technologies and to benefit from the optimized performance it offers, given that individual repositories do not usually change frequently. With Data Warehousing, the federation requires to:&lt;br /&gt;
&lt;br /&gt;
* understand the data, i.e. understand their semantic descriptions, and other systems.&lt;br /&gt;
* seamlessly exchange the semantic assets metadata from different repositories&lt;br /&gt;
* keep itself up-to-date.&lt;br /&gt;
&lt;br /&gt;
Repositories owners can maintain de-referenceable URIs for their repository description and contained assets in a Linked Data compatible manner. ADMS provides the necessary data model to enable meaningful exchange of data. However, This leaves the challenge of efficient access to the data not fully addressed.&lt;br /&gt;
&lt;br /&gt;
Related: [http://spec.datacatalogs.org/ Data Catalog Schema and Protocol]&lt;br /&gt;
&lt;br /&gt;
=== Constrained Devices and Networks ===&lt;br /&gt;
&lt;br /&gt;
Information coming from resource constrained devices in the Web of Things ([http://en.wikipedia.org/wiki/Web_of_Things WoT]) has been identified as a major driver in many domains, from smart cities to environmental monitoring to real-time tracking. The amount of information produced by these devices is growing exponentially and needs to be accessed and integrated in a systematic, standardized and cost efficient way. By using the same standards as on the Web, integration with applications will be simplified and higher-level interactions among resource constrained devices, abstracting away heterogeneities, will become possible. Up-coming IoT/WoT standards such as [http://datatracker.ietf.org/wg/6lowpan/ 6LowPAN] - IPv6 for resource constrained devices - and the Constrained Application Protocol ([http://tools.ietf.org/html/draft-ietf-core-coap CoAP]), which provides a downscaled version of HTTP on top of UDP for the use on constrained devices, are already at a mature stage. The next step now is to support RESTful interfaces also on resource constrained devices, adhering to the Linked Data principles. Due to the limited resources available, both on the device and in the network (such as bandwidth, energy, memory) a solution based on SPARQL Update is at the current point in time considered not to be useful and/or feasible. An approach based on the [http://tools.ietf.org/html/draft-castellani-core-http-mapping HTTP-CoAP Mapping] would enable constrained devices to directly participate in a Linked Data-based environment.&lt;br /&gt;
&lt;br /&gt;
For a detailed description of [http://www.w3.org/2012/ldp/wiki/images/2/2e/Application-scenarios-constrained-devices.pdf application scenarios for constrained devices] see a separate document kindly compiled by [http://www.deri.ie/about/team/member/myriam_leggieri/ Myriam Leggieri].&lt;br /&gt;
&lt;br /&gt;
=== Services Supporting the Process of Science ===&lt;br /&gt;
Many fields of science now include branches with in silico data-intensive methods, e.g. bioinformatics, astronomy. To support these new methods we look to move beyond the established platforms provided by scientific workflow systems to capture, assist, and preserve the complete lifecycle from record of the experiment, through local trusted sharing, analysis, dissemination (including publishing of experimental data &amp;quot;beyond the PDF&amp;quot;), and re-use.&lt;br /&gt;
&lt;br /&gt;
* [[#UC6: Aggregate resources|Aggregations]], specifically ''Research Objects (ROs)'' that are exchanged between services and clients bringing together workflows, data sets, annotations, and provenance. We use an RDF model for this. While some aggregated contents are encoded using RDF and in increasing number are linked data sources, others are not; while some are stored locally &amp;quot;within&amp;quot; the RO, others are remote (in both cases this is often due to size of the resources or access policies).&lt;br /&gt;
* Services that are distributed and linked. Some may be centralising for e.g. publication, others may be local, e.g. per lab. We need lightweight services that can be simply and easily integrated into and scale across the wide variety of softwares and data used in science: we have adopted a RESTful approach where possible.&lt;br /&gt;
** Foundation services that collect and expose ROs for storage, modification, exploration, and reuse.&lt;br /&gt;
** Services that provide added-value to ROs such as seamless import/export from scientific workflow systems, automated stability evaluation, or recommendation (and therefore interact with the foundation services to retrieve/store/modify/ROs).&lt;br /&gt;
&lt;br /&gt;
seeAlso: [http://www.wf4ever-project.org/ Wf4Ever]&lt;br /&gt;
&lt;br /&gt;
=== Project Membership Information : Information Evolution ===&lt;br /&gt;
&lt;br /&gt;
Information about people and projects changes as roles change, as organisations change&lt;br /&gt;
and as contact details change. Finding the current state of a project is important&lt;br /&gt;
in enabling people to contact the right person in the right role.  It can also be&lt;br /&gt;
useful to look back and see who was performing what role in the past.&lt;br /&gt;
&lt;br /&gt;
A use of a Linked Data Platform could be to give responsibility for managing &lt;br /&gt;
such information with the project team itself, not requiring updates to be&lt;br /&gt;
requested of a centralised website administrator.  &lt;br /&gt;
&lt;br /&gt;
This could be achieved with:&lt;br /&gt;
&lt;br /&gt;
* Resource descriptions for each person and project&lt;br /&gt;
* A container resource to describe roles/membership in the project.&lt;br /&gt;
&lt;br /&gt;
To retain the history of the project, the old version of a resources, &lt;br /&gt;
including container resources, should be retained so there is a need to address both specific items&lt;br /&gt;
and also have a notion of &amp;quot;current&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Access to information has two aspects:&lt;br /&gt;
* Access to the &amp;quot;current&amp;quot; state, regardless of the version of the resource description&lt;br /&gt;
* Access to historical state, via access to a specific version of the resource description&lt;br /&gt;
&lt;br /&gt;
=== Cloud Infrastructure Management===&lt;br /&gt;
&lt;br /&gt;
Cloud operators offer API support to provide customers with remote access for infrastructure management. Infrastructure consists of Systems, Computers, Networks, Discs, etc, and the overall structure can be seen as mostly hierarchical, (Cloud contains Systems, Systems contain Machines, etc). This is complemented with crossing links (e.g. Machines connected to a Network). The IaaS scenario also makes requirements for lifecycle management, non-instant changes and history capture. Infrastructure management can be seen as the manipulation of the underlying graph.&lt;br /&gt;
&lt;br /&gt;
== Use Cases ==&lt;br /&gt;
The following use-cases are each derived from one or more of the user-stories above. These use-cases are explored in detail through the development of scenarios, each motivated by some key aspect exemplified by a single user-story. The examples they contain are included purely for illustrative purposes, and should not be interpreted normatively. &lt;br /&gt;
&lt;br /&gt;
===UC1: Manage containers===&lt;br /&gt;
A number of user-stories introduce the idea of a ''container'' as a mechanism for creating and managing resources within the context of an application. Resources grouped together within the same container would typically belong to the same application.  A container is identified by a URI so is a resource in its own right. &lt;br /&gt;
The properties of a container may also represent the ''affordances'' of that container, enabling clients to determine what other operations they can do on that container. These operations may include descriptions of application specific services that can be invoked by exchanging RDF documents.&lt;br /&gt;
&lt;br /&gt;
* Provide &amp;quot;access guidance for ... resources&amp;quot; (affordances) (from user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create container====&lt;br /&gt;
Create a new container resource within the LDP server.&lt;br /&gt;
In [[#Services Supporting the Process of Science|Services supporting the process of science]], [http://wf4ever.github.com/ro-primer/ Research Objects] are semantically rich aggregations of resources that bring together data, methods and people in scientific investigations. A basic workflow research object will be created to aggegate [http://ceur-ws.org/Vol-903/paper-01.pdf scientific workflows] and the artefacts that result from this workflow. The research object begins life as an empty container into which workflows, datasets, results and other data will be added throughout the lifecycle of the project.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix ro:     http://purl.org/wf4ever/ro#&lt;br /&gt;
@prefix dct:    http://purl.org/dc/terms/&lt;br /&gt;
@prefix ore:    http://www.openarchives.org/ore/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a ro:ResearchObject, ore:Aggregation ;&lt;br /&gt;
    dct:created &amp;quot;2012-12-01&amp;quot;^^xsd:dateTime .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: create a nested container====&lt;br /&gt;
The motivation for nested containers comes from the [[#System and Software Development Tool Integration| System and Software Development Tool Integration]] user-story. The OSLC Change Management vocabulary allows bug reports to have attachments referenced by the membership predicate &amp;lt;nowiki&amp;gt;oslc_cm:attachment&amp;lt;/nowiki&amp;gt;. The 'top-level-container' contains issues, and each issue resource has its own container of attachment resources.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt;.&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt;.&lt;br /&gt;
@prefix oslc_cm: &amp;lt;http://open-services.net/ns/cm#&amp;gt;.&lt;br /&gt;
@prefix : &amp;lt;http://example.org/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
:top-level-container rdfs:member :issue1234 .&lt;br /&gt;
&lt;br /&gt;
:issue1234 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:identifier &amp;quot;1234&amp;quot;;&lt;br /&gt;
      dcterms:type &amp;quot;a bug&amp;quot;;&lt;br /&gt;
      dcterms:related :issue1235 ;&lt;br /&gt;
      oslc_cm:attachments :attachments123.&lt;br /&gt;
&lt;br /&gt;
:issue1235 a oslc_cm:ChangeRequest;&lt;br /&gt;
      dcterms:title &amp;quot;a related bug&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:attachments a oslc_cm:AttachmentList;&lt;br /&gt;
      oslc_cm:attachment :attachment324, :attachment251.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC2: Manage resources===&lt;br /&gt;
This use-case addresses the managed lifecycle of a resource and is concerned with resource ''ownership''. The responsibility for managing resources belongs with their container.&lt;br /&gt;
For example, a container may accept a request from a client to make a new resource.&lt;br /&gt;
This use-case focuses on creation and deletion of resources in the context of a container, and the potential for transfer of ownership by moving resources between containers.&lt;br /&gt;
The ownership of a resource should always be clear; no resource managed in this way should ever be owned by more than one container.&lt;br /&gt;
&lt;br /&gt;
Once a new resource has been created it should be identified by a URI. Clients may defer responsibility for establishing dereferenceable URIs to the container of their data.&lt;br /&gt;
The container is a natural choice for the endpoint for this interface as it will already have some application-specific knowledge about the contained resources. &lt;br /&gt;
While the LDP has ultimate control over resource naming, some applications may require more control over naming, perhaps to provide a more human-readable URI. An LDP server could support something like the [http://tools.ietf.org/html/rfc5023 Atom Publishing Protocol] slug header to convey a user defined naming 'hint'.&lt;br /&gt;
&lt;br /&gt;
* Non-duplication of resources: &amp;quot;Eliminate multiple copies&amp;quot;, representing resources in a single place (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Distribution of resources: Linked aata &amp;quot;may be stored on separate servers&amp;quot; (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
* Consistent, global naming: Resources should be &amp;quot;linked to consistently, ... instead of maintaining various identifiers in different formats&amp;quot; (from [[#Keeping Track of Personal and Business Relationships]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: create resource====&lt;br /&gt;
Resources begin life by being created within a container. From user-story, [[#Maintaining Social Contact Information|Maintaining Social Contact Information]], It should be possible to &amp;quot;easily create a new contact and add it to my contacts.&amp;quot; This suggests that resource creation is closely linked to the application context. The new resource is created in a container representing &amp;quot;my contacts.&amp;quot; The lifecycle of the resource is linked to the lifecycle of it's container. So, for example, if &amp;quot;my contacts&amp;quot; is deleted then a user would also reasonably expect that all contacts within it would also be deleted.&lt;br /&gt;
&lt;br /&gt;
Contact details are captured as an RDF description and it's properties, including &amp;quot;names, email addresses, telephone numbers, instant messenger identities and so on.&amp;quot; The description may include non-standard RDF; &amp;quot;data about my contacts that the original design didn’t consider.&amp;quot; &lt;br /&gt;
The following RDF could be used to describe contact information using the [http://www.foaf-project.org FOAF] vocabulary. A contact is represented here by a &amp;lt;nowiki&amp;gt;foaf:PersonalProfileDocument&amp;lt;/nowiki&amp;gt; defining a resource that can be created and updated as a single-unit, even though it may describe ancillary resources, such as a &amp;lt;nowiki&amp;gt;foaf:Person&amp;lt;/nowiki&amp;gt;, below.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix foaf:  &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument;&lt;br /&gt;
	foaf:PrimaryTopic [ &lt;br /&gt;
		a foaf:Person;&lt;br /&gt;
		foaf:name &amp;quot;Timothy Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:title &amp;quot;Sir&amp;quot;;&lt;br /&gt;
		foaf:firstName &amp;quot;Timothy&amp;quot;;&lt;br /&gt;
		foaf:surname &amp;quot;Berners-Lee&amp;quot;;&lt;br /&gt;
		foaf:nick &amp;quot;TimBL&amp;quot;, &amp;quot;timbl&amp;quot;;&lt;br /&gt;
		foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt;;&lt;br /&gt;
		foaf:weblog &amp;lt;http://dig.csail.mit.edu/breadcrumbs/blog/4&amp;gt;;&lt;br /&gt;
		foaf:mbox &amp;lt;mailto:timbl@w3.org&amp;gt;;&lt;br /&gt;
		foaf:workplaceHomepage &amp;lt;http://www.w3.org/&amp;gt;.&lt;br /&gt;
	]&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: delete resource====&lt;br /&gt;
Delete a resource and all it's properties. If the resource resides within a container it will be removed from that container, however other links to the deleted resource may be left as dangling references.&lt;br /&gt;
In the case where the resource is a container, the server may also delete any or all contained resources.&lt;br /&gt;
In normal practice, a deleted resource cannot be reinstated. There are however, edge-cases where limited undelete may be desirable.&lt;br /&gt;
Best practice states that &amp;quot;[http://www.w3.org/TR/cooluris/| Cool URIs don't change]&amp;quot;, which implies that deleted URIs shouldn't be recycled.&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: moving contained resources====&lt;br /&gt;
Many resources may have value beyond the life of their membership in a container. This implies methods to add references to revise container membership.&lt;br /&gt;
Cloning container members for use in other containers results in duplication of information and maintenance problems; web practice is to encourage the creation of one resource, which may be referenced as many places as necessary. A change of ownership may - or may not - imply a change of URI, depending upon the specific LDP naming policy. While assigning a new URI to a resource is discouraged [http://www.w3.org/DesignIssues/Architecture.html#HTTP], it is possible to indicate that a resource has moved with an appropriate HTTP response.&lt;br /&gt;
&lt;br /&gt;
===UC3: Retrieve resource description===&lt;br /&gt;
Access the current description of a resource, containing properties of that resource and links to related resources. The representation may include descriptions of related resources that cannot be accessed directly.&lt;br /&gt;
Depending upon the application, an LDP may enrich the retrieved RDF with additional triples. Examples include adding incoming links, sameAs closure and type closure.&lt;br /&gt;
The HTTP response should also include versioning information (i.e. last update or entity tag) so that subsequent updates can ensure they are being applied to the correct version.&lt;br /&gt;
&lt;br /&gt;
* Use standard vocabularies as appropriate to enable a &amp;quot;common understanding of the resource&amp;quot; (from [[#Maintaining Social Contact Information|Maintaining Social Contact Information]]).&lt;br /&gt;
* A &amp;quot;scalable linking model is key&amp;quot; (from [[#Municipality Operational Monitoring]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario====&lt;br /&gt;
The user-story [[#Project Membership Information : Information Evolution| Project Membership Information]] discusses the representation of information about people and projects. It calls for &amp;quot;Resource descriptions for each person and project&amp;quot; allowing project teams to review information held about these resources. The example below illustrates the kinds of information that might be held about organizational structures based on the [http://www.epimorphics.com Epimorphics] [http://www.epimorphics.com/public/vocabulary/org.html organizational ontology].&lt;br /&gt;
&lt;br /&gt;
Note that the example below defines two resources (shown as separate sections below) that will be hosted on an LDP based at &amp;lt;nowiki&amp;gt;http://example.com/&amp;lt;/nowiki&amp;gt;. The representations of these resources may include descriptions of related resources, such as &amp;lt;nowiki&amp;gt;http://www.w3.org/&amp;lt;/nowiki&amp;gt;, that that fall under a different authority and therefore can't be served from the LDP at this location.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix owltime: &amp;lt;http://www.w3.org/2006/time&amp;gt; .&lt;br /&gt;
@prefix xsd: &amp;lt;http://www.w3.org/2001/XMLSchema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
     &lt;br /&gt;
&amp;lt;member1&amp;gt; a org:Membership ;&lt;br /&gt;
	org:member &amp;lt;http://www.w3.org/People/Berners-Lee/card#i&amp;gt; ;&lt;br /&gt;
	org:organization http://www.w3.org/&amp;gt; ;&lt;br /&gt;
	org:role &amp;lt;director&amp;gt; ;&lt;br /&gt;
	org:memberDuring [a owltime:Interval; owltime:hasBeginning [&lt;br /&gt;
		owltime:inXSDDateTime &amp;quot;1994-10-01T00:00:00Z&amp;quot;^^xsd:dateTime]] .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://www.w3.org/&amp;gt; a org:FormalOrganization ;&lt;br /&gt;
	skos:prefLabel &amp;quot;The World Wide Web Consortium&amp;quot;@en ;&lt;br /&gt;
	skos:altLabel &amp;quot;W3C&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix org: &amp;lt;http://www.w3.org/ns/org#&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@base &amp;lt;http://example.com/&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;director&amp;gt; a org:Role ;&lt;br /&gt;
	rdfs:label &amp;quot;Director&amp;quot; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: retrieve description of a non-document resource====&lt;br /&gt;
In many cases, the things that are of interest are not always the things that are resolvable. The example below demonstrates how a foaf profile may be used to distinguish between the person and the profile; the former being the topic of the latter. This begs the question as to what a client should do with such non-document resources. In this case the HTTP protocol requires that the fragment part be stripped off before requesting the URI from the server. The result is a resolvable URI for the profile.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@base &amp;lt;http://www.w3.org/People/Berners-Lee/card&amp;gt;&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt;.&lt;br /&gt;
@prefix dc: &amp;lt;http://purl.org/dc/elements/1.1/&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;&amp;gt; a foaf:PersonalProfileDocument ;&lt;br /&gt;
	dc:title &amp;quot;Tim Berners-Lee's FOAF file&amp;quot; ;&lt;br /&gt;
	foaf:homepage &amp;lt;http://www.w3.org/People/Berners-Lee/&amp;gt; ;&lt;br /&gt;
	foaf:primaryTopic &amp;lt;#i&amp;gt; .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===UC4: Update existing resource===&lt;br /&gt;
Change the RDF description of a LDP resource, potentially removing or overwriting existing data. This allows applications to ''enrich'' the representation of a resource by addling additional links to other resources.&lt;br /&gt;
&lt;br /&gt;
* Unrestricted vocabulary: It should be possible be &amp;quot;able to add ... application-specific data&amp;quot; to resources (from [[#Maintaining Social Contact Information]]).&lt;br /&gt;
&lt;br /&gt;
====Primary scenario: enrichment====&lt;br /&gt;
This relates to user-story [[#Metadata Enrichment in Broadcasting| Metadata Enrichment in Broadcasting]] and is based on the [http://www.bbc.co.uk/ontologies/sport/ BBC Sports Ontology]. The ''resource-centric'' view of linked-data provides a natural granularity for substituting, or overwriting a resource and its data. The simplest kind of update would simply replace what is currently known about a resource with a new representation. There are two distinct resources in the example below; a sporting event and an associated award. The granularity of the LDP would allow a user to replace the information about the award without disturbing the information about the event.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We can enrich the description as events unfold, linking to the winner of the gold medal by substituting the above description with the following.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix sport: &amp;lt;http://www.bbc.co.uk/ontologies/sport/&amp;gt; .&lt;br /&gt;
@prefix rdfs: &amp;lt;http://www.w3.org/2000/01/rdf-schema#&amp;gt; .&lt;br /&gt;
@prefix foaf: &amp;lt;http://xmlns.com/foaf/0.1/&amp;gt; .&lt;br /&gt;
 &lt;br /&gt;
 :mens_sprint a sport:MultiStageCompetition;&lt;br /&gt;
    rdfs:label &amp;quot;Men's Sprint&amp;quot;;&lt;br /&gt;
    sport:award &amp;lt;#gold_medal&amp;gt; .&lt;br /&gt;
&amp;lt;#gold_medal&amp;gt; a sport:Award; &lt;br /&gt;
    sport:awarded_to [&lt;br /&gt;
        a foaf:Agent ;&lt;br /&gt;
        foaf:name &amp;quot;Chris Hoy&amp;quot; .&lt;br /&gt;
    ] .&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Alternative scenario: selective update of a resource====&lt;br /&gt;
This relates to user-story [[#Data Catalogs|Data Catalogs]], based on the [http://vocab.deri.ie/dcat Data Catalog Vocabulary].&lt;br /&gt;
A catalogue is described by the following RDF model.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix dcat: &amp;lt;http://www.w3.org/ns/dcat#&amp;gt;	.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
   &lt;br /&gt;
 :catalog a dcat:Catalog ;&lt;br /&gt;
    dcat:dataset :dataset/001;&lt;br /&gt;
    dcterms:issued &amp;quot;2012-12-11&amp;quot;^^xsd:date.&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A catalog may contain multiple datasets, so when linking to new datasets it would be simpler and preferable to selectively add just the new dataset links.&lt;br /&gt;
A Talis ''changeset'' [http://docs.api.talis.com/getting-started/changesets][http://www.w3.org/2009/12/rdf-ws/papers/ws07] could be used to add a new &amp;lt;nowiki&amp;gt;dc:title&amp;lt;/nowiki&amp;gt; to the dataset. The following update would be directed to the catalogue to add an additional dataset.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
@prefix : &amp;lt;http://example.com/&amp;gt;.&lt;br /&gt;
@prefix dcterms: &amp;lt;http://purl.org/dc/terms/&amp;gt; .&lt;br /&gt;
@prefix cs: &amp;lt;http://purl.org/vocab/changeset/schema#&amp;gt; .&lt;br /&gt;
@prefix rdf: &amp;lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;change1&amp;gt;&lt;br /&gt;
  a cs:ChangeSet ;&lt;br /&gt;
  cs:subjectOfChange :catalog ;&lt;br /&gt;
  cs:createdDate &amp;quot;2012-01-01T00:00:00Z&amp;quot; ;&lt;br /&gt;
  cs:changeReason &amp;quot;Update catalog datasets&amp;quot; ;&lt;br /&gt;
  cs:addition [&lt;br /&gt;
    a rdf:Statement ;&lt;br /&gt;
    rdf:subject :catalog ;&lt;b