From 0a6b7be1a09e623beb40961f7756be4b52c5c3a6 Mon Sep 17 00:00:00 2001 From: brianjlowe Date: Fri, 4 Apr 2014 09:44:05 -0400 Subject: [PATCH] VIVO-727 fixes bugs with VCard migration --- .../additions/vcard1-3.sparql | 14 +++- .../sparqlConstructs/additions/vcard8.sparql | 18 ++--- .../sparqlConstructs/additions/vcard9.sparql | 11 ++- .../deletions/vcardDel.sparql | 72 +++++++++++++++++-- 4 files changed, 89 insertions(+), 26 deletions(-) diff --git a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard1-3.sparql b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard1-3.sparql index fb409425..cb908214 100644 --- a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard1-3.sparql +++ b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard1-3.sparql @@ -9,7 +9,15 @@ CONSTRUCT { _:vcard arg:ARG_2000029 ?s . _:vcard a v:Kind . } WHERE { - ?s vivo:webpage ?webpage - FILTER NOT EXISTS { ?s a foaf:Agent } - FILTER NOT EXISTS { ?s arg:ARG_2000028 ?existingvcard } + ?s a owl:Thing + FILTER ( + EXISTS { ?s vivo:email ?email } || + EXISTS { ?s vivo:primaryEmail ?primaryEmail } || + EXISTS { ?s vivo:phoneNumber ?phoneNumber } || + EXISTS { ?s vivo:primaryPhoneNumber ?primaryPhoneNumber } || + EXISTS { ?s vivo:faxNumber ?faxNumber } || + EXISTS { ?s vivo:mailingAddress ?address } || + EXISTS { ?s vivo:webpage ?webpage } + ) + FILTER NOT EXISTS { ?s arg:ARG_2000028 ?vcardNode } } diff --git a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard8.sparql b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard8.sparql index a1a53389..48c1fd52 100644 --- a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard8.sparql +++ b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard8.sparql @@ -4,15 +4,15 @@ PREFIX v: PREFIX vivo: CONSTRUCT { - ?vcard v:hasAddress _:address . - _:address a v:Address . - _:address v:streetAddress ?streetAddress . - _:address v:locality ?addressCity . - _:address v:region ?addressState . - _:address v:postalCode ?addressPostalCode . - _:address v:country ?addressCountry . - _:address ?location . - ?location _:address . + ?vcard v:hasAddress ?address . + ?address a v:Address . + ?address v:streetAddress ?streetAddress . + ?address v:locality ?addressCity . + ?address v:region ?addressState . + ?address v:postalCode ?addressPostalCode . + ?address v:country ?addressCountry . + ?address ?location . + ?location ?address . } WHERE { ?s vivo:mailingAddress ?address . OPTIONAL { ?address vivo:addressCity ?addressCity } diff --git a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard9.sparql b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard9.sparql index 62c04e1b..bf8db27a 100644 --- a/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard9.sparql +++ b/productMods/WEB-INF/ontologies/update/sparqlConstructs/additions/vcard9.sparql @@ -5,10 +5,10 @@ PREFIX v: PREFIX vivo: CONSTRUCT { - ?vcard v:hasURL _:url . - _:url a v:URL . - _:url v:url ?linkURI . - _:url rdfs:label ?linkAnchorText + ?vcard v:hasURL ?webpage . + ?webpage a v:URL . + ?webpage v:url ?linkURI . + ?webpage rdfs:label ?linkAnchorText } WHERE { ?s vivo:webpage ?webpage . ?webpage vivo:linkURI ?linkURI . @@ -16,7 +16,4 @@ CONSTRUCT { OPTIONAL { ?webpage vivo:linkAnchorText ?linkAnchorText } - FILTER NOT EXISTS { - ?vcard v:hasURL ?URLNode - } } diff --git a/productMods/WEB-INF/ontologies/update/sparqlConstructs/deletions/vcardDel.sparql b/productMods/WEB-INF/ontologies/update/sparqlConstructs/deletions/vcardDel.sparql index 1eb00279..619bf855 100644 --- a/productMods/WEB-INF/ontologies/update/sparqlConstructs/deletions/vcardDel.sparql +++ b/productMods/WEB-INF/ontologies/update/sparqlConstructs/deletions/vcardDel.sparql @@ -16,10 +16,22 @@ CONSTRUCT { ?s vivo:primaryPhoneNumber ?primaryPhoneNumber . ?s vivo:faxNumber ?faxNumber . ?s vivo:mailingAddress ?address . - ?address ?addressP ?addressO . - ?addressS ?addressQ ?address . + ?address vivo:mailingAddressFor ?s . + ?address a ?addressType . + ?address vivo:address1 ?address1 . + ?address vivo:address2 ?address2 . + ?address vivo:address3 ?address3 . + ?address vivo:addressCity ?city . + ?address vivo:addressState ?state . + ?address vivo:addressPostalCode ?postalCode . + ?address vivo:addressCountry ?country . + ?address vivo:hasGeographicLocation ?location . + ?location vivo:geographicLocationOf ?address . ?s vivo:webpage ?webpage . - ?webpage ?webpageP ?webpageO . + ?webpage vivo:webpageOf ?s . + ?webpage vivo:linkAnchorText ?linkAnchorText . + ?webpage vivo:linkURI ?linkURI . + ?webpage a vivo:URLLink . } WHERE { { ?s foaf:firstName ?firstName . @@ -55,19 +67,65 @@ CONSTRUCT { UNION { ?s vivo:mailingAddress ?address . } + UNION { + ?address vivo:mailingAddressFor ?s . + } UNION { ?s vivo:mailingAddress ?address . - ?address ?addressP ?addressO + ?address a ?addressType + FILTER(regex(str(?addressType),"vivoweb.org/ontology/core")) + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:address1 ?address1 . } UNION { ?s vivo:mailingAddress ?address . - ?addressS ?addressQ ?address - } + ?address vivo:address2 ?address2 . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:address3 ?address3 . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:addressCity ?city . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:addressState ?state . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:addressPostalCode ?postalCode . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:addressCountry ?country . + } + UNION { + ?s vivo:mailingAddress ?address . + ?address vivo:hasGeographicLocation ?location . + } + UNION { + ?s vivo:mailingAddress ?address . + ?location vivo:geographicLocationOf ?address . + } UNION { ?s vivo:webpage ?webpage } + UNION { + ?webpage vivo:webpageOf ?s + } + UNION { + ?s vivo:webpage ?webpage + } UNION { ?s vivo:webpage ?webpage . - ?webpage ?webpageP ?webpageO + ?webpage vivo:linkURI ?linkURI + } + UNION { + ?s vivo:webpage ?webpage . + ?webpage vivo:linkAnchorText ?linkAnchorText } }