diff --git a/rdf/display/everytime/searchIndexerConfigurationVivo.n3 b/rdf/display/everytime/searchIndexerConfigurationVivo.n3 index 6e8bdb54..07c81b21 100644 --- a/rdf/display/everytime/searchIndexerConfigurationVivo.n3 +++ b/rdf/display/everytime/searchIndexerConfigurationVivo.n3 @@ -1,4 +1,6 @@ @prefix : . +@prefix rdfs: . + # # Specify the SearchIndexExcluders, DocumentModifiers and IndexingUriFinders for VIVO. @@ -13,6 +15,16 @@ # ------------------------------------ +:uriFinder_forContextNodes + a , + . + +:uriFinder_forVCards + a , + . + +# ------------------------------------ + :vivodocumentModifier_calculateParameters a , . @@ -33,24 +45,180 @@ a , . -:vivodocumentModifier_ISFGrantFields - a , - . - :vivodocumentModifier_ISFMemberFields a , . -:vivodocumentModifier_informationResourceContextNodeFields - a , - . +:vivodocumentModifier_Grants_Projects_ForPerson + a , + ; + rdfs:label "Grants and projects for person" ; + :hasTypeRestriction "http://xmlns.com/foaf/0.1/Person" ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + SELECT (str(?rawresult) as ?result) + WHERE { + ?grant core:relates ?uri . + ?grant rdf:type core:Grant . + ?grant rdfs:label ?rawresult . + } + """ ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + PREFIX obo: + SELECT (str(?rawresult) as ?result) WHERE { + ?uri obo:RO_0000053 ?role . + ?role obo:BFO_0000054 ?project . + ?project rdf:type core:Project . + ?project rdfs:label ?rawresult . + } + """ . + +:vivodocumentModifier_People_Organizations_Projects_ForGrant + a , + ; + rdfs:label "People, organizations, and projects for grant" ; + :hasTypeRestriction "http://vivoweb.org/ontology/core#Grant" ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + SELECT (str(?rawresult) as ?result) + WHERE { + ?uri core:relates ?person . + ?person rdf:type foaf:Person . + ?person rdfs:label ?rawresult . + } + """ ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + SELECT (str(?rawresult) as ?result) WHERE { + ?uri core:relates ?org . + ?org rdf:type foaf:Organization . + ?org rdfs:label ?rawresult . + } + """ ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX rdfs: + PREFIX obo: + SELECT (str(?rawresult) as ?result) WHERE { + ?uri core:relates ?role . + ?role obo:BFO_0000054 ?project . + ?project rdf:type core:Project . + ?project rdfs:label ?rawresult . + } + """ . -# ------------------------------------ +:vivodocumentModifier_Grants_People_ForProject + a , + ; + rdfs:label "Grants and people for project" ; + :hasTypeRestriction "http://vivoweb.org/ontology/core#Project" ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + PREFIX obo: + SELECT (str(?rawresult) as ?result) WHERE { + ?role obo:BFO_0000054 ?uri . + ?grant core:relates ?role . + ?grant rdf:type core:Grant . + ?grant rdfs:label ?rawresult . + } + """ ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX foaf: + PREFIX rdfs: + PREFIX obo: + SELECT (str(?rawresult) as ?result) WHERE { + ?role obo:BFO_0000054 ?uri . + ?role obo:RO_0000053 ?person . + ?person rdf:type foaf:Person . + ?person rdfs:label ?rawresult . + } + """ . -:uriFinder_forContextNodes - a , - . +:vivodocumentModifier_GrantsForOrganization + a , + ; + rdfs:label "Grants for organization" ; + :hasTypeRestriction "http://xmlns.com/foaf/0.1/Organization" ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX rdfs: + SELECT (str(?rawresult) as ?result) WHERE { + ?grant core:relates ?uri . + ?grant rdf:type core:Grant . + ?grant rdfs:label ?rawresult . + } + """ . -:uriFinder_forVCards - a , - . +:vivodocumentModifier_InformationResources + a , + ; + rdfs:label "Authors, featured, editors, and subject area for InformationResource" ; + :hasTypeRestriction "http://purl.obolibrary.org/IAO_0000030" ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE { + ?uri core:relatedBy ?a . + ?a rdf:type core:Authorship . + ?a core:relates ?b . + ?b rdf:type foaf:Agent . + ?b rdfs:label ?ContextNodeProperty . + } + """ ; + :hasSparqlQuery """ + PREFIX core: + PREFIX rdfs: + SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE { + ?uri core:features ?i . + ?i rdfs:label ?ContextNodeProperty . + } + """ ; + :hasSparqlQuery """ + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX rdfs: + SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE { + ?uri core:relatedBy ?e . + ?e rdf:type core:Editorship . + ?e core:relates ?i . + ?i rdf:type foaf:Agent . + ?i rdfs:label ?ContextNodeProperty . + } + """ ; + :hasSparqlQuery """ + PREFIX owl: + PREFIX vitroDisplay: + PREFIX rdf: + PREFIX core: + PREFIX foaf: + PREFIX obo: + PREFIX rdfs: + PREFIX localNav: + PREFIX bibo: + SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE { + ?uri core:hasSubjectArea ?f . + ?f rdfs:label ?ContextNodeProperty . + } + """ . diff --git a/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoISFGrantFields.java b/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoISFGrantFields.java deleted file mode 100644 index e94018fd..00000000 --- a/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoISFGrantFields.java +++ /dev/null @@ -1,158 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding; - -import java.util.ArrayList; -import java.util.List; - -/* - * This DocumentModifier is for the ISF style grants. - * It will - * add people's names to the grant's search Document - * add the grant's name to the people's search Document - * add the grant's name to the Organization's search Document - * add the organization's name to the grant's search Document - * add the grant's names to the project's search Document - * add the people's names to the project's search Document - * add the project's name to the grant's search Document - * add the project's name to the people's search Document - */ -public class VivoISFGrantFields extends ContextNodeFields { - private static String VIVONS = "http://vivoweb.org/ontology/core#"; - - protected static final String prefix = - " prefix rdf: \n" - + " prefix core: <" + VIVONS + "> \n" - + " prefix foaf: \n" - + " prefix rdfs: \n" - + " prefix obo: \n" ; - - public VivoISFGrantFields(){ - super(queries); - } - - /** - * Query to add people's names to the grant's search Document. - * ?uri is the URI of a grant. - */ - private static String peopleForGrant = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type core:Grant . \n" + - " ?uri core:relates ?person . \n" + - " ?person rdf:type foaf:Person . \n" + - " ?person rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the grant's name to the people's search Document. - * ?uri is the URI of a person. - */ - private static String grantsForPerson = - prefix + - "SELECT \n" + - "(str(?rawresult) as ?result) WHERE \n" + - "{\n" + - " ?uri rdf:type foaf:Person . \n" + - " ?grant core:relates ?uri . \n" + - " ?grant rdf:type core:Grant . \n" + - " ?grant rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the grant's name to the Organization's search Document. - * ?uri is the URI of an Organization. - */ - private static String grantsForOrganization = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type foaf:Organization . \n" + - " ?grant core:relates ?uri . \n" + - " ?grant rdf:type core:Grant . \n" + - " ?grant rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the organization's name to the grant's search Document. - * ?uri is the URI of a grant. - */ - private static String organizationsForGrant = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type core:Grant . \n" + - " ?uri core:relates ?org . \n" + - " ?org rdf:type foaf:Organization . \n" + - " ?org rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the grant's names to the project's search Document. - * ?uir is the URI of a Project. - */ - private static String grantsForProject = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type core:Project . \n" + - " ?role obo:BFO_0000054 ?uri . \n" + - " ?grant core:relates ?role . \n" + - " ?grant rdf:type core:Grant . \n" + - " ?grant rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the people's names to the project's search Document. - * ?uri is the URI of a Project. - */ - private static String peopleForProject = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type core:Project . \n" + - " ?role obo:BFO_0000054 ?uri . \n" + - " ?role obo:RO_0000053 ?person . \n" + - " ?person rdf:type foaf:Person . \n" + - " ?person rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the project's name to the grant's search Document. - * ?uri is the URI of a grant. - */ - private static String projectsForGrant = - prefix + - "SELECT \n" + - "(str(?rawresult) as ?result) WHERE \n" + - "{\n" + - " ?uri rdf:type core:Grant. \n" + - " ?uri core:relates ?role . \n" + - " ?role obo:BFO_0000054 ?project . \n" + - " ?project rdf:type core:Project . \n" + - " ?project rdfs:label ?rawresult . \n" + - "}"; - - /** - * Query to add the project's name to the people's search Document. - * ?uri is the URI of a person. - */ - private static String projectsForPerson = - prefix + - "SELECT (str(?rawresult) as ?result) WHERE {\n" + - " ?uri rdf:type foaf:Person . \n" + - " ?uri obo:RO_0000053 ?role . \n" + - " ?role obo:BFO_0000054 ?project . \n" + - " ?project rdf:type core:Project . \n" + - " ?project rdfs:label ?rawresult . \n" + - "}"; - - static List queries = new ArrayList(); - - static{ - queries.add( peopleForGrant ); - queries.add( grantsForPerson ); - queries.add( grantsForOrganization ); - queries.add( organizationsForGrant ); - queries.add( grantsForProject ); - queries.add( peopleForProject ); - queries.add( projectsForGrant ); - queries.add( projectsForPerson ); - } -} diff --git a/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFields.java b/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFields.java deleted file mode 100644 index 36d5d5b0..00000000 --- a/src/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFields.java +++ /dev/null @@ -1,82 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding; - -import java.util.ArrayList; -import java.util.List; - -/** - * Class that adds text from context nodes to search index Documents for - * obo:IAO_0000030 individuals. - * - * @author bdc34 - * - */ -public class VivoInformationResourceContextNodeFields extends ContextNodeFields{ - - static List queriesForInformationResource = new ArrayList(); - - public VivoInformationResourceContextNodeFields(){ - super(queriesForInformationResource); - } - - protected static final String prefix = - "prefix owl: " - + " prefix vitroDisplay: " - + " prefix rdf: " - + " prefix core: " - + " prefix foaf: " - + " prefix obo: " - + " prefix rdfs: " - + " prefix localNav: " - + " prefix bibo: "; - - - //queries for obo:IAO_0000030 - static { - - /* linked author labels */ - - queriesForInformationResource - .add(prefix - + "SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE {" - + "?uri rdf:type obo:IAO_0000030 . " - + "?uri core:relatedBy ?a . " - + "?a rdf:type core:Authorship ." - + "?a core:relates ?b ." - + "?b rdf:type foaf:Agent ." - + "?b rdfs:label ?ContextNodeProperty .}"); - - /* features */ - - queriesForInformationResource - .add(prefix - + "SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE {" - + "?uri rdf:type obo:IAO_0000030 . " - + "?uri core:features ?i . ?i rdfs:label ?ContextNodeProperty ." - + "}"); - - /* editor */ - - queriesForInformationResource - .add(prefix - + "SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE {" - + "?uri rdf:type obo:IAO_0000030 . " - + "?uri core:relatedBy ?e . " - + "?e rdf:type core:Editorship ." - + "?e core:relates ?i ." - + "?i rdf:type foaf:Agent ." - + "?i rdfs:label ?ContextNodeProperty ." - + "}"); - - /* subject area */ - - queriesForInformationResource - .add(prefix - + "SELECT (str(?ContextNodeProperty) as ?contextNodeProperty) WHERE {" - + "?uri rdf:type obo:IAO_0000030 . " - + "?uri core:hasSubjectArea ?f . ?f rdfs:label ?ContextNodeProperty ." - + "}"); - } - -} diff --git a/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.java b/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.java deleted file mode 100644 index aaaa16a9..00000000 --- a/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.java +++ /dev/null @@ -1,79 +0,0 @@ -/* $This file is distributed under the terms of the license in /doc/license.txt$ */ - -package edu.cornell.mannlib.vitro.webapp.searchindex.documentBuilding; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Collection; - -import org.junit.Assert; -import org.junit.Test; - -import stubs.edu.cornell.mannlib.vitro.webapp.modelaccess.ContextModelAccessStub; -import stubs.edu.cornell.mannlib.vitro.webapp.modules.ApplicationStub; -import stubs.edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchEngineStub; -import stubs.javax.servlet.ServletContextStub; - -import com.hp.hpl.jena.ontology.OntModel; -import com.hp.hpl.jena.ontology.OntModelSpec; -import com.hp.hpl.jena.rdf.model.Model; -import com.hp.hpl.jena.rdf.model.ModelFactory; - -import edu.cornell.mannlib.vitro.testing.AbstractTestClass; -import edu.cornell.mannlib.vitro.webapp.application.ApplicationUtils; -import edu.cornell.mannlib.vitro.webapp.beans.Individual; -import edu.cornell.mannlib.vitro.webapp.dao.WebappDaoFactory; -import edu.cornell.mannlib.vitro.webapp.dao.jena.WebappDaoFactoryJena; -import edu.cornell.mannlib.vitro.webapp.modelaccess.ModelAccess.WhichService; -import edu.cornell.mannlib.vitro.webapp.modules.searchEngine.SearchInputDocument; -import edu.cornell.mannlib.vitro.webapp.rdfservice.impl.jena.model.RDFServiceModel; - -public class VivoInformationResourceContextNodeFieldsTest extends AbstractTestClass { - - String TEST_NO_LABLE_N3_FILE = "VivoInformationResourceContextNodeFieldsTest.n3"; - String RDFS_LABEL_VALUE = "Test Document X"; - String DOCUMENT_URI = "http://example.com/vivo/individual/n7474"; - - @Test - public void testNoLabel() throws IOException{ - ApplicationStub.setup(new ServletContextStub(), new SearchEngineStub()); - - //Test that rdfs:label is NOT added by the VivoInformationResourceContextNodeFields - - //setup a model & wdf with test RDF file - InputStream stream = VivoInformationResourceContextNodeFieldsTest.class.getResourceAsStream(TEST_NO_LABLE_N3_FILE); - Model model = ModelFactory.createDefaultModel(); - model.read(stream, null, "N3"); - stream.close(); - - OntModel ontModel = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM,model); - ontModel.prepare(); - Assert.assertTrue("ontModel had no statements" , ontModel.size() > 0 ); - - WebappDaoFactory wadf = new WebappDaoFactoryJena(ontModel); - Individual ind = wadf.getIndividualDao().getIndividualByURI(DOCUMENT_URI); - Assert.assertNotNull(ind); - - ContextModelAccessStub contextModels = new ContextModelAccessStub(); - contextModels.setRDFService(WhichService.CONTENT, new RDFServiceModel(ontModel)); - - SearchInputDocument doc = ApplicationUtils.instance().getSearchEngine().createInputDocument(); - doc.addField("ALLTEXT", ""); - - VivoInformationResourceContextNodeFields vircnf = new VivoInformationResourceContextNodeFields(); - vircnf.setContextModels(contextModels); - vircnf.modifyDocument(ind, doc); - - Collection values = doc.getField("ALLTEXT").getValues(); - for( Object value : values){ - Assert.assertFalse("rdf:label erroneously added by document modifier:", value.toString().contains(RDFS_LABEL_VALUE)); - } - - VivoAgentContextNodeFields vacnf = new VivoAgentContextNodeFields(); - vacnf.setContextModels(contextModels); - vacnf.modifyDocument(ind, doc); - - } - - -} diff --git a/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.n3 b/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.n3 deleted file mode 100644 index 8567af77..00000000 --- a/test/edu/cornell/mannlib/vitro/webapp/searchindex/documentBuilding/VivoInformationResourceContextNodeFieldsTest.n3 +++ /dev/null @@ -1,19 +0,0 @@ -@prefix dc: . -@prefix rdfs: . -@prefix vitro: . -@prefix owl: . -@prefix xsd: . -@prefix rdf: . - - - a , owl:Thing , , ; - rdfs:label "Test Document X"@en-US ; - - ; - - "Test Document X"@en-US ; - vitro:modTime "2011-11-01T11:11:49"^^xsd:dateTime ; - vitro:mostSpecificType - ; - - . \ No newline at end of file