VIVO Release 1 V1.6 Upgrade Guide
BOGUS DATE, 2013 - Upgrading from Release 1 V1.5 to Release 1 V1.6This document contains instructions on how to upgrade your installation of VIVO from Version 1.5 (or 1.5.1) to Version 1.6. This and other documentation can be found on the support page at VIVOweb.org
If you need to do a fresh install, please consult the VIVO Release V1.6 Installation
Guide found on vivoweb.org
or the install.html file located in the doc
directory of the VIVO source code distribution. The installation document also has a
list of the required software and versions.
For a description of the release contents see the Release announcement for V1.6.
Table of Contents
- Before Performing the Upgrade
-
Noteworthy Changes
- VIVO becomes more portable
- Solr is no longer secured
- Log4J properties file renamed
- Property groups now displayed in a tab format
- Class-specific SPARQL Query Data Getters
- The foaf:Person template has been re-located.
- Multiple foaf:Person Profile Pages
- Home Page Re-design
- Auto-loaded RDF files move to the Home directory
- ANYTHING ELSE?
- Upgrade Instructions
- Knowledge Base Migration
- Review the VIVO Terms of Use
- Next Steps
I. Before Performing the Upgrade
Create backups of:
- The VIVO distribution directory (which contains the source for VIVO 1.5 or VIVO 1.5.1)
- The VIVO home directory (pointed to by your deploy.properties file)
- The webapps directory in Tomcat
- MySQL database (most people use mysqldump to create the backup)
The upgrade process is similar to the initial install process with the following exceptions:
- You do not need to reinstall MySQL or recreate the MySQL database. Please backup your MySQL database as noted above.
- First-time login of the root account after the upgrade process is complete will use the password previously set (not the default password used on the first login after the initial installation.)
- The first time Apache Tomcat starts up after the upgrade, an automated process will modify the knowledge base to align the data with any ontology updates made for the new release. See the section on the Knowledge Base Migration below for more information.
II. Noteworthy Changes
-
VIVO becomes more portable
The VIVO build script now includes a
distribute
target that will produce a file calleddistribution.tar.gz
. This compressed archive contains these files:vivo.war
-- a WAR file for the main VIVO application.vivosolr.war
-- a WAR file for the Solr application.solrhome.tar
-- a Solr home directory that is configured for use with VIVO.
To permit this portability, the
deploy.properties
file has been split in two.build.properties
contains only the properties that are required for building VIVO.runtime.properties
, which must be created in the Vitro home directory, contains the properties that VIVO uses while running.If you are building to
deploy
to Tomcat (as with previous releases), thenbuild.properties
must contain these properties:vitro.core.dir
webapp.name
tomcat.home
vitro.home
-- note that this wasvitro.home.directory
in previous releases
If you are building to
distribute
, thebuild.properties
file requires only these properties:vitro.core.dir
webapp.name
Solr is no longer secured
In previous releases, Solr was deployed to Tomcat with a
RemoteAddrValve
that would only permit access from certain IP addresses. Acceptable IP addresses were those which matched the regular expression pattern in thevitro.local.solr.ipaddress.mask
property.This has been removed because:
- It caused repeated problems for sites who were experimenting with VIVO.
- It was not standards-based, but specific to Tomcat.
- It was redundant. Production instances of VIVO are usually hidden behind a firewall and accessed through an Apache Http server.
Sites that need to secure Solr are now left to their own devices.
Log4J properties file renamed
In previous releases, the properties file for the VIVO logging system was called
default.log4j.properties
. In release 1.6, this file has been renamed tolog4j.properties
. This is so the developers and implementers will know where to look for the file.Note that
debug.log4j.properties
, if present, will still override the default.Property groups now displayed in a tab format, including a "View All" tab
With release 1.6, the property group menu bar that was used on profile pages has been replaced by java script enabled tabs. When clicked, each property group tab will display the properties within that group while the contents of the previously displayed group will be hidden. The array of tabs also includes a "View All" tab that, when clicked, displays the contents of all the property groups.
Class-specific SPARQL Query Data Getters
The VIVO software now supports the development of SPARQL query data getters that can be associated with specific ontological classes. These data getters, in turn, can be accessed within Freemarker templates to provide richer content on VIVO profile pages. For example, the profile page for an academic department lists only the names of the faculty within that department and their titles, but with a SPARQL query data getter it is now possible to extend the faculty information to display all of the faculty members' research areas. Refer to this wiki page for details on how to use class-specific SPARQL query data getters:
https://wiki.duraspace.org/display/VIVO/Enriching+VIVO+Content+Using+SPARQL+Query+Data+Getters
.The foaf:Person template has been re-located.
The template individual--foaf-person.ftl has been moved to the "templates" subdirectory in the wilma theme directory (vivo/themes/wilma/templates). If your installation has a customized version of individual--foaf-person.ftl, ensure that it is located in the templates subdirectory in your installation's theme directory or, if your installation does not have it's own theme directory, in the
themes/wilma/templates subdirectory
.Multiple foaf:Person Profile Pages
VIVO now supports multiple profile pages for foaf:Persons. This feature, which is optional so installations can continue to use just the individual--foaf-person.ftl template, currently consists of two profile page types: a standard view, which is a redesigned version of the foaf:Person template in previous releases; and a quick view, which emphasizes the individual's own web page presence while providing summary VIVO information, such as current positions and research areas. The profile quick view requires the use of a web service that captures images of web pages. This web service is not included with the VIVO software. An installation will either have to develop their own service or use a third-party service, usually for a small fee depending on the number of images served. (Examples of these services include WebShotsPro, Thumbalizr and Websnapr.) For more information on how to implement multiple profile page views, refer to this wiki page:
https://wiki.duraspace.org/display/VIVO/Multiple+foaf%3APerson+Profile+Pages
.Home Page Re-design
For Release 1.6 the VIVO Home Page has been redesigned. The Search field beneath the "welcome" text now allows the user to limit the results of a search to a specific class group, such as people, organizations, etc. In addition, the browse-by-class-group display has been removed from the Home Page and replaced by multiple features, which include: a list of four randomly selected faculty members, including their titles and thumbnail images; a display of statistical data about the VIVO installation, such as the number of people, activities and organizations; and, optionally a global map showing researchers' areas of geographic focus.
Auto-loaded RDF files move to the Home directory
The RDF files that initialize the data model have moved, in both the distribution and the runtime locations. In the distribution, they have been collected in one place, and reorganized to use a more consistent naming scheme. During the build process, they are copied to a location within the VIVO home directory, instead of residing in the webapp itself.
If you have modified these RDF files, or added files of your own, you must adjust to the new locations accordingly.
Old locations of RDF files
/WEB-INF/ontologies/app/application.owl /WEB-INF/ontologies/app/aboutPage.n3 /WEB-INF/ontologies/app/menu.n3 /WEB-INF/ontologies/app/profilePageType.n3 /WEB-INF/ontologies/app/loadedAtStartup/displayModelListViews.rdf /WEB-INF/ontologies/app/loadedAtStartup/homePageDataGetters.n3 /WEB-INF/ontologies/app/loadedAtStartup/localeSelectionGUI.n3 /WEB-INF/ontologies/app/loadedAtStartup/vivoListViewConfig.rdf /WEB-INF/ontologies/app/loadedAtStartup/vivoOrganizationDataGetters.n3 /WEB-INF/ontologies/app/loadedAtStartup/vivoSearchProhibited.n3 /WEB-INF/ontologies/app/menuload/displayTBOX.n3 /WEB-INF/ontologies/app/menuload/displayDisplay.n3 /WEB-INF/init-data/initialSiteConfig.rdf /WEB-INF/ontologies/user/abox/geopolitical.ver1.1-11-18-11-individual-labels.rdf /WEB-INF/ontologies/user/abox/vocabularySource-labels.n3 /WEB-INF/ontologies/user/tbox/vitro-0.7-annotations.rdf /WEB-INF/ontologies/user/tbox/geopolitical-ver1.1-11-18-11-annotations.rdf /WEB-INF/ontologies/user/tbox/scires-1.5-annotations.rdf /WEB-INF/ontologies/user/tbox/vivo-core-1.5-annotations.rdf /WEB-INF/ontologies/user/tbox/isDefinedBy-1.5-annotations.rdf /WEB-INF/ontologies/user/applicationMetadata/propertygroups.rdf /WEB-INF/ontologies/user/applicationMetadata/classgroups.rdf /WEB-INF/filegraph/abox/us-states.rdf /WEB-INF/filegraph/abox/geopolitical.abox.ver1.1-11-18-11.owl /WEB-INF/filegraph/abox/academicDegree.rdf /WEB-INF/filegraph/abox/documentStatus.owl /WEB-INF/filegraph/abox/continents.n3 /WEB-INF/filegraph/abox/vocabularySource.n3 /WEB-INF/filegraph/abox/dateTimeValuePrecision.owl /WEB-INF/filegraph/tbox/vitroPublic.owl /WEB-INF/filegraph/tbox/vivo-dcterms-1.5.owl /WEB-INF/filegraph/tbox/scires-1.5.owl /WEB-INF/filegraph/tbox/vivo-core-1.5.owl /WEB-INF/filegraph/tbox/vivo-c4o-1.5.owl /WEB-INF/filegraph/tbox/geopolitical.tbox.ver1.1-11-18-11.owl /WEB-INF/filegraph/tbox/vivo-fabio-1.5.owl /WEB-INF/filegraph/tbox/vivo-skos-1.5.owl /WEB-INF/filegraph/tbox/vivo-event-1.5.owl /WEB-INF/filegraph/tbox/vivo-foaf-1.5.owl /WEB-INF/filegraph/tbox/vitro-0.7.owl /WEB-INF/filegraph/tbox/vivo-pws-1.5.owl /WEB-INF/filegraph/tbox/isDefinedBy-1.5.owl /WEB-INF/filegraph/tbox/vivo-dcelements-1.5.owl /WEB-INF/filegraph/tbox/vivo-bibo-1.5.owl
New locations of RDF files
rdf/display/firsttime/aboutPage.n3 rdf/display/firsttime/application.owl rdf/display/firsttime/menu.n3 rdf/display/firsttime/profilePageType.n3 rdf/display/everytime/displayModelListViews.rdf rdf/display/everytime/homePageDataGetters.n3 rdf/display/everytime/localeSelectionGUI.n3 rdf/display/everytime/vivoListViewConfig.rdf rdf/display/everytime/vivoOrganizationDataGetters.n3 rdf/display/everytime/vivoSearchProhibited.n3 rdf/displayTbox/everytime/displayTBOX.n3 rdf/displayDisplay/everytime/displayDisplay.n3 rdf/applicationMetadata/firsttime/classgroups.rdf rdf/applicationMetadata/firsttime/initialSiteConfig.rdf rdf/applicationMetadata/firsttime/propertygroups.rdf rdf/abox/firsttime/geopolitical.ver1.1-11-18-11-individual-labels.rdf rdf/abox/firsttime/vocabularySource-labels.n3 rdf/abox/filegraph/abox/academicDegree.rdf rdf/abox/filegraph/abox/continents.n3 rdf/abox/filegraph/abox/dateTimeValuePrecision.owl rdf/abox/filegraph/abox/documentStatus.owl rdf/abox/filegraph/abox/geopolitical.abox.ver1.1-11-18-11.owl rdf/abox/filegraph/abox/us-states.rdf rdf/abox/filegraph/abox/vocabularySource.n3 rdf/tbox/firsttime/geopolitical-ver1.1-11-18-11-annotations.rdf rdf/tbox/firsttime/isDefinedBy-1.5-annotations.rdf rdf/tbox/firsttime/scires-1.5-annotations.rdf rdf/tbox/firsttime/vitro-0.7-annotations.rdf rdf/tbox/firsttime/vivo-core-1.5-annotations.rdf rdf/tbox/filegraph/tbox/geopolitical.tbox.ver1.1-11-18-11.owl rdf/tbox/filegraph/tbox/isDefinedBy-1.5.owl rdf/tbox/filegraph/tbox/scires-1.5.owl rdf/tbox/filegraph/tbox/vitro-0.7.owl rdf/tbox/filegraph/tbox/vitroPublic.owl rdf/tbox/filegraph/tbox/vivo-bibo-1.5.owl rdf/tbox/filegraph/tbox/vivo-c4o-1.5.owl rdf/tbox/filegraph/tbox/vivo-core-1.5.owl rdf/tbox/filegraph/tbox/vivo-dcelements-1.5.owl rdf/tbox/filegraph/tbox/vivo-dcterms-1.5.owl rdf/tbox/filegraph/tbox/vivo-event-1.5.owl rdf/tbox/filegraph/tbox/vivo-fabio-1.5.owl rdf/tbox/filegraph/tbox/vivo-foaf-1.5.owl rdf/tbox/filegraph/tbox/vivo-pws-1.5.owl rdf/tbox/filegraph/tbox/vivo-skos-1.5.owl
If you are using a three-tier build process, you will need to add a single line to the build script so the RDF files will be merged properly across the tiers. So this:
<patternset id="appbase.patterns"> <include name="src/**/*" /> <include name="lib/**/*" /> <include name="test/**/*" /> <include name="themes/**/*" /> <include name="config/*.properties" /> <include name="config/*.txt" /> <include name="config/jarlist/*.txt" /> <include name="config/solr/*" /> <include name="context.xml" /> </patternset>
becomes this:<patternset id="appbase.patterns"> <include name="src/**/*" /> <include name="lib/**/*" /> <include name="rdf/**/*" /> <include name="test/**/*" /> <include name="themes/**/*" /> <include name="config/*.properties" /> <include name="config/*.txt" /> <include name="config/jarlist/*.txt" /> <include name="config/solr/*" /> <include name="context.xml" /> </patternset>
ANYTHING ELSE?
-
Supported Browsers
For this release, the following browsers are supported. BOGUS IS THIS LIST CURRENT?
Mac:
- Chrome 8.0.552.237
- FireFox 3.6.13
- Opera 10.6.2
- Safari 5.0.3
PC:
- Chrome 8.0.552.273
- FireFox 10.0.2
- Internet Explorer 7, 8, 9
- Opera 10.6.2
III. Upgrade Instructions
1. Download the new distribution file and unpack it into a new source directory.
2. Separate your existing deploy.properties
file into two files,
as described below. The new build.properties
file is stored in
the top level of the VIVO distribution directory. The new runtime.properties
file is stored in your Vitro home directory.
Properties in build.properties
|
Properties in runtime.properties
|
---|---|
vitro.core.dir vitro.home tomcat.home webapp.name |
All other properties from deploy.properties
|
Note that vitro.home replaces vitro.home.directory
Note that vitro.local.solr.ipaddress.mask is no longer used.
|
If you prefer, you may start with example.build.properties
and example.runtime.properties
, make copies,
and edit them to suit your installation.
The properties below are new to runtime.properties
. They are optional,
so you need not add them, unless you want a value other than the default.
Property Name | Example Value |
---|---|
Tell VIVO to generate HTTP headers on its responses to facilitate caching the profile pages that it creates. This can improve performance, but it can also result in serving stale data. Default is false if not set. For more information, see the VIVO wiki page: Use HTTP caching to improve performance | |
http.createCacheHeaders | true |
Force VIVO to use a specific language or Locale instead of those specified by the browser. This affects RDF data retrieved from the model, if RDFService.languageFilter is true. This also affects the text of pages that have been modified to support multiple languages. | |
languages.forceLocale | en_US |
A list of supported languages or Locales that the user may choose to use instead of the one specified by the browser. Selection images must be available in the i18n/images directory of the theme. This affects RDF data retrieved from the model, if RDFService.languageFilter is true. This also affects the text of pages that have been modified to support multiple languages. | |
languages.selectableLocales | en, es, fr_FR |
For developers only.
Defeat the Freemarker template cache, so each template
is read from disk on each request. This permits developers to immediately
see the effect of changes to the template. The default is false , which
means that a cached copy of each template will be used for 60 seconds
before the disk is checked for a new version.
Setting this option to "true" slows down VIVO performance. |
|
developer.defeatFreemarkerCache | false |
For developers only.
Defeat the cache of language-specific text strings,
so the language file is read from disk on each request.
This permits developers to immediately
see the effect of changes to the text strings.
The default is false , which means that the language file is
read when VIVO starts up, or when a new theme is selected.
Setting this option to "true" slows down VIVO performance. |
|
developer.defeatI18nCache = true | false |
For developers only.
Add starting and ending delimiters to each Freemarker template, so you can see
which template were invoked by viewing the generated HTML.
The default is false .
Setting this option to "true" slows down VIVO performance. |
|
developer.insertFreemarkerDelimiters = true | false |
On the VIVO home page, display a global map highlighting the geographical focus
of foaf:person individuals. The default is enabled .
|
|
homePage.geoFocusMaps = enabled | enabled |
MultiViews for foaf:person profile pages.
VIVO supports the simultaneous use of a full foaf:Person profile page view
and a "quick" page view that emphasizes the individual's own webpage presence.
Implementing this feature requires an installation to develop a web service
that captures images of web pages or to use an existing service outside of VIVO,
usually for a small fee.
The default is disabled .
|
|
MultiViews.profilePageTypes=disabled | disabled |
3. Apply any previous changes you have made to the new source directory.
Special notes regarding source files
- This process assumes any changes made to the application were made in the source directory and deployed, and were not made directly within the Tomcat webapps directory.
- In many cases, simply copying the modified files from your original source directory will not work since the files on which they are based have changed. It will be necessary to inspect the new source files and add any changes to them at that time.
- NIH-funded VIVO implementations will need to apply the Google Analytics Tracking Code (GATC) to
googleAnalytics.ftl
in the theme:[new_source_directory]/themes/[theme_dir]/templates/googleAnalytics.ftlA samplegoogleAnalytics.ftl
is included in the built-in theme. This file serves only as an example, and you must replace the tracking code shown with your institution's own tracking code. For additional information about the GATC for the NIH-funded VIVO implementation sites and a copy of your institution's tracking code, see the VIVO Google Analytics wiki page.
4. Apply any previous changes you have made to the RDF initialization files. See the section on the Auto-loaded RDF files above for more details.
5. Stop Apache Tomcat and from your VIVO source directory, run
ant
by typing: ant all
6. Start Apache Tomcat and log into VIVO as the root user when the upgrade is completed. Depending on the size of your database, the migration process may take up to several hours. When it is complete, you will see a message in the catalina.log file that the server has started.
INFO: Server startup in XXXXX ms
7. As root or an administrator, request a rebuild of the Solr search index: Go to the "Site Admin" page and click on "Rebuild Search Index" under the heading "Refresh Content".
8. Review and save aside the knowledge base migration logs.
The knowledge base migration process described in the next section will generate logs.
These logs will be overwritten if you redeploy the VIVO application (but not if you restart tomcat), and since
they may be a useful reference if questions come up about your 1.6 VIVO data after deployment,
you should save them aside.
The logs are created in the Tomcat webapps/vivo/WEB-INF directory
:
-
ontologies/update/logs/knowledgeBaseUpdate.(timestamp).log
- A log of a summary of updates that were made to the knowledge base. This file should end with "Finished knowledge base migration". If this file contains any warnings they should be reviewed with your implementation team representative to see whether any corrective action needs to be taken.
-
ontologies/update/logs/knowledgeBaseUpdate.(timestamp).error.log
- A log of errors that were encountered during the upgrade process. This file should be empty if the upgrade was successful. If any errors are encountered you will need to rerun the knowledge base migration.
9. Load the About Page .N3 file (optional). Release 1.6 provides an "about VIVO" page that is editable through the GUI, using the Page Management functionality. If your installation has a customized version of the About Page and you do not need to have it accessible via Page Management, then skip this step. Otherwise, here are the instructions for loading the About Page .N3 file:
- Once the VIVO application is running, go to the Site Admin page and click the "Ingest Tools" link under Advanced Data Tools.
- From the Ingest Menu click the "Manage Jena Tools" link, and then click the "RDB Models" button.
- Locate the "vitro-kb-displayMetadata" model and click the "load RDF data" button.
-
Click the "Browse" button to upload the file from your computer and select the aboutPage.n3 file
located here in the VIVO source:
productMods/WEB-INF/ontologies/app/aboutPage.n3
. - Select N3 as the file type from the drop-down list and then click the "Load Data" button.
- Restart tomcat.
If your installation has a customized version of the About Page, but you would like to make its content editable through the GUI, follow the above steps and then use Page Management to update the fixed HTML content.
IV. Knowledge Base Migration
Changes to the VIVO core ontology may require corresponding modifications to the knowledge base instance data and ontology annotations. When VIVO first starts up following the upgrade, it will initiate a process to examine the knowledge base and apply necessary changes. The knowledge base migration process for release 1.6 will make the following types of changes:
- BOGUS CHANGES
- Annotation property default values
-
If a site has modified the value of a vitro annotation (such as
displayRankAnnot or displayLimitAnnot) so that it is no longer using
the default, then that setting will be left unchanged.
If a site is using the default value of a vitro annotation, and the default has been changed in the new version of the ontology, then the new default value will be propagated to the knowledge base.
In addition to the logs described in step 8 of the previous section, the knowledge base migration process will log copies of all additions and deletions that were made to the knowledge base in the following files:
-
webapps/vivo/WEB-INF/ontologies/update/changedData/removedData.n3
- An N3 file containing all the statements that were removed from the knowledge base.
-
webapps/vivo/WEB-INF/ontologies/update/changedData/addedData.n3
- An N3 file containing all the statements that were added to the knowledge base.
V. Review the VIVO Terms of Use
VIVO comes with a "Terms of Use" statement linked from the footer. 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:
[vivo_source_dir]/vitro-core/webapp/web/templates/freemarker/body/termsOfUse.ftlBe 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.
Next Steps
Now that you have VIVO up and running, please refer to the Site Administrator's Guide for information about its operation.