Changes: Separately test garbage collection query.
[qtcontacts-tracker:qtcontacts-tracker.git] / tests / ut_qtcontacts_trackerplugin_querybuilder / data / 202-save-request-2.rq
1 # Delete properties related objects so that we can update them.
2 # =================================================================================================
3 DELETE
4 {
5   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
6   {
7     ?subject nco:hasPostalAddress ?object .
8   }
9 }
10 WHERE
11 {
12   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
13   {
14     <contact:58390905> nco:hasAffiliation ?subject .
15     ?subject nco:hasPostalAddress ?object .
16   }
17 }
18
19 DELETE
20 {
21   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
22   {
23     ?subject ncal:dtstart ?object
24   }
25 }
26 WHERE
27 {
28   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
29   {
30     <contact:58390905> ncal:anniversary ?subject .
31     ?subject ncal:dtstart ?object
32   }
33 }
34
35 DELETE
36 {
37   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
38   {
39     ?subject nco:hasPostalAddress ?object .
40   }
41 }
42 WHERE
43 {
44   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
45   {
46     <contact:58390905> nco:hasAffiliation [ nco:org ?subject ] .
47     ?subject nco:hasPostalAddress ?object .
48   }
49 }
50
51 DELETE
52 {
53   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
54   {
55     ?subject nco:org ?object .
56   }
57 }
58 WHERE
59 {
60   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
61   {
62     <contact:58390905> nco:hasAffiliation ?subject .
63     ?subject nco:org ?object .
64   }
65 }
66
67 DELETE
68 {
69   <mailto:babera@beverly.com> ?predicate ?object .
70 }
71 WHERE
72 {
73   <mailto:babera@beverly.com> ?predicate ?object .
74   FILTER(?predicate IN (nco:emailAddress)) .
75 }
76
77 DELETE
78 {
79   <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ?predicate ?object .
80 }
81 WHERE
82 {
83   <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ?predicate ?object .
84   FILTER(?predicate IN (nao:hasProperty, nco:phoneNumber, maemo:localPhoneNumber)) .
85 }
86
87 DELETE
88 {
89   ?resource a nco:CarPhoneNumber, nco:BbsNumber, nco:PagerNumber, nco:VideoTelephoneNumber,
90               nco:MessagingNumber, nco:VoicePhoneNumber, nco:CellPhoneNumber, nco:FaxNumber,
91               nco:ModemNumber .
92 }
93 WHERE
94 {
95   ?resource a nco:PhoneNumber .
96   FILTER(?resource IN (<urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567>)) .
97 }
98
99 # Delete the contact's properties so that we can update them nicely.
100 # Only nco:contactUID and nco:contactLocalUID must be preserved.
101 # =================================================================================================
102 DELETE
103 {
104   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
105   {
106     <contact:58390905> ?predicate ?object .
107   }
108 }
109 WHERE
110 {
111   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
112   {
113     <contact:58390905> ?predicate ?object .
114     FILTER(?predicate NOT IN (rdf:type, nco:belongsToGroup, nco:contactUID, nie:contentCreated)) .
115   }
116 }
117
118 # Write new contact data
119 # =================================================================================================
120 INSERT
121 {
122   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
123   {
124     <contact:58390905>
125       rdf:type nco:PersonContact ;
126       nco:gender nco:gender-female ;
127       nco:nameGiven "Babera" ;
128       nco:nameAdditional "Beate" ;
129       nco:nameFamily "Beverly" ;
130       nco:hasAffiliation _:Affiliation_Home1, _:Affiliation_Work2 ;
131       nie:contentLastModified "2010-05-04T09:30:00Z" .
132
133     _:Affiliation_Home1
134       rdf:type nco:Affiliation ;
135       rdfs:label "Home" ;
136       nco:hasEmailAddress <mailto:babera@beverly.com> ;
137       nco:hasPhoneNumber <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ;
138       nco:websiteUrl "http://beverly.com/" .
139
140     <mailto:babera@beverly.com>
141       rdf:type nco:EmailAddress ;
142       nco:emailAddress "babera@beverly.com" .
143
144     _:Affiliation_Work2
145       rdf:type nco:Affiliation ;
146       nco:title "Office Clerk" .
147
148     <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567>
149       rdf:type nco:VoicePhoneNumber, nco:CellPhoneNumber, nco:MessagingNumber, nco:PhoneNumber ;
150       nco:phoneNumber "+4916134567" ;
151       maemo:localPhoneNumber "6134567" .
152   }
153 }
154
155 # Create new timestamp if he contact doesn't have one yet.
156 # =================================================================================================
157 INSERT
158 {
159   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
160   {
161     <contact:58390905> nie:contentCreated "2010-05-04T09:30:00Z"
162   }
163 }
164 WHERE
165 {
166   FILTER(!(EXISTS
167   {
168     GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
169     {
170       <contact:58390905> nie:contentCreated ?date
171     }
172   }))
173 }
174
175 # Create a new UUID if he contact doesn't have one yet.
176 # =================================================================================================
177 INSERT
178 {
179   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
180   {
181     <contact:58390905> nco:contactUID "<placeholder:guid>"
182   }
183 }
184 WHERE
185 {
186   FILTER(!(EXISTS
187   {
188     GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
189     {
190       <contact:58390905> nco:contactUID ?guid
191     }
192   }))
193 }
194
195 # Enforce proper sync target
196 # =================================================================================================
197 INSERT OR REPLACE
198 {
199   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
200   {
201     <contact:58390905> nie:generator "addressbook"
202   }
203 }
204 WHERE
205 {
206   FILTER((tracker:coalesce(nie:generator(<contact:58390905>), "") IN ("", "telepathy")))
207 }