Changes: Also test save request query for new contacts.
[qtcontacts-tracker:hasselmms-qtcontacts-tracker.git] / tests / ut_qtcontacts_trackerplugin_querybuilder / data / 202-save-request-1-new.rq
1 # Delete related objects so that we can update them.
2 # Don't restrict the graph as we really must to get rid of all properties
3 # =================================================================================================
4
5 DELETE
6 {
7   <mailto:andre@andrews.com> ?predicate ?object .
8 }
9 WHERE
10 {
11   <mailto:andre@andrews.com> ?predicate ?object .
12   FILTER(?predicate IN (nco:emailAddress)) .
13 }
14
15 DELETE
16 {
17   <mailto:andre.andrews@meego.com> ?predicate ?object .
18 }
19 WHERE
20 {
21   <mailto:andre.andrews@meego.com> ?predicate ?object .
22   FILTER(?predicate IN (nco:emailAddress)) .
23 }
24
25 DELETE
26 {
27   <urn:x-maemo-phone:voice:+4917212345> ?predicate ?object .
28 }
29 WHERE
30 {
31   <urn:x-maemo-phone:voice:+4917212345> ?predicate ?object .
32   FILTER(?predicate IN (nao:hasProperty, nco:phoneNumber, maemo:localPhoneNumber)) .
33 }
34
35 DELETE
36 {
37   <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ?predicate ?object .
38 }
39 WHERE
40 {
41   <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ?predicate ?object .
42   FILTER(?predicate IN (nao:hasProperty, nco:phoneNumber, maemo:localPhoneNumber)) .
43 }
44
45 # FIXME: this delete seems redundant for urn:x-maemo-phone:
46 DELETE
47 {
48   ?resource a nco:CarPhoneNumber, nco:BbsNumber, nco:PagerNumber, nco:VideoTelephoneNumber,
49               nco:MessagingNumber, nco:VoicePhoneNumber, nco:CellPhoneNumber, nco:FaxNumber,
50               nco:ModemNumber .
51 }
52 WHERE
53 {
54   ?resource a nco:PhoneNumber .
55   FILTER(?resource IN (<urn:x-maemo-phone:voice:+4917212345>,
56                        <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567>)) .
57 }
58
59 # Ensure shared resources referenced by foreign key exist.
60 # =================================================================================================
61
62 INSERT
63 {
64   _:_ a nfo:FileDataObject, nie:InformationElement
65   ; nie:url "file:///home/user/.contacts/avatars/sleeping-bonobo.png"
66   .
67 }
68 WHERE
69 {
70   FILTER(NOT EXISTS
71   {
72     ?resource nie:url "file:///home/user/.contacts/avatars/sleeping-bonobo.png"
73     .
74   })
75 }
76
77 INSERT
78 {
79   _:_ a nfo:FileDataObject, nie:InformationElement
80   ; nie:url "file:///home/user/.contacts/avatars/crazy-banana.ogv"
81   .
82 }
83 WHERE
84 {
85   FILTER(NOT EXISTS
86   {
87     ?resource nie:url "file:///home/user/.contacts/avatars/crazy-banana.ogv"
88     .
89   })
90 }
91
92 INSERT
93 {
94   _:_ a nfo:FileDataObject, nie:DataObject
95   ; nie:url "file:///home/user/.contacts/avatars/boring-cube.png"
96   .
97 }
98 WHERE
99 {
100   FILTER(NOT EXISTS
101   {
102     ?resource nie:url "file:///home/user/.contacts/avatars/boring-cube.png"
103     .
104   })
105 }
106
107 INSERT
108 {
109   _:_ a nao:Tag, rdfs:Resource ;
110   nao:prefLabel "Knorke" .
111 }
112 WHERE
113 {
114   FILTER(NOT EXISTS
115   {
116     ?resource nao:prefLabel ?value .
117     FILTER(fn:lower-case("Knorke") = fn:lower-case(?value)) .
118   })
119 }
120
121 # Write new contact data
122 # =================================================================================================
123 INSERT
124 {
125   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
126   {
127     <contact:225543300>
128         rdf:type nco:PersonContact ;
129         nco:gender nco:gender-male ;
130         nco:photo ?personalAvatarImage ;
131         nco:video ?personalAvatarVideo ;
132         nco:nameHonorificPrefix "Sir" ;
133         nco:nameGiven "Andre" ;
134         nco:nameFamily "Andrews" ;
135         nco:hasAffiliation _:organization, _:homeAffiliation, _:workAffiliation ;
136         ncal:anniversary _:wedding ;
137         nco:hobby "fishing" ;
138         nao:hasTag ?knorkeTag ;
139         nao:hasProperty _:preferencesDetail ;
140         nie:contentLastModified "2010-04-22T01:30:00Z" ;
141         nie:contentCreated "2010-04-22T01:00:00Z" ;
142         nco:contactUID "<placeholder:guid>" .
143
144     ?personalAvatarImage
145         rdf:type nie:InformationElement, nfo:FileDataObject ;
146         nie:url "file:///home/user/.contacts/avatars/sleeping-bonobo.png" .
147
148     ?personalAvatarVideo
149         rdf:type nie:InformationElement, nfo:FileDataObject ;
150         nie:url "file:///home/user/.contacts/avatars/crazy-banana.ogv" .
151
152     _:organization
153         rdf:type nco:Affiliation ;
154         nco:org _:organizationContact .
155
156     _:organizationContact
157         rdf:type nco:OrganizationContact, nco:Contact, nco:Role ;
158         nco:logo ?organizationLogo .
159
160     ?organizationLogo
161         rdf:type nie:DataObject, nfo:FileDataObject ;
162         nie:url "file:///home/user/.contacts/avatars/boring-cube.png" .
163
164     _:homeAffiliation
165         rdf:type nco:Affiliation ;
166         rdfs:label "Home" ;
167         nco:hasEmailAddress <mailto:andre@andrews.com> ;
168         nco:hasPhoneNumber <urn:x-maemo-phone:voice:+4917212345>,
169                            <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567> ;
170         nco:url "http://andrews.com/" ;
171         nco:hasPostalAddress _:homeAddress .
172
173     <mailto:andre@andrews.com>
174         rdf:type nco:EmailAddress ;
175         nco:emailAddress "andre@andrews.com" .
176
177     _:workAffiliation
178         rdf:type nco:Affiliation ;
179         rdfs:label "Work" ;
180         nco:hasEmailAddress <mailto:andre.andrews@meego.com> ;
181         nco:hasPostalAddress _:workAddress .
182
183     <mailto:andre.andrews@meego.com>
184         rdf:type nco:EmailAddress ;
185         nco:emailAddress "andre.andrews@meego.com" .
186
187     <urn:x-maemo-phone:voice:+4917212345>
188         rdf:type nco:VoicePhoneNumber, nco:PhoneNumber ;
189         nco:phoneNumber "+4917212345" ;
190         maemo:localPhoneNumber "7212345" .
191
192     <urn:x-maemo-phone:messagingcapable,mobile,voice:+4916134567>
193         rdf:type nco:VoicePhoneNumber, nco:CellPhoneNumber, nco:MessagingNumber, nco:PhoneNumber ;
194         nco:phoneNumber "+4916134567" ;
195         maemo:localPhoneNumber "6134567" .
196
197     _:homeAddress
198         rdf:type maemo:PostalAddress, nco:DomesticDeliveryAddress, nco:PostalAddress ;
199         nco:country "Germany" ;
200         nco:locality "Berlin" ;
201         nco:streetAddress "Alexanderplatz 1" .
202
203     _:workAddress
204         rdf:type nco:ParcelDeliveryAddress, nco:PostalAddress ;
205         nco:country "Germany" ;
206         nco:locality "Berlin" ;
207         nco:streetAddress "Friedrichstrasse 105" .
208
209     _:wedding
210         rdf:type ncal:Event, ncal:UnionParentClass ;
211         ncal:uid "11223344" ;
212         ncal:dtstart _:weddingDate ;
213         ncal:description "Hochzeit" ;
214         ncal:categories "Wedding" .
215
216     _:weddingDate
217         rdf:type ncal:NcalDateTime ;
218         ncal:dateTime "2007-05-05T00:00:00Z" .
219
220     ?knorkeTag
221         rdf:type rdfs:Resource, nao:Tag ;
222         nao:prefLabel "Knorke" .
223
224     _:preferencesDetail
225         rdf:type nao:Property, nie:InformationElement ;
226         nao:propertyName "Preferences" ;
227         nao:hasProperty _:preferencesDetailFieldCar, _:preferencesDetailFieldColor .
228
229     _:preferencesDetailFieldCar
230         rdf:type nao:Property ;
231         nao:propertyName "Car" ;
232         nao:propertyValue "Tesla" .
233
234     _:preferencesDetailFieldColor
235         rdf:type nao:Property ;
236         nao:propertyName "Color" ;
237         nao:propertyValue "Blue" .
238   }
239 }
240 WHERE
241 {
242   ?personalAvatarImage nie:url "file:///home/user/.contacts/avatars/sleeping-bonobo.png" .
243   ?personalAvatarVideo nie:url "file:///home/user/.contacts/avatars/crazy-banana.ogv" .
244   ?organizationLogo nie:url "file:///home/user/.contacts/avatars/boring-cube.png" .
245
246   ?knorkeTag nao:prefLabel ?__1
247   FILTER((fn:lower-case(?__1) = fn:lower-case("Knorke"))) .
248 }
249
250 # Enforce proper sync target
251 # =================================================================================================
252 # FIXME: we know out syncTarget is right
253 INSERT OR REPLACE
254 {
255   GRAPH <urn:uuid:08070f5c-a334-4d19-a8b0-12a3071bfab9>
256   {
257     <contact:225543300> nie:generator "addressbook"
258   }
259 }