Changes: Create an nco:Affiliation for each context but Other context.
[qtcontacts-tracker:hasselmms-qtcontacts-tracker.git] / tests / ut_qtcontacts_trackerplugin_querybuilder / data / 202-save-request-2.rq
1 # Delete the contact's properties from NCO ontology so that we can update them nicely.
2 # Only nco:contactUID and nco:contactLocalUID must be preserved.
3 # =================================================================================================
4 DELETE
5 {
6   <contact:58390905> ?_p ?_o
7 }
8 WHERE
9 {
10   ?_p rdfs:domain ?_d .
11   <contact:58390905> ?_p ?_o .
12   FILTER((?_d IN (nco:Contact,nco:PersonContact,nco:Role))) .
13   FILTER((?_p != nco:contactLocalUID)) .
14   FILTER((?_p != nco:contactUID)) .
15 }
16
17 # Delete contact properties we maintain which are not of the NCO ontology.
18 # =================================================================================================
19 DELETE { <contact:58390905> nie:contentLastModified ?__1 }
20 WHERE { <contact:58390905> nie:contentLastModified ?__1 . }
21
22 DELETE { <contact:58390905> nao:hasTag ?__1 }
23 WHERE { <contact:58390905> nao:hasTag ?__1 . }
24
25 # Delete custom details
26 # =================================================================================================
27 DELETE
28 {
29   <contact:58390905> nao:hasProperty ?_customDetail .
30   ?_customDetail a nao:Property, rdfs:Resource .
31   ?_customField a nao:Property
32 }
33 WHERE
34 {
35   <contact:58390905> nao:hasProperty ?_customDetail .
36   ?_customDetail nao:hasProperty ?_customField .
37 }
38
39 # Fully delete associated objects and contact medias, so that we can update them savely.
40 # =================================================================================================
41 DELETE
42 {
43   <affiliation:58390905> a rdfs:Resource .
44   <organization:58390905> a rdfs:Resource
45 }
46
47 DELETE
48 {
49   ?__1 a nao:Property
50 }
51 WHERE
52 {
53   <contact:58390905> nco:hasPostalAddress ?__2 .
54   ?__2 nao:hasProperty ?__1 .
55   ?__1 nao:propertyName ?__3 .
56   FILTER((?__3 IN ("SubTypes"^^xsd:string))) .
57 }
58
59 DELETE
60 {
61   ?__1 a rdfs:Resource
62 }
63 WHERE
64 {
65   <contact:58390905> nco:hasPostalAddress ?__1 .
66 }
67
68 DELETE
69 {
70   ?__1 a nao:Property
71 }
72 WHERE
73 {
74   <tel:+4916134567> nao:hasProperty ?__1 .
75   ?__1 nao:propertyName ?__2 .
76   FILTER((?__2 IN ("SubTypes"^^xsd:string))) .
77 }
78
79 DELETE
80 {
81   <tel:+4916134567> a nco:PhoneNumber
82 }
83
84 # Write new contact data
85 # =================================================================================================
86 INSERT
87 {
88     <contact:58390905> a nco:PersonContact
89     ; nie:contentLastModified "2010-05-04T09:30:00Z"^^xsd:dateTime
90     ; nco:contactLocalUID "58390905"^^xsd:string
91     ; nco:gender nco:gender-female
92     ; nco:hasAffiliation _:Affiliation_Home1, _:Affiliation_Work2
93     ; nco:nameAdditional "Beate"^^xsd:string
94     ; nco:nameFamily "Beverly"^^xsd:string
95     ; nco:nameGiven "Babera"^^xsd:string
96   . <mailto:babera@beverly.com>  a nco:EmailAddress
97     ; nco:emailAddress "babera@beverly.com"^^xsd:string
98   . <tel:+4916134567>  a nco:CellPhoneNumber
99     ; maemo:localPhoneNumber "6134567"^^xsd:string
100     ; nco:phoneNumber "+4916134567"^^xsd:string
101   . _:Affiliation_Home1 a nco:Affiliation
102     ; nco:hasEmailAddress <mailto:babera@beverly.com>
103     ; nco:hasPhoneNumber <tel:+4916134567>
104     ; nco:websiteUrl "http://beverly.com/"^^xsd:string
105     ; rdfs:label "Home"^^xsd:string
106   . _:Affiliation_Work2 a nco:Affiliation
107     ; nco:title "Office Clerk"^^xsd:string
108     ; rdfs:label "Work"^^xsd:string
109 }
110
111 # Create new timestamp if he contact doesn't have one yet.
112 # =================================================================================================
113 INSERT {
114   <contact:58390905> nie:contentCreated "2010-05-04T09:30:00Z"^^xsd:dateTime
115 } WHERE {
116   OPTIONAL { <contact:58390905> nie:contentCreated ?_a_nie_contentCreated . }
117   FILTER(!bound(?_a_nie_contentCreated)) .
118 }
119
120 # Create a new UUID if he contact doesn't have one yet.
121 # =================================================================================================
122 INSERT {
123   <contact:58390905> nco:contactUID "<placeholder:guid>"^^xsd:string
124 } WHERE {
125   OPTIONAL { <contact:58390905> nco:contactUID ?_a_nco_contactUID . }
126   FILTER(!bound(?_a_nco_contactUID)) .
127 }