From aced8fece7d6b0022d90b5137a9a3252fcf31b29 Mon Sep 17 00:00:00 2001 From: j2blake Date: Fri, 4 Oct 2013 16:36:35 -0400 Subject: [PATCH 1/5] VIVO-299 Notify the installer that "Terms of Use" will be referenced in RDF. --- doc/install.html | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/doc/install.html b/doc/install.html index f30964629..6b57019bd 100644 --- a/doc/install.html +++ b/doc/install.html @@ -1144,7 +1144,15 @@ The "Site Name" you assign in the "Site Information" form under the Site Admin area will be inserted into the "Terms of Use" statement. If you want to edit the text content more than just the - "Site Name", the file can be found here:
[vitro_source_dir]/webapp/web/templates/freemarker/body/termsOfUse.ftl
+ "Site Name", the file can be found here: +
[vitro_source_dir]/webapp/web/templates/freemarker/body/termsOfUse.ftl
+

+

+ Your "Terms of Use" statement is also referenced in the Linked Open Data (RDF) + that your site produces, so you should be sure that it accurately reflects + the way that your data may be used. +

+

Be sure to make the changes in your source files and deploy them to your tomcat so you don't lose your changes next time you deploy for another reason.

From 0837552f6e683617354be83bd43a37350a13a89f Mon Sep 17 00:00:00 2001 From: tworrall Date: Mon, 7 Oct 2013 11:37:06 -0400 Subject: [PATCH 2/5] updated sparql queries to use new ISF properties --- .../AdditionalURIsForContextNodes.java | 424 +++++++++++------- 1 file changed, 270 insertions(+), 154 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java index 06dfad192..4d3fa036e 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java @@ -142,6 +142,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " prefix rdf: \n" + " prefix core: \n" + " prefix foaf: \n" + + " prefix obo: \n" + + " prefix vcard: \n" + + " prefix event: \n" + " prefix rdfs: \n" + " prefix localNav: \n" + " prefix bibo: \n"; @@ -151,30 +154,39 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { // If a person changes then update // organizations for positions multiValuedQueriesForAgent.add(prefix + - "SELECT \n" + + "SELECT DISTINCT \n" + " (str(?i) as ?positionInOrganization) \n" + " WHERE {\n" - + "?uri rdf:type foaf:Agent ; ?b ?c . \n" + + "?uri rdf:type foaf:Agent ; core:relatedBy ?c . \n" + " ?c rdf:type core:Position . \n" - + " OPTIONAL { ?c core:positionInOrganization ?i . } . \n" + + " OPTIONAL { ?c core:relates ?i . ?i rdf:type foaf:Organization } . \n" + " }"); // If a person changes then update // advisee, linkedAuthor and informationResource multiValuedQueriesForAgent.add(prefix + "SELECT (str(?d) as ?advisee) \n" + - " (str(?f) as ?linkedAuthor) (str(?h) as ?linkedInformationResource) WHERE {\n" + " (str(?f) as ?linkedAuthor) (str(?h) as ?linkedInformationResource) WHERE { {\n" - + "?uri rdf:type foaf:Agent ; ?b ?c . \n" - + " ?c rdf:type core:Relationship . \n" - - + " OPTIONAL { ?c core:advisee ?d . } . \n" - + " OPTIONAL { ?c core:linkedAuthor ?f . } . \n" - + " OPTIONAL { ?c core:linkedInformationResource ?h . } . \n" - - + " } "); + + "?uri rdf:type foaf:Agent . \n" + + "?uri core:relatedBy ?c . \n" + + "?c rdf:type core:AdvisingRelationship . \n" + + "?c core:relates ?d . \n" + + "?d rdf:type core:AdviseeRole . \n" + + "?d obo:RO_0000052 ?e . \n" + + "?e rdf:type foaf:Person . \n" + + "} \n" + + "UNION { \n" + + " ?uri rdf:type foaf:Agent . \n" + + " ?uri core:relatedBy ?c . \n" + + " ?c rdf:type core:Authorship . \n" + + " OPTIONAL {?c core:relates ?f . \n" + + " ?f rdf:type foaf:Person . } \n" + + " OPTIONAL { ?c core:relates ?h . \n" + + " ?h rdf:type obo:IAO_0000030 . } \n" + + " } } "); // If a person changes then update // award giver @@ -185,7 +197,7 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + "?uri rdf:type foaf:Agent ; ?b ?c . \n" + " ?c rdf:type core:AwardReceipt . \n" - + " OPTIONAL { ?c core:awardConferredBy ?d . } . \n" + + " OPTIONAL { ?c core:assignedBy ?d . } . \n" + " }"); // If a person changes then update @@ -195,7 +207,7 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { "WHERE {\n" + "?uri rdf:type foaf:Agent ; ?b ?c . \n" - + " ?c rdf:type core:Role ; core:roleIn ?Organization .\n" + + " ?c rdf:type obo:BFO_0000023 ; obo:BFO_0000054 ?Organization .\n" + " }"); // If a person changes then update @@ -205,12 +217,13 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { "(str(?e) as ?trainingAtOrganization) WHERE {\n" + " ?uri rdf:type foaf:Agent ; ?b ?c . \n" - + " ?c rdf:type core:EducationalTraining . \n" + + " ?c rdf:type core:EducationalProcess . \n" - + " OPTIONAL { ?c core:trainingAtOrganization ?e . } . \n" + + " OPTIONAL { ?c obo:RO_0000057 ?e . \n" + + " ?e rdf:type foaf:Organization . } . " +"}"); - // If an organizatoin changes then update + // If an organization changes then update // people in head of relations multiValuedQueriesForAgent.add( " # for organization, get leader \n" + @@ -221,11 +234,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " ?uri rdf:type foaf:Agent ; ?b ?c . \n" + " ?c rdf:type core:LeaderRole . \n" - + " OPTIONAL { ?c core:leaderRoleOf ?e . } . \n" + + " OPTIONAL { ?c obo:RO_0000052 ?e . } . \n" +"}"); - - } //multivalued query for core:InformationResource @@ -233,21 +244,27 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { multiValuedQueryForInformationResource = prefix + "SELECT (str(?b) as ?linkedAuthor) (str(?d) as ?linkedInformationResource) \n" - + "(str(?e) as ?editor) \n" + + + "(str(?f) as ?editor) \n" + "(str(?i) as ?features) WHERE {\n" - + " ?uri rdf:type core:InformationResource . \n" + + " ?uri rdf:type obo:IAO_0000030 . \n" - + "OPTIONAL { ?uri core:informationResourceInAuthorship ?a . ?a core:linkedAuthor ?b ; core:linkedInformationResource ?d .\n" + - "} . " - + "OPTIONAL { ?uri bibo:editor ?e . } .\n" + + " OPTIONAL { ?uri core:relatedBy ?a . \n" + + " ?a rdf:type core:Authorship . \n" + + " ?a core:relates ?b . ?b rdf:type foaf:Person .\n" + + " ?a core:relates ?d . ?d rdf:type obo:IAO_0000030 .\n" + + "} . " + + + " OPTIONAL { ?uri core:relatedBy ?e . \n" + + " ?e rdf:type core:Editorship . \n" + + " ?e core:relates ?f . ?f rdf:type foaf:Person .\n" + + "} . " + " OPTIONAL { ?uri core:features ?i . } . \n" +"}" ; } - protected static List queriesForAuthorship(){ List queries = new ArrayList(); @@ -257,8 +274,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + "SELECT (str(?a) as ?infoResource) WHERE {\n" + " ?uri rdf:type foaf:Person . \n" - + " ?uri core:authorInAuthorship ?aship .\n" - + "OPTIONAL { ?aship core:linkedInformationResource ?a } .\n" + + " ?uri core:relatedBy ?aship .\n" + + " ?aship rdf:type core:Authorship .\n" + + "OPTIONAL { ?aship core:relates ?a . ?a rdf:type obo:IAO_0000030 } .\n" +"}" ); //get additional URIs of authors from information resource side @@ -266,9 +284,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { prefix + "SELECT (str(?a) as ?author ) WHERE {\n" - + " ?uri rdf:type core:InformationResource . \n" - + " ?uri core:informationResourceInAuthorship ?aship .\n" - + "OPTIONAL { ?aship core:linkedAuthor ?a } .\n" + + " ?uri rdf:type obo:IAO_0000030 . \n" + + " ?uri core:relatedBy ?aship . ?aship rdf:type core:Authorship . \n" + + "OPTIONAL { ?aship core:relates ?a . ?a rdf:type foaf:Person } .\n" +"}" ); return queries; } @@ -281,8 +299,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { prefix + "SELECT (str(?x) as ?individual) WHERE {\n" - + " ?uri rdf:type core:URLLink . \n" - + " ?uri core:webpageOf ?x .\n" + + " ?i rdf:type vcard:Individual . \n" + + " ?i vcard:hasURL ?uri . \n" + + " ?i obo:ARG_2000029 ?x . \n" +"}" ); return queries; @@ -302,8 +321,10 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " SELECT (str(?person) as ?personUri) WHERE {\n" + " ?uri rdf:type core:AcademicDegree . \n" - + " ?uri core:degreeOutcomeOf ?edTrainingNode .\n" - + " ?edTrainingNode core:educationalTrainingOf ?person . \n" + + " ?uri core:relatedBy ?awardedDegree .\n" + + " ?awardedDegree rdf:type core:AwardedDegree .\n" + + " ?awardedDegree core:relates ?person .\n" + + " ?person rdf:type foaf:Person .\n" +"}" ); //if the organization changes the person needs to be updated @@ -313,8 +334,10 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " SELECT (str(?person) as ?personUri) WHERE {\n" + " ?uri rdf:type foaf:Organization . \n" - + " ?uri core:organizationGrantingDegree ?edTrainingNode .\n" - + " ?edTrainingNode core:educationalTrainingOf ?person . \n" + + " ?uri obo:RO_0000056 ?edTrainingNode .\n" + + " ?edTrainingNode rdf:type core:EducationalProcess . \n" + + " ?edTrainingNode obo:RO_0000057 ?person . \n" + + " ?person rdf:type foaf:Person ." +"}" ); return queries; } @@ -328,8 +351,10 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " SELECT (str(?person) as ?personUri) WHERE {\n" + " ?uri rdf:type foaf:Organization . \n" - + " ?uri core:organizationForPosition ?positionNode .\n" - + " ?person core:personInPosition ?positionNode . \n" + + " ?uri core:relatedBy ?positionNode .\n" + + " ?positionNode rdf:type core:Position .\n" + + " ?positionNode core:relates ?person . \n" + + " ?person rdf:type foaf:Person .\n" +"}" ); @@ -339,8 +364,10 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " SELECT (str(?org) as ?orgUri) WHERE {\n" + " ?uri rdf:type foaf:Person . \n" - + " ?uri core:personInPosition ?positionNode .\n" - + " ?org core:organizationForPosition ?positionNode . \n" + + " ?uri core:relatedBy ?positionNode .\n" + + " ?positionNode rdf:type core:Position .\n" + + " ?positionNode core:relates ?org . \n" + + " ?org rdf:type foaf:Organization .\n" +"}" ); return queries; } @@ -348,21 +375,28 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { static{ // core:AttendeeRole // If the person changes, update the attendee role in organization + // core:AttendeeRole applies to events, not organizations; updating accordingly - tlw72 multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n " + - "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:AttendeeRole ; core:roleIn ?d .\n" + "SELECT (str(?d) as ?event) \n " + + "WHERE {\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:AttendeeRole . \n" + + "?c obo:BFO_0000054 ?d . \n" + + "?d rdf:type event:Event .\n" + " }"); // If the organization changes, update the attendee role of person + // core:AttendeeRole applies to events, not organizations; updating accordingly - tlw72 multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:AttendeeRole ; core:roleOf ?d .\n" + + "?uri rdf:type event:Event . \n" + + "?uri obo:BFO_0000055 ?c . \n" + + "?c rdf:type core:AttendeeRole . \n" + + "?c obo:RO_0000052 ?d . \n" + + "?d rdf:type foaf:Person .\n" + " }"); // core:ClinicalRole -- core:clinicalRoleOf @@ -370,49 +404,68 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { // If the person changes, update the clinical role in project multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?project) \n" + - "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:ClinicalRole ; core:roleIn ?d .\n" + "WHERE {\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:ClinicalRole . \n" + + "?c obo:BFO_0000054 ?d .\n" + + "?d rdf:type core:Project .\n" + " }"); + + // If the person changes, update the clinical role in service + multiValuedQueriesForRole.add(prefix + + "SELECT (str(?d) as ?service) \n" + + "WHERE {\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:ClinicalRole . \n" + + "?c core:roleContributesTo ?d .\n" + + "?d rdf:type obo:ERO_0000005 .\n" + + " }"); + // If the project changes, update the clinical role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Project ; ?b ?c . \n" - + " ?c rdf:type core:ClinicalRole ; core:clinicalRoleOf ?d .\n " + + "?uri rdf:type core:Project . \n" + + "?uri obo:BFO_0000055 ?c . \n" + + "?c rdf:type core:ClinicalRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); // If the service changes, update the clinical role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + - "WHERE {\n" - - + "?uri rdf:type core:Service ; ?b ?c . \n" - + " ?c rdf:type core:ClinicalRole ; core:clinicalRoleOf ?d .\n " + "WHERE {\n" + + "?uri rdf:type obo:ERO_0000005 . \n" + + "?uri core:contributingRole ?c . \n" + + "?c rdf:type core:ClinicalRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); - - - // core:LeaderRole -- core:leaderRoleOf - + // If the person changes, update the leader role in organization multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?organization) \n" + - "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:LeaderRole ; core:roleIn ?d .\n" + "WHERE {\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:LeaderRole . \n" + + "?c core:roleContributesTo ?d .\n" + + "?d rdf:type foaf:Organization .\n " + " }"); // If the organization changes, update the leader role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + - "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:LeaderRole ; core:leaderRoleOf ?d .\n" + "WHERE {\n" + + "?uri rdf:type foaf:Organization . \n" + + "?uri core:contributingRole ?c . \n" + + "?c rdf:type core:LeaderRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); // core:MemberRole -- core:memberRoleOf @@ -421,115 +474,142 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?organization) \n" + "WHERE \n{" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:MemberRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:MemberRole . \n" + + "?c core:roleContributesTo ?d .\n" + + "?d rdf:type foaf:Organization .\n " + " }"); // If the organization changes, update the member role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:MemberRole ; core:memberRoleOf ?d .\n" + + "?uri rdf:type foaf:Organization . \n" + + "?uri core:contributingRole ?c . \n" + + "?c rdf:type core:MemberRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); + // core:OrganizerRole -- core:organizerRoleOf // If the person changes, update the organizer role in organization + // organizerRole appplies to events not organizations; updating accordingly - tlw72 multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n" + + "SELECT (str(?d) as ?event) \n" + "WHERE {" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:OrganizerRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:OrganizerRole .\n" + + "?c obo:BFO_0000054 ?d .\n" + + "?d rdf:type event:Event .\n " + " }"); // If the organization changes, update the organizer role of person + // organizerRole appplies to events not organizations; updating accordingly - tlw72 multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:OrganizerRole ; core:organizerRoleOf ?d .\n" + + "?uri rdf:type event:Event . \n" + + "?uri obo:BFO_0000055 ?c . \n" + + "?c rdf:type core:OrganizerRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); + // core:OutreachProviderRole -- core:outreachProviderRoleOf // If the person changes, update the outreach provider role in organization multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?organization) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:OutreachProviderRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + "?c rdf:type core:OutreachProviderRole .\n" + + "?c core:roleContributesTo ?d .\n" + + "?d rdf:type foaf:Organization .\n " + " }"); // If the organization changes, update the outreach provider role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:OutreachProviderRole ; core:outreachProviderRoleOf ?d .\n" + + "?uri rdf:type foaf:Organization . \n" + + "?uri core:contributingRole ?c . \n" + + "?c rdf:type core:OutreachProviderRole . \n" + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); - - + // core:PresenterRole -- core:presenterRoleOf // If the person changes, update the presentation multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n" + + "SELECT (str(?d) as ?presentation) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:PresenterRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:PresenterRole . \n" + + " ?c obo:BFO_0000054 ?d .\n" + + " ?d rdf:type core:Presentation . \n" + " }"); // If the presentation changes, update the person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Presentation ; ?b ?c . \n" - + " ?c rdf:type core:PresenterRole ; core:presenterRoleOf ?d .\n" + + "?uri rdf:type core:Presentation . \n" + + "?uri obo:BFO_0000055 ?c . \n" + + " ?c rdf:type core:PresenterRole . \n " + + "?c obo:RO_0000052 ?d .\n " + + "?d rdf:type foaf:Person .\n " + " }"); // core:ResearcherRole -- core:researcherRoleOf // If the person changes, update the grant multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n" + + "SELECT (str(?d) as ?grant) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:ResearcherRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:ResearcherRole . \n " + + " ?c core:relatedBy ?d .\n" + + " ?d rdf:type core:Grant . \n" + " }"); // If the grant changes, update the researcher multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Grant ; ?b ?c . \n" - + " ?c rdf:type core:ResearcherRole ; core:researcherRoleOf ?d .\n" + + "?uri rdf:type core:Grant . \n" + + "?uri core:relates ?c . \n" + + " ?c rdf:type core:ResearcherRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); // If the grant changes, update the principal investigator multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Grant ; ?b ?c . \n" - + " ?c rdf:type core:PrincipalInvestigatorRole ; core:principalInvestigatorRoleOf ?d .\n" + + "?uri rdf:type core:Grant . \n" + + " ?uri core:relates ?c . \n" + + " ?c rdf:type core:PrincipalInvestigatorRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); // If the grant changes, update the co-principal investigator multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Grant ; ?b ?c . \n" - + " ?c rdf:type core:CoPrincipalInvestigatorRole ; core:co-PrincipalInvestigatorRoleOf ?d .\n" + + "?uri rdf:type core:Grant . \n" + + " ?uri core:relates ?c . \n" + + " ?c rdf:type core:CoPrincipalInvestigatorRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); @@ -537,45 +617,65 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Grant ; ?b ?c . \n" - + " ?c rdf:type core:InvestigatorRole ; core:investigatorRoleOf ?d .\n" + + "?uri rdf:type core:Grant . \n" + + " ?uri core:relates ?c . \n" + + " ?c rdf:type core:InvestigatorRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); + // If the person changes, update the project + multiValuedQueriesForRole.add(prefix + + "SELECT (str(?d) as ?project) \n" + + "WHERE {\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:ResearcherRole . \n " + + " ?c obo:BFO_0000054 ?d .\n" + + " ?d rdf:type core:Project . \n" + + " }"); + // If the project changes, update the researcher multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type core:Project ; ?b ?c . \n" - + " ?c rdf:type core:ResearcherRole ; core:researcherRoleOf ?d .\n" - + " }"); - - - + + "?uri rdf:type core:Project . \n" + + " ?uri obo:BFO_0000055 ?c .\n" + + " ?c rdf:type core:ResearcherRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + + " }"); + // core:EditorRole -- core:editorRoleOf, core:forInformationResource (person, informationresource) - // If the person changes, update the editor role in organization + // If the person changes, update the editor role of the info resource + // changing foaf:Organization to info content entity. Org no longer applies here - tlw72 multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n" + + "SELECT (str(?d) as ?informationResource) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:EditorRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:EditorRole . \n " + + " ?c core:roleContributesTo ?d .\n" + + "?d rdf:type obo:IAO_0000030 .\n " + " }"); - // If the organization changes, update the editor role of person + // If the info respource changes, update the editor role of person + // changing foaf:Organization to info content entity. Org no longer applies here - tlw72 multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:EditorRole ; core:editorRoleOf ?d .\n" + + "?uri rdf:type obo:IAO_0000030 . \n" + + "?uri core:contributingRole ?c . \n" + + " ?c rdf:type core:EditorRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); + // Next two queries are covered by the previous two. Commenting them out - tlw72 // If the person changes, update the information resource associated with editor role - multiValuedQueriesForRole.add(prefix + +/* multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?informationResource) \n" + "WHERE {\n" @@ -591,46 +691,56 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + "?uri rdf:type foaf:Organization ; ?b ?c . \n" + " ?c rdf:type core:EditorRole ; core:forInformationResource ?d .\n" + " }"); - +*/ // core:ServiceProviderRole -- core:serviceProviderRoleOf // If the person changes, update the service provider role in organization multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?organization) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:ServiceProviderRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type obo:ERO_0000012 . \n" + + " ?c core:roleContributesTo ?d .\n" + + " ?d rdf:type foaf:Organization .\n " + " }"); // If the organization changes, update the service provider role of person multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:ServiceProviderRole ; core:serviceProviderRoleOf ?d .\n" + + "?uri rdf:type foaf:Organization . \n" + + "?uri core:contributingRole ?c . \n" + + " ?c rdf:type obo:ERO_0000012 . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); // core:TeacherRole -- core:teacherRoleOf // If the person changes, update the teacher role in organization + // updated to make this an Event (e.g., a course) not an organization - tlw72 multiValuedQueriesForRole.add(prefix + - "SELECT (str(?d) as ?organization) \n" + + "SELECT (str(?d) as ?event) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:TeacherRole ; core:roleIn ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:TeacherRole . \n" + + " ?c obo:BFO_0000054 ?d .\n" + + " ?d rdf:type event:Event .\n " + " }"); // If the organization changes, update the teacher role of person + // updated to make this an Event (e.g., a course) not an organization - tlw72 multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?person) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:TeacherRole ; core:teacherRoleOf ?d .\n" + + "?uri rdf:type event:Event . \n" + + "?uri obo:BFO_0000055 ?c . \n" + + " ?c rdf:type core:TeacherRole . \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); @@ -638,7 +748,9 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { // core:PeerReviewerRole -- core:forInformationResource, core:reviewerRoleOf // If the person changes, update the reviewer role in organization - multiValuedQueriesForRole.add(prefix + + // There is no relationship between a reviewerRole and an organization; commenting + // the next two queries out - tlw72 +/* multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?organization) \n" + "WHERE {\n" @@ -656,23 +768,27 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + "?uri rdf:type foaf:Organization ; ?b ?c . \n" + " ?c rdf:type core:ReviewerRole ; core:reviewerRoleOf ?d .\n" + " }"); - +*/ // If the person changes, update the information resource associated with reviewer role multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?informationResource) \n " + "WHERE {\n" - - + "?uri rdf:type foaf:Person ; ?b ?c . \n" - + " ?c rdf:type core:ReviewerRole ; core:forInformationResource ?d .\n" + + "?uri rdf:type foaf:Person . \n" + + "?uri obo:RO_0000053 ?c . \n" + + " ?c rdf:type core:ReviewerRole . \n" + + " ?c core:roleContributesTo ?d .\n" + + " ?d rdf:type obo:IAO_0000030 .\n " + " }"); // If the organization changes, update the information resource associated with reviewer role multiValuedQueriesForRole.add(prefix + "SELECT (str(?d) as ?informationResource) \n" + "WHERE {\n" - - + "?uri rdf:type foaf:Organization ; ?b ?c . \n" - + " ?c rdf:type core:ReviewerRole ; core:forInformationResource ?d .\n" + + "?uri rdf:type obo:IAO_0000030 . \n" + + "?uri core:contributingRole ?c . \n" + + " ?c rdf:type core:ReviewerRole. \n " + + " ?c obo:RO_0000052 ?d .\n" + + "?d rdf:type foaf:Person .\n " + " }"); } From 6dc8094827d7ccbc222093b31e0c7e06713f9e27 Mon Sep 17 00:00:00 2001 From: j2blake Date: Mon, 7 Oct 2013 15:17:43 -0400 Subject: [PATCH 3/5] VIVO-317 Provide an un-language-filtered WebappDaoFactory Store it in VitroRequest. See that it matches the model-switching of the usual WebappDaoFactory. --- .../vitro/webapp/controller/VitroRequest.java | 8 +++++- .../webapp/filters/RequestModelsPrep.java | 28 +++++++++++++++++-- .../individual/GroupedPropertyList.java | 13 ++------- 3 files changed, 35 insertions(+), 14 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java index 0eeeed0a0..c749311a3 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/controller/VitroRequest.java @@ -215,5 +215,11 @@ public class VitroRequest extends HttpServletRequestWrapper { return (OntModel) getAttribute("languageNeutralUnionFullModel"); } - + public void setLanguageNeutralWebappDaoFactory(WebappDaoFactory wadf) { + setAttribute("languageNeutralWebappDaoFactory", wadf); + } + + public WebappDaoFactory getLanguageNeutralWebappDaoFactory() { + return (WebappDaoFactory) getAttribute("languageNeutralWebappDaoFactory"); + } } diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java index f83432551..c760a0b43 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/filters/RequestModelsPrep.java @@ -42,6 +42,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactoryConfig; import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering; import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.HideFromDisplayByPolicyFilter; +import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelector; +import edu.cornell.mannlib.vitro.webapp.dao.jena.OntModelSelectorImpl; import edu.cornell.mannlib.vitro.webapp.dao.jena.RDFServiceDataset; import edu.cornell.mannlib.vitro.webapp.dao.jena.SpecialBulkUpdateHandlerGraph; import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactorySDB; @@ -143,10 +145,13 @@ public class RequestModelsPrep implements Filter { setRawModels(vreq, dataset); - // We need access to the language-ignorant version of this model. - // Grab it before it gets wrapped in language awareness. + // We need access to some language-neutral items - either because we need to see all + // contents regardless of language, or because we need to see the blank nodes that + // are removed during language filtering. vreq.setLanguageNeutralUnionFullModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_FULL)); - + vreq.setLanguageNeutralWebappDaoFactory(new WebappDaoFactorySDB( + rdfService, createLanguageNeutralOntModelSelector(vreq), createWadfConfig(vreq))); + wrapModelsWithLanguageAwareness(vreq); setWebappDaoFactories(vreq, rdfService); @@ -229,6 +234,19 @@ public class RequestModelsPrep implements Filter { return ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM, unionModel); } + /** Create an OntModelSelector that will hold the un-language-filtered models. */ + private OntModelSelector createLanguageNeutralOntModelSelector( + VitroRequest vreq) { + OntModelSelectorImpl oms = new OntModelSelectorImpl(); + oms.setABoxModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_ABOX)); + oms.setTBoxModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_TBOX)); + oms.setFullModel(ModelAccess.on(vreq).getOntModel(ModelID.UNION_FULL)); + oms.setApplicationMetadataModel(ModelAccess.on(vreq).getOntModel(ModelID.APPLICATION_METADATA)); + oms.setDisplayModel(ModelAccess.on(vreq).getOntModel(ModelID.DISPLAY)); + oms.setUserAccountsModel(ModelAccess.on(vreq).getOntModel(ModelID.USER_ACCOUNTS)); + return oms; + } + private void wrapModelsWithLanguageAwareness(VitroRequest vreq) { wrapModelWithLanguageAwareness(vreq, ModelID.DISPLAY); wrapModelWithLanguageAwareness(vreq, ModelID.APPLICATION_METADATA); @@ -271,6 +289,10 @@ public class RequestModelsPrep implements Filter { // a different version if requested by parameters WebappDaoFactory switchedWadf = new ModelSwitcher() .checkForModelSwitching(vreq, wadf); + // Switch the language-neutral one also. + vreq.setLanguageNeutralWebappDaoFactory(new ModelSwitcher() + .checkForModelSwitching(vreq, + vreq.getLanguageNeutralWebappDaoFactory())); HideFromDisplayByPolicyFilter filter = new HideFromDisplayByPolicyFilter( RequestIdentifiers.getIdBundleForRequest(vreq), diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java index ec3f5bf69..675956d8f 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/individual/GroupedPropertyList.java @@ -20,7 +20,6 @@ import edu.cornell.mannlib.vitro.webapp.beans.PropertyGroup; import edu.cornell.mannlib.vitro.webapp.beans.PropertyInstance; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.dao.DataPropertyDao; -import edu.cornell.mannlib.vitro.webapp.dao.ModelAccess; import edu.cornell.mannlib.vitro.webapp.dao.ObjectPropertyDao; import edu.cornell.mannlib.vitro.webapp.dao.PropertyGroupDao; import edu.cornell.mannlib.vitro.webapp.dao.PropertyInstanceDao; @@ -159,7 +158,6 @@ public class GroupedPropertyList extends BaseTemplateModel { } } - @SuppressWarnings("unchecked") protected void sort(List propertyList) { try { Collections.sort(propertyList, new PropertyRanker(vreq)); @@ -177,14 +175,9 @@ public class GroupedPropertyList extends BaseTemplateModel { // DataPropertyDao.getAllPossibleDatapropsForIndividual(). The comparable method for object properties // is defined using PropertyInstance rather than ObjectProperty. - // Getting WebappDaoFactory from the session because we can't have the filtering - // that gets applied to the request. This breaks blank node structures in the - // restrictions that determine applicable properties. - WebappDaoFactory wadf = ModelAccess.on(vreq.getSession().getServletContext()).getWebappDaoFactory(); - //Allowing model switching for display model - if(vreq.getAttribute("specialWriteModel") != null) { - wadf = ModelAccess.on(vreq).getWebappDaoFactory(); - } + // Getting Language-neutral WebappDaoFactory because the language-filtering + // breaks blank node structures in the restrictions that determine applicable properties. + WebappDaoFactory wadf = vreq.getLanguageNeutralWebappDaoFactory(); PropertyInstanceDao piDao = wadf.getPropertyInstanceDao(); Collection allPropInstColl = piDao From 5dfe858a253173c1c07dab964c19941f64a4a05a Mon Sep 17 00:00:00 2001 From: j2blake Date: Mon, 7 Oct 2013 15:34:05 -0400 Subject: [PATCH 4/5] Fix typos in n3 files --- webapp/rdf/display/everytime/dataGetterLabels.n3 | 3 +++ webapp/rdf/display/everytime/pageList.n3 | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/webapp/rdf/display/everytime/dataGetterLabels.n3 b/webapp/rdf/display/everytime/dataGetterLabels.n3 index b51f4a978..5e81158a9 100644 --- a/webapp/rdf/display/everytime/dataGetterLabels.n3 +++ b/webapp/rdf/display/everytime/dataGetterLabels.n3 @@ -1,6 +1,9 @@ # $This file is distributed under the terms of the license in /doc/license.txt$ #Data getter type labels + +@prefix rdfs: . + rdfs:label "Class Group Page" . rdfs:label "Browse Page" . rdfs:label "Class Group Page - Selected Classes" . diff --git a/webapp/rdf/display/everytime/pageList.n3 b/webapp/rdf/display/everytime/pageList.n3 index 4d12e80c6..3edc7bf44 100644 --- a/webapp/rdf/display/everytime/pageList.n3 +++ b/webapp/rdf/display/everytime/pageList.n3 @@ -1,7 +1,7 @@ # $This file is distributed under the terms of the license in /doc/license.txt$ # This file is for the portions of the pageList that should not be editable, i.e. -that it cannot be deleted and that it requires certain permissions # +# that it cannot be deleted and that it requires certain permissions @prefix owl: . @prefix display: . From 6ba8de8a9dc926fb10448f5944b8918f051a0c25 Mon Sep 17 00:00:00 2001 From: tworrall Date: Mon, 7 Oct 2013 15:48:22 -0400 Subject: [PATCH 5/5] fixed additional uris for context node tests --- .../AdditionalURIsForContextNodes.java | 8 +- .../AdditionalURIsForContextNodesTest.java | 165 +++++++++--------- 2 files changed, 89 insertions(+), 84 deletions(-) diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java index 4d3fa036e..96216d636 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodes.java @@ -142,7 +142,7 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { + " prefix rdf: \n" + " prefix core: \n" + " prefix foaf: \n" - + " prefix obo: \n" + + " prefix obo: \n" + " prefix vcard: \n" + " prefix event: \n" + " prefix rdfs: \n" @@ -231,10 +231,12 @@ public class AdditionalURIsForContextNodes implements StatementToURIsToUpdate { "SELECT \n" + "(str(?e) as ?LeaderPerson ) WHERE {\n" - + " ?uri rdf:type foaf:Agent ; ?b ?c . \n" + + " ?uri rdf:type foaf:Agent . \n" + + " ?uri core:contributingRole ?c . \n" + " ?c rdf:type core:LeaderRole . \n" - + " OPTIONAL { ?c obo:RO_0000052 ?e . } . \n" + + " OPTIONAL { ?c obo:RO_0000052 ?e . \n" + + " ?e rdf:type foaf:Person . } . " +"}"); } diff --git a/webapp/test/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodesTest.java b/webapp/test/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodesTest.java index 1d721c51a..f73674d80 100644 --- a/webapp/test/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodesTest.java +++ b/webapp/test/edu/cornell/mannlib/vitro/webapp/search/indexing/AdditionalURIsForContextNodesTest.java @@ -20,7 +20,7 @@ public class AdditionalURIsForContextNodesTest { @Test public void testPositionChanges(){ String n3 = - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -33,8 +33,10 @@ public class AdditionalURIsForContextNodesTest { " . \n" + " . \n" + " . \n" + + " . \n" + + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -86,6 +88,7 @@ public class AdditionalURIsForContextNodesTest { "@prefix rdf: . \n" + "@prefix core: . \n" + "@prefix vivo: . \n" + + "@prefix obo: . \n" + " " + " \n" + " a owl:Thing , core:Role , core:LeaderRole ; \n" + @@ -94,14 +97,15 @@ public class AdditionalURIsForContextNodesTest { " core:LeaderRole ; \n" + " core:dateTimeInterval \n" + " ; \n" + - " core:leaderRoleOf ; \n" + - " core:roleIn . \n" + + " obo:RO_0000052 ; \n" + + " core:roleContributesTo . \n" + " \n" + " a , owl:Thing , , core:ClinicalOrganization ; \n" + " rdfs:label \"Organization XYZ\"^^xsd:string ; \n" + " vitro:mostSpecificType \n" + " core:ClinicalOrganization ; \n" + - " core:relatedRole . \n"; + " core:contributingRole . \n" + + " a , owl:Thing , . \n"; //make a test model with an person, an authorship context node and a book @@ -124,32 +128,31 @@ public class AdditionalURIsForContextNodesTest { String n3= " \"1, Test\" . \n " + - " \"1\"^^ . \n " + - " \"Test\"^^ . \n " + +// " \"1\"^^ . \n " + +// " \"Test\"^^ . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + " \"Leader Role\"^^ . \n " + - " . \n " + + " . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + - " . \n " + " . \n " + " . \n " + " \"University1\"^^ . \n " + - " . \n " + + " . \n " + " .\n " + " . \n " + " . \n " + " . \n " + " . \n " ; - + //make a test model with an person, a leader role node and a university OntModel model = ModelFactory.createOntologyModel(); @@ -174,10 +177,10 @@ public class AdditionalURIsForContextNodesTest { public void testMemberRoleChanges(){ String n3 = - " . \n " + + " . \n " + " \"2, Test\" . \n " + - " \"2\"^^ . \n " + - " \"Test\"^^ . \n " + +// " \"2\"^^ . \n " + +// " \"Test\"^^ . \n " + " . \n " + " . \n " + " . \n " + @@ -185,16 +188,16 @@ public class AdditionalURIsForContextNodesTest { " \"Member Role\"^^ . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + " \"University2\"^^ . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + @@ -228,25 +231,25 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"3, Test\" . \n" + - " \"3\"^^ .\n" + - " \"Test\"^^ . \n" + - " . \n" + +// " \"3\"^^ .\n" + +// " \"Test\"^^ . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + " \"Clinical Role\"^^ . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + " \"Project1\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -277,28 +280,28 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"4, Test\" . \n" + - " \"4\"^^ . \n" + - " \"Test\"^^ . \n" + - " . \n" + +// " \"4\"^^ . \n" + +// " \"Test\"^^ . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + " \"Clinical Role 2\"^^ . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + " \"Service1\"^^ . \n" + - " . \n" + - " . \n" + + " . \n" + + " . \n" + " . \n" + - " . \n" ; + " . \n" ; //make a test model with an person, a clinical role node and a service OntModel model = ModelFactory.createOntologyModel(); @@ -322,26 +325,26 @@ public class AdditionalURIsForContextNodesTest { @Test public void testPresenterRoleChangesForPresentation(){ String n3 = - " . \n" + + " . \n" + " \"5, Test\" . \n" + - " \"5\"^^ . \n" + - " \"Test\"^^ . \n" + +// " \"5\"^^ . \n" + +// " \"Test\"^^ . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + " \"Presenter Role\"^^ . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + " \"Presentation 1\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -370,26 +373,26 @@ public class AdditionalURIsForContextNodesTest { public void testPresenterRoleChangesForInvitedTalk(){ String n3 = - " . \n " + + " . \n " + " \"6, Test\" . \n " + - " \"6\"^^ . \n " + - " \"Test\"^^ . \n " + +// " \"6\"^^ . \n " + +// " \"Test\"^^ . \n " + " . \n " + " . \n " + " . \n " + " . \n " + - " . \n " + + " . \n " + " \"Presenter Role 2\"^^ . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + " . \n " + " \"Invited Talk 1\"^^ . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + @@ -405,11 +408,11 @@ public class AdditionalURIsForContextNodesTest { //if the person changes then the invited talk needs to be updated List uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n4112"); - assertTrue("did not find service for clinical role", uris.contains("http://vivo.scripps.edu/individual/n4107" )); + assertTrue("did not find invited talk for person", uris.contains("http://vivo.scripps.edu/individual/n4107" )); //if the invited talk changes then the person needs to be updated uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n4107"); - assertTrue("did not find person for clinical role", uris.contains("http://vivo.scripps.edu/individual/n4112" )); + assertTrue("did not find person for invited talk", uris.contains("http://vivo.scripps.edu/individual/n4112" )); } @@ -420,9 +423,9 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"7, Test\" . \n" + - " \"7\"^^ . \n" + - " \"Test\"^^ . \n" + - " . \n" + +// " \"7\"^^ . \n" + +// " \"Test\"^^ . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -430,15 +433,15 @@ public class AdditionalURIsForContextNodesTest { " \"Researcher Role\"^^ . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " \"Grant1\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -469,9 +472,9 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"8, Test\" . \n " + - " \"8\"^^ . \n " + - " \"Test\"^^ . \n " + - " . \n " + +// " \"8\"^^ . \n " + +// " \"Test\"^^ . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + @@ -479,16 +482,16 @@ public class AdditionalURIsForContextNodesTest { " \"Researcher Role 2\"^^ . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + " \"Project2\"^^ . \n " + - " . \n " + + " . \n " + " . \n " + " . \n " + " . \n " + @@ -519,18 +522,18 @@ public class AdditionalURIsForContextNodesTest { String n3 = - " . \n" + + " . \n" + " \"8, Test\" . \n" + - " \"8\"^^ . \n" + - " \"Test\"^^ . \n" + +// " \"8\"^^ . \n" + +// " \"Test\"^^ . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -539,7 +542,7 @@ public class AdditionalURIsForContextNodesTest { " . \n" + " \"Grant 2\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -555,11 +558,11 @@ public class AdditionalURIsForContextNodesTest { //if the person changes then the grant needs to be updated List uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n2368"); - assertTrue("did not find service for clinical role", uris.contains("http://vivo.scripps.edu/individual/n1742" )); + assertTrue("did not find grant for pi", uris.contains("http://vivo.scripps.edu/individual/n1742" )); //if the grant changes then the person needs to be updated uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n1742"); - assertTrue("did not find person for clinical role", uris.contains("http://vivo.scripps.edu/individual/n2368" )); + assertTrue("did not find pi for grant", uris.contains("http://vivo.scripps.edu/individual/n2368" )); } @@ -570,17 +573,17 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"9, Test\" . \n" + - " \"9\"^^ . \n" + - " \"Test\"^^ . \n" + +// " \"9\"^^ . \n" + +// " \"Test\"^^ . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + - " . \n" + + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -589,7 +592,7 @@ public class AdditionalURIsForContextNodesTest { " . \n" + " \"Grant 3\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -619,25 +622,25 @@ public class AdditionalURIsForContextNodesTest { String n3 = " \"10, Test\" . \n" + - " \"10\"^^ . \n" + - " \"Test\"^^ . \n" + +// " \"10\"^^ . \n" + +// " \"Test\"^^ . \n" + " . \n" + " . \n" + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + " . \n" + " \"Grant 4\"^^ . \n" + - " . \n" + + " . \n" + " . \n" + " . \n" + " . \n" + @@ -653,11 +656,11 @@ public class AdditionalURIsForContextNodesTest { //if the investigator changes then the grant needs to be updated List uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n5282"); - assertTrue("did not find grant for co-pi", uris.contains("http://vivo.scripps.edu/individual/n160" )); + assertTrue("did not find grant for investigator", uris.contains("http://vivo.scripps.edu/individual/n160" )); //if the grant changes then the investigator needs to be updated uris = uriFinder.findAdditionalURIsToIndex( "http://vivo.scripps.edu/individual/n160"); - assertTrue("did not find co-pi for grant", uris.contains("http://vivo.scripps.edu/individual/n5282" )); + assertTrue("did not find investigator for grant", uris.contains("http://vivo.scripps.edu/individual/n5282" ));