diff --git a/doc/install.html b/doc/install.html
index 178a9711..380f2866 100644
--- a/doc/install.html
+++ b/doc/install.html
@@ -1,663 +1,1086 @@
-
-
-
VIVO Release 1 V1.3 Installation Guide
-
July 22, 2011
-
-
-
Release anouncement for V1.3
-See wiki page.
-
-
Installation process for V1.3
-
This document is a summary of the VIVO installation process. This
-and other documentation can be found on the support page at VIVOweb.org
-
- - These instructions assume that you are performing a clean
-install, including emptying an existing database, emptying the VIVO
-home directory, and removing a previous installation from the Tomcat
-webapps directory. Product functionality may not be as expected if you
-install over an existing installation of an earlier version.
- - If you are going to upgrade an existing service, please consult
-the "upgrade" files in this directory.
-
-
VIVO Developers: If you are working on the VIVO source code from
-Subversion, the instructions are slightly different. Please consult
-developers.txt in this directory.
-
Where does VIVO live on your computer?
-
Before beginning the installation, let's look at the four locations
-on your computer that will hold VIVO.
-
The VIVO distribution directory
-
This is created when you unpack the VIVO distribution file (see Step III, below). This is where you will
-create your deploy.properties file (see Step
-V, below), and where you will make any modifications to the VIVO
-theme or code. You can create this wherever you choose.
-
VIVO inside Tomcat
-
When you run the build script to compile and deploy VIVO (see Step VI, below), the files will be deployed to a
-directory inside Tomcat. This is the actual executing code for VIVO,
-but you won’t need to look at it or change it. If you need to change
-VIVO, make the changes in the distribution directory, and run the build
-script again. Tell the build script where to find Tomcat by setting tomcat.home
-in the deploy.properties file (see Step V,
-
-below).
-
-
The VIVO home directory
-
VIVO will use this area to store some of the data it uses. Uploaded
-image files are stored here, and the search index is stored here also.
-You can create this wherever you choose. Tell VIVO where to find the
-home directory by setting vitro.home.directory
in the
-deploy.properties file (see Step V,
-below). You must create this directory before starting VIVO, and you
-must ensure that Tomcat has permission to read and write to this
-directory when it runs.
-
The MySQL database
-
Essentially all of the data that you store in VIVO will be given to
-MySQL for storage. The actual location of this data depends on what
-system you have, and on how you install MySQL (see Step I, below). but you won’t need to
-know the location. You will access the data through VIVO, or
-occasionally through the MySQL client application.
-
-Steps to Installation
-
- - Install required software
- - Create an empty MySQL database
- - Download the VIVO Application Source
-
- - Specify deployment properties
- - Compile and deploy
- - Set Tomcat JVM parameters and
-security limits
- - Start Tomcat
- - Log in and add RDF data
- - Set the Contact Email Address (if
-using "Contact Us" form)
- - Setup Apache Tomcat Connector
- - Using an External Authentication
-System with VIVO
- - Was the installation successful?
-
-
-
-
I. Install required software
-
Before installing VIVO, make sure that the following software is
-installed on the desired machine:
-
-
Be sure to set up the environment variables for JAVA_HOME
-and ANT_HOME
and add the executables to your path per
-your operating system and installation directions from the software
-support websites.
-
* Note that VIVO 1.2 will not run on older versions of MySQL that
-may have worked with 1.1.1. Be sure to run VIVO 1.2 with MySQL 5.1 or
-higher. Using unsupported versions may result in strange error messages
-related to table formatting or other unexpected problems.
-
* Note that VIVO is not yet compatible with Tomcat 7.
-
II. Create an empty MySQL database
-
Decide on a database name, username, and password. Log into your
-MySQL server and create a new database in MySQL that uses UTF-8
-encoding
. You will need these values for Step IV when you
-configure the deployment properties. At the MySQL command line you can
-create the database and user with these commands substituting your
-values for dbname
, username
, and password
.
-Most
-of the time, the hostname will equal localhost
.
-
CREATE DATABASE dbname CHARACTER SET utf8;
-
Grant access to a database user. For example:
-
GRANT ALL ON dbname.* TO 'username'@'hostname' IDENTIFIED BY 'password';
-
Keep track of the database name, username, and password for Step
-IV.
-
III. Download the VIVO Application Source
-
-
Download the VIVO application source as either rel-1.2.zip
-or rel-1.2.gz
file and unpack it on your web server:
-http://vivoweb.org/download
-
IV. Specify deployment properties
-
At the top level of the VIVO distribution directory, copy the file example.deploy.properties
-to a file named simply deploy.properties
. This file sets
-several properties used in compilation and deployment.
-
Windows: For those installing on Windows operating
-system, include the windows drive and use the forward slash "/" and not
-the back slash "\" in the directory locations, e.g. c:/tomcat
.
-
-
External authentication: If you want to use an external
-authentication system like Shibboleth or CUWebAuth, you will need to
-set two additional properties in this file. See the section below
-entitled Using an External Authentication
-System with VIVO.
-
-
-
- Property Name |
- Example Value |
-
-
- Default namespace: VIVO installations make their
-RDF resources available for harvest using linked data. Requests for RDF
-resource URIs redirect to HTML or RDF representations as specified by
-the client. To make this possible, VIVO's default namespace must have a
-certain structure and begin with the public web address of the VIVO
-installation. For example, if the web address of a VIVO installation is
-"http://vivo.example.edu/" the default namespace must be set to
-"http://vivo.example.edu/individual/" in order to support linked data.
-Similarly, if VIVO is installed at "http://www.example.edu/vivo" the
-default namespace must be set to
-"http://www.example.edu/vivo/individual/"
- * The namespace must end with "individual/" (including the
-trailing slash).
- |
-
-
- Vitro.defaultNamespace |
- http://vivo.mydomain.edu/individual/ |
-
-
- Directory where Vitro code is located. In most
-deployments, this is set to ./vitro-core (It is not uncommon for this
-setting to point elsewhere in development environments). |
-
-
- vitro.core.dir |
- ./vitro-core |
-
-
- Directory where tomcat is installed. |
-
-
- tomcat.home |
- /usr/local/tomcat |
-
-
- Name of your VIVO application. |
-
-
- webapp.name |
- vivo |
-
-
- URL of Solr context used in local VIVO search.
-Should consist of:
- scheme + servername + port + vivocontextpath + "solr"
-In the standard installation, the Solr context will be on the same
-server as VIVO, and in the same Tomcat instance. The path will be the
-VIVO webapp.name (specified above) + "solr" |
-
-
- vitro.local.solr.url |
- http://localhost:8080/vivosolr |
-
-
- Restricts access to the Solr search platform.
-One or more regular expressions, separated by commas. When a request is
-made to Solr, the IP address of the requestor must match one of the
-patterns, or the request will be rejected.
-Examples:
-
- - vitro.local.solr.ipaddress.mask = 127\.0\.0\.1
- - vitro.local.solr.ipaddress.mask =
-127\.0\.0\.1,0:0:0:0:0:0:0:1
- - vitro.local.solr.ipaddress.mask = 169.254.*
-
- |
-
-
- vitro.local.solr.ipaddress.mask |
- 127\.0\.0\.1,0:0:0:0:0:0:0:1 |
-
-
- Directory where the VIVO application will store
-the data that it creates. This includes uploaded files (usually images)
-and the Solr search index. Be sure this directory exists and is
-writable by the user who the Tomcat service is running as. |
-
-
- vitro.home.directory |
- /usr/local/vivo/data |
-
-
- Specify an SMTP host that the application will
-use for sending e-mail (Optional). If this is left blank, the contact
-form will be hidden and disabled, and users will not be notified of
-changes to their accounts. |
-
-
- email.smtpHost |
- smtp.servername.edu |
-
-
- Specify an email address which will appear as
-the sender in e-mail notifications to users (Optional). If a user
-replies to the notification, this address will receive the reply. If a
-user's e-mail address is invalid, this address will receive the error
-notice. If this is left blank, users will not be notified of changes to
-their accounts. |
-
-
- email.replyTo |
- vivoAdmin@my.domain.edu |
-
-
- Specify the JDBC URL of your database. Change
-the end of the URL to reflect your database name (if it is not "vivo").
- |
-
-
- VitroConnection.DataSource.url |
- jdbc:mysql://localhost/vivo |
-
-
- Change the username to match the authorized user
-you created in MySQL. |
-
-
- VitroConnection.DataSource.username |
- username |
-
-
- Change the password to match the password you
-created in MySQL. |
-
-
- VitroConnection.DataSource.password |
- password |
-
-
- Specify the Jena triple store technology to use.
-SDB is Jena's SPARQL database; this setting allows RDF data to scale
-beyond the limits of the JVM heap. Set to RDB to use the older Jena RDB
-store with in-memory caching. |
-
-
- VitroConnection.DataSource.tripleStoreType |
- SDB |
-
-
- Specify the maximum number of active connections
-in the database connection pool to support the anticipated number of
-concurrent page requests. It is not necessary to adjust this value when
-using the RDB configuration. |
-
-
- VitroConnection.DataSource.pool.maxActive |
- 40 |
-
-
- Specify the maximum number of database
-connections that will be allowed to remain idle in the connection pool.
-Default is 25% of the maximum number of active connections. |
-
-
- VitroConnection.DataSource.pool.maxIdle |
- 10 |
-
-
- Change the dbtype setting to use a database
-other than MySQL. Otherwise, leave this value unchanged. Possible
-values are DB2, derby, HSQLDB, H2, MySQL, Oracle, PostgreSQL, and
-SQLServer. Refer to http://openjena.org/wiki/SDB/Databases_Supported
-for additional information. |
-
-
- VitroConnection.DataSource.dbtype |
- MySQL |
-
-
- Specify a driver class name to use a database
-other than MySQL. Otherwise, leave this value unchanged. This JAR file
-for this driver must be added to the the webapp/lib directory within
-the vitro.core.dir specified above. |
-
-
- VitroConnection.DataSource.driver |
- com.mysql.jdbc.Driver |
-
-
- Change the validation query used to test
-database connections only if necessary to use a database other than
-MySQL. Otherwise, leave this value unchanged. |
-
-
- VitroConnection.DataSource.validationQuery |
- SELECT 1 |
-
-
- Specify the email address of the root user
-account for the VIVO application. This user will have an initial
-temporary password of 'rootPassword'. You will be prompted to create a
-new password on first login.
- NOTE: The root user account has access to all data and all
-operations in VIVO. Data views may be surprising when logged in as the
-root user. It is best to create a Site Admin account to use for every
-day administrative tasks.
- |
-
-
- rootUser.emailAddress |
- vivoAdmin@my.domain.edu |
-
-
- The URI of a property that can be used to
-associate an Individual with a user account. When a user logs in with a
-name that matches the value of this property, the user will be
-authorized to edit that Individual. |
-
-
- selfEditing.idMatchingProperty |
- http://vivo.mydomain.edu/ns#networkId |
-
-
- The temporal graph visualization can require
-extensive machine resources. This can have a particularly noticable
-impact on memory usage if
-
- - VIVO is configured to use Jena SDB,
- - The organization tree is deep,
- - The number of grants and publications is large.
-
-The VIVO developers are working to make this visualization more
-efficient. In the meantime, VIVO release 1.2 guards against this impact
-by disabling the temporal graph visualization unless the
-"visualization.temporal" flag is set to "enabled". To enable it,
-uncomment the line for this setting. |
-
-
- visualization.temporal |
- enabled |
-
-
- The temporal graph visualization is used to
-compare different organizations/people within an organization on
-parameters like number of publications or grants. By default, the app
-will attempt to make its best guess at the top level organization in
-your instance. If you're unhappy with this selection, uncomment out the
-property below and set it to the URI of the organization individual you
-want to identify as the top level organization. It will be used as the
-default whenever the temporal graph visualization is rendered without
-being passed an explicit org. For example, to use "Ponce School of
-Medicine" as the top organization:
- visualization.topLevelOrg =
-http://vivo.psm.edu/individual/n2862
- |
-
-
- visualization.topLevelOrg |
- http://vivo-trunk.indiana.edu/individual/topLevelOrgURI |
-
-
-
-
V. Compile and deploy
-
At the command line, from the top level of the VIVO distribution
-directory, type:
-
ant all
-
to build VIVO and deploy to Tomcat's webapps directory.
-
VI. Set Tomcat JVM parameters and security
-limits
-
Currently, VIVO copies the contents of your RDF database into
-memory in order to serve Web requests quickly (the in-memory copy and
-the underlying database are kept in synch as edits are performed).
-
VIVO will require more memory than that allocated to Tomcat by
-default. With most installations of Tomcat, the "setenv.sh" or
-"setenv.bat" file in Tomcat's bin directory is a convenient place to
-set the memory parameters. If this file does not exist in Tomcat's
-bin directory, you can create it.
-For example:
-
export CATALINA_OPTS="-Xms2048m -Xmx1024m -XX:MaxPermSize=128m"
-
This sets Tomcat to allocate an initial heap of 2048 megabytes, a
-maximum heap of 1024 megabytes, and a PermGen space of 128 megs. 1024
-megabytes is a minimum practical heap size for production installations
-storing data for large academic institutions, and additional heap space
-is preferable. For testing with small sets of data, 256m to 512m should
-be sufficient.
-
If an OutOfMemoryError is encountered during VIVO execution, it can
-be remedied by increasing the heap parameters and restarting Tomcat.
-
Security limits: VIVO is a multithreaded web application that may
-require more threads than are permitted under your Linux installation's
-default configuration. Ensure that your installation can support the
-required number of threads by making the following edits to /etc/security/limits.conf
:
-
-
apache hard nproc 400
tomcat6 hard nproc 1500
-
VII. Start Tomcat
-
Most Tomcat installations can be started by running startup.sh
-or startup.bat
in Tomcat's bin directory. Point your
-browser to "http://localhost:8080/vivo/" to test the application. If
-Tomcat does not start up, or the VIVO application is not visible, check
-the files in Tomcat's logs directory. Error messages are commonly found
-in catalina.out
or localhost.log
-
VIII. Log in and add RDF data
-
If the startup was successful, you will see a welcome message
-informing you that you have successfully installed VIVO. Click the "Log
-in" link near the upper right corner. Log in with the rootUser.emailAddress
-you set up in Step IV. The initial password for the root account is
-"rootPassword" (without the quotes). On first login, you will be
-prompted to select a new password and verify it a second time.
-
After verifying your new password, you will be presented with a
-menu of editing options. Here you can create OWL classes, object
-properties, data properties, and configure the display of data.
-Currently, any classes you wish to make visible on your website must be
-part of a class group, and there are a number of visibility and display
-options available for each ontology entity. VIVO comes with a core VIVO
-ontology, but you may also upload other ontologies from an RDF file.
-
Under the "Advanced Data Tools" click "Add/Remove RDF Data." Note
-that Vitro currently works best with OWL-DL ontologies and has only
-limited support for pure RDF data. You can enter a URL pointing to the
-RDF data you wish to load or upload from a file on your local machine.
-Ensure that the "add RDF" radio button is selected. You will also
-likely want to check "create classgroups automatically."
-
Clicking the "Index" tab in the navigation bar at the top right of
-the page will show a simple index of the knowledge base.
-
See more documentation for configuring VIVO, ingesting data, and
-manually adding data at http://vivoweb.org/support.
-
-
-
If you have configured your application to use the "Contact Us"
-feature in Step IV (email.smtpHost
), you will also need to
-add an email address to the VIVO application. This is the email
-to which the contact form will submit. It can be a list server or an
-individual's email address.
-
Log in as a system administrator. Navigate to the "Site Admin"
-table of contents (link in the right side of the header). Go to "Site
-Information" (under "Site Configuration"). In the "Site Information
-Editing Form," enter a functional email address in the field "Contact
-Email Address" and submit the change.
-
If you set the email.smtpHost
in Step IV and do NOT
-provide an email address in this step, your users will receive a java
-error in the interface.
-
X. Set up Apache Tomcat Connector
-
It is recommended that a Tomcat Connector such as mod_jk be used to
-ensure that the site address does not include the port number (e.g.
-8080) and an additional reference to the Tomcat context name (e.g.
-/vivo).
-
This will make VIVO available at "http://example.com" instead of
-"http://example.com:8080/vivo"
-
Using the mod_jk connector allows for communication between Tomcat
-and the primary web server. The Quick
-
-Start
-HowTo on the Apache site describes the minimum server
-configurations for several popular web servers.
-
After setting up the mod_jk connector above, you will need to
-modify the Tomcat's server.xml (located in [tomcat root]/conf/
)
-
-to
-respond to requests from Apache via the connector. Look for the
-<connector> directive and add the following properties:
-
connectionTimeout="20000" maxThreads="320" keepAliveTimeout="20000"
-
Note: the value for maxThreads (320) is equal to the value for
-MaxClients in the apache's httpd.conf
file.
-
Locate the <Host name="localhost"...>
directive
-and update as follows:
-
<Host name="localhost" appBase="webapps"
DeployOnStartup="false"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>example.com</Alias>
<Context path=""
docBase="/usr/local/tomcat/webapps/vivo"
reloadable="true"
cookies="true" >
<Manager pathname="" />
<Environment type="java.lang.String" override="false"
name="path.configuration"
value="deploy.properties"
/>
</Context>
...
-
XI. Using an External Authentication System
-with VIVO
-
-
VIVO can be configured to work with an external authentication
-system like Shibboleth or CUWebAuth.
-
VIVO must be accessible only through an Apache HTTP server. The
-Apache server will be configured to invoke the external authentication
-system. When the user completes the authentication, the Apache server
-will pass a network ID to VIVO, to identify the user.
-
If VIVO has an account for that user, the user will be logged in
-with the privileges of that account. In the absence of an account, VIVO
-will try to find a page associated with the user. If such a page is
-found, the user can log in to edit his own profile information.
-
Configuring the Apache server
-
Your institution will provide you with instructions for setting up
-the external authentication system. The Apache server must be
-configured to secure a page in VIVO. When a user reaches this secured
-page, the Apache server will invoke the external authentication system.
-
-
For VIVO, this secured page is named: /loginExternalAuthReturn
-
-
When your instructions call for the location of the secured page,
-this is the value you should use.
-
Configuring VIVO
-
To enable external authentication, VIVO requires three values in
-the deploy.properties
file.
-
- -
-
The name of the HTTP header that will hold the external user's
-network ID.
- When a user completes the authentication process, the Apache
-server will put the user's network ID into one of the headers of the
-HTTP request. The instructions from your institution should tell you
-which header is used for this purpose.
- You need to tell VIVO the name of that HTTP header. Insert a
-line like this in the deploy.properties file:
- externalAuth.netIdHeaderName = [the header name]
- For example:
- externalAuth.netIdHeaderName = remote_userID
-
- -
-
The text for the Login button.
-To start the authentication process, the user will click on a button in
-the VIVO login form. You need to tell VIVO what text should appear in
-that button.
- Put a line like this in the deploy.properties file:
-externalAuth.buttonText = [the text for your login button] For example:
-
- externalAuth.buttonText = Log in using BearCat Shibboleth
- The VIVO login form will display a button labelled "Log in
-using BearCat Shibboleth".
-
- -
-
Associating a User with a profile page.
- If VIVO has an account for the user, the user will be given the
-privileges assigned to that account.
- In addition, VIVO will try to associate the user with a profile
-page, so the user may edit his own profile data. VIVO will search the
-data model for a person with a property that matches the User’s network
-ID (the value of the property must be either a String literal or an
-untyped literal). You need to tell VIVO what property should be used
-for matching. Insert a line like this in the deploy.properties file:
- selfEditing.idMatchingProperty = [the URI of the property]
- For example:
- selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
-
-
-
XII. Was the installation successful?
-
If you have completed the previous steps, you have good indications
-that the installation was successful.
-
- - Step VII showed that Tomcat recognized the webapp, and that the
-webapp was able to present the initial page.
- - Step VIII verified that you can log in to the administrator
-account.
-
-
Here is a simple test to see whether the ontology files were
-loaded:
-
- - Click on the "Index" link on the upper right, below the logo.
-You should see a "locations" section, with links for "Country" and
-"Geographic Location." The index is built in a background thread, so on
-your first login, you may see an empty index instead. Refresh the page
-periodically to see whether the index will be populated. This may take
-some time: with VIVO installed on a modest laptop computer, loading the
-ontology files and building the index took more than 5 minutes from the
-time that Tomcat was started.
- - Click on the "Country" link. You should see an alphabetical list
-of the countries of the world.
-
-
Here is a test to see whether your system is configured to serve
-linked data:
-
- - Point your browser to the home page of your website, and click
-the "Log in" link near the upper right corner. Log in with the
rootUser.emailAddress
-you set up in Step IV. If this is your first time logging in, you will
-be prompted to change the password.
- - After you have successfully logged in, click "site admin" in the
-upper right corner. In the drop down under "Data Input" select "Faculty
-Member(core)" and click the "Add individual of this class" button.
- - Enter the name "test individual" under the field "Individual
-Name," scroll to the bottom, and click "Create New Record." You will be
-taken to the "Individual Control Panel." Make note of the value of the
-field "URI" - it will be used in the next step.
- - Open a new web browser or browser tab to the page http://marbles.sourceforge.net/.
-
-In
-the pink box on that page enter the URI of the individual you
-created in the previous step and click "open."
- - In the resulting page search for the URI of the "test
-individual." You should find it towards the bottom of the page next to
-a red dot followed by "redirect (303)." This indicates that you are
-successfully serving linked RDF data. If the URI of the "test
-individual" is followed by "failed (400)" you are not successfully
-serving linked data.
-
-
Finally, test the search index.
-
- - Type the word "Australia" into the search box, and click on the
-Search button.You should see a page of results, with links to countries
-that border Australia, individuals that include Australia, and to
-Australia itself. To trigger the search index, you can log in as a site
-administrator and go to "http://your-vivo-url/SearchIndex".
-
-
-
-
-
+
+
+
VIVO Release 1 V1.3 Installation Guide
+
+ July 22, 2011
+
+
+
+
+
Release anouncement for V1.3
+ VIVO Release 1.3 incorporates changes to the search indexing, user
+ accounts, menu management, ontology, and visualizations.
+
+
Search
+ VIVO 1.3 will feature notable improvements to the local search,
+ primarily to improve relevance ranking but also to boost the influence
+ of semantic relationships in the search. This will improve recall by
+ including text from related resources (e.g., adding a person’s grant
+ and publication titles to his or her search entry) and by boosting
+ overall relevance ranking based on the number and nature of connections
+ from one individual to others.
+
+ VIVO is now using Apache Solr (http://lucene.apache.org/solr/) in place
+ of Apache Lucene to improve indexing and faceting of search results.
+ The migration to Solr also aligns the local search with the VIVO
+ multi-site search site under development for release prior to the 2011
+ VIVO Conference.
+
+
Authorization
+ Release 1.3 provides an entirely new model of authorization within the
+ VIVO application to allow more granular control over system
+ configuration and editing. The first phase of the new user account
+ interface is included in V1.3. This interface provides a user search, a
+ root acount, and password reset functionality where the password gets
+ emailed to the user. The next phase will provide the ability to create
+ new roles.
+
+
Menu management
+ The menus across the top of the site (Home, People, Organizations,
+ Research, Events) can now be managed in a web form instead of editing
+ an RDF file. In addition to making site management much easier,
+ form-based editing also allows more control over what classes of data
+ are displayed and provides a mechanism to limit certain menu pages to
+ content identified as internal to the institution.
+
+
FreeMaker template improvements
+ While less directly visible to the public, version 1.3 also includes
+ additional changes focused directly on supporting open source community
+ involvement in extending and customizing VIVO. The development team
+ began a year ago to transition VIVO’s code base away from Java Server
+ Pages to the FreeMarker page templating system that much more cleanly
+ separates internal application programming logic from page display.
+
+
Visualization
+ The visualization team has implemented a Science Map visualization,
+ which allows users to visually explore the scientific strengths of a
+ university, school, department, or person in the VIVO instance. Users
+ will be able to see where an organization or person’s interests lay
+ across 13 major scientific disciplines or 554 sub-disciplines, and will
+ be able to see how these disciplines and sub-disciplines interrelate
+ with one another on the map of science. Wireframes and design
+ documentation for upcoming enhanced versions of the Science Map
+ visualization have already been developed; the Science Map
+ visualization will most likely be in the form of a PDF that a user can
+ download.
+
+ Several visualization also now provide a caching feature that improves
+ performance after the initial processing.
+
+
QR Codes
+ Pages for people in VIVO have the option of displaying QR codes.
+
+
Ontology changes
+
+ -
+ support for certifications and licenses
+
+ -
+ expanded support for intellectual property (patents) (it was
+ there as stub before but didn't allow common things such as assignee
+ and issuer)
+
+ -
+ support for editorial, reviewing and organizing activities
+
+ -
+ expanded shared geographical instance data vocabulary to include
+ the 50 U.S. states
+
+ -
+ representing specific types of EducationalTraining:
+ PostdoctoralTraining, Internship, MedicalResidency
+
+
+
Linked open data
+ Responses to linked data requests have been enhanced to include
+ additional context about any individual, in working toward a goal of
+ being able to provide all the data in a person's profile available as
+ RDF via a single web request.
+
+
+
Installation process for V1.3
+
+ This document is a summary of the VIVO installation process. This
+ and other documentation can be found on the support page
+ at VIVOweb.org
+
+
+ -
+ These instructions assume that you are performing a clean
+ install, including emptying an existing database, emptying the VIVO
+ home directory, and removing a previous installation from the Tomcat
+ webapps directory. Product functionality may not be as expected if you
+ install over an existing installation of an earlier version.
+
+ -
+ If you are going to upgrade an existing service, please consult
+ the "upgrade" files in this directory.
+
+
+
+ VIVO Developers: If you are working on the VIVO source code from
+ Subversion, the instructions are slightly different. Please consult
+ developers.txt in this directory.
+
+
Where does VIVO live on your computer?
+
+ Before beginning the installation, let's look at the four locations
+ on your computer that will hold VIVO.
+
+
The VIVO distribution directory
+
+ This is created when you unpack the VIVO distribution file (see Step III, below). This is where you will
+ create your deploy.properties file (see Step
+ V, below), and where you will make any modifications to the VIVO
+ theme or code. You can create this wherever you choose.
+
+
VIVO inside Tomcat
+
+ When you run the build script to compile and deploy VIVO (see Step VI, below), the files will be deployed to a
+ directory inside Tomcat. This is the actual executing code for VIVO,
+ but you won’t need to look at it or change it. If you need to change
+ VIVO, make the changes in the distribution directory, and run the build
+ script again. Tell the build script where to find Tomcat by setting tomcat.home
+ in the deploy.properties file (see Step V,
+ below).
+
+
The VIVO home directory
+
+ VIVO will use this area to store some of the data it uses. Uploaded
+ image files are stored here, and the search index is stored here also.
+ You can create this wherever you choose. Tell VIVO where to find the
+ home directory by setting vitro.home.directory
+ in the
+ deploy.properties file (see Step V,
+ below). You must create this directory before starting VIVO, and you
+ must ensure that Tomcat has permission to read and write to this
+ directory when it runs.
+
+
The MySQL database
+
+ Essentially all of the data that you store in VIVO will be given to
+ MySQL for storage. The actual location of this data depends on what
+ system you have, and on how you install MySQL (see Step I, below). but you won’t need to
+ know the location. You will access the data through VIVO, or
+ occasionally through the MySQL client application.
+
+
+ Steps to Installation
+
+ -
+ Install required software
+
+ -
+ Create an empty MySQL database
+
+ -
+ Download the VIVO Application Source
+
+ -
+ Specify deployment properties
+
+ -
+ Compile and deploy
+
+ -
+ Set Tomcat JVM parameters and
+ security limits
+
+ -
+ Start Tomcat
+
+ -
+ Log in and add RDF data
+
+ -
+ Set the Contact Email Address (if
+ using "Contact Us" form)
+
+ -
+ Setup Apache Tomcat Connector
+
+ -
+ Using an External Authentication
+ System with VIVO
+
+ -
+ Was the installation successful?
+
+
+
+
I. Install required software
+
+ Before installing VIVO, make sure that the following software is
+ installed on the desired machine:
+
+
+
+ Be sure to set up the environment variables for JAVA_HOME
+ and ANT_HOME
+ and add the executables to your path per
+ your operating system and installation directions from the software
+ support websites.
+
+
+ * Note that VIVO 1.2 will not run on older versions of MySQL that
+ may have worked with 1.1.1. Be sure to run VIVO 1.2 with MySQL 5.1 or
+ higher. Using unsupported versions may result in strange error messages
+ related to table formatting or other unexpected problems.
+
+
+ * Note that VIVO is not yet compatible with Tomcat 7.
+
+
II. Create an empty MySQL database
+
+ Decide on a database name, username, and password. Log into your
+ MySQL server and create a new database in MySQL that uses UTF-8
+ encoding
. You will need these values for Step IV when you
+ configure the deployment properties. At the MySQL command line you can
+ create the database and user with these commands substituting your
+ values for dbname
, username
, and password
.
+ Most
+ of
+ the
+ time, the hostname will equal localhost
.
+
+
CREATE DATABASE dbname CHARACTER SET utf8;
+
+ Grant access to a database user. For example:
+
+
GRANT ALL ON dbname.* TO 'username'@'hostname' IDENTIFIED BY 'password';
+
+ Keep track of the database name, username, and password for Step
+ IV.
+
+
III. Download the VIVO Application Source
+
+
+
+ Download the VIVO application source as either rel-1.2.zip
+ or rel-1.2.gz
+ file and unpack it on your web server:
+
+ http://vivoweb.org/download
+
+
IV. Specify deployment properties
+
+ At the top level of the VIVO distribution directory, copy the file example.deploy.properties
+ to a file named simply deploy.properties
. This file sets
+ several properties used in compilation and deployment.
+
+
+ Windows:
+ For those installing on Windows operating
+ system, include the windows drive and use the forward slash "/" and not
+ the back slash "\" in the directory locations, e.g. c:/tomcat
.
+
+
+ External authentication:
+ If you want to use an external
+ authentication system like Shibboleth or CUWebAuth, you will need to
+ set two additional properties in this file. See the section below
+ entitled Using an External Authentication
+ System with VIVO.
+
+
+
+
+
+ Property Name
+ |
+
+ Example Value
+ |
+
+
+
+ Default namespace: VIVO installations make their
+ RDF resources available for harvest using linked data. Requests for RDF
+ resource URIs redirect to HTML or RDF representations as specified by
+ the client. To make this possible, VIVO's default namespace must have a
+ certain structure and begin with the public web address of the VIVO
+ installation. For example, if the web address of a VIVO installation is
+ "http://vivo.example.edu/" the default namespace must be set to
+ "http://vivo.example.edu/individual/" in order to support linked data.
+ Similarly, if VIVO is installed at "http://www.example.edu/vivo" the
+ default namespace must be set to
+ "http://www.example.edu/vivo/individual/"* The namespace must end with "individual/" (including the
+ trailing slash).
+ |
+
+
+
+ Vitro.defaultNamespace
+ |
+
+ http://vivo.mydomain.edu/individual/
+ |
+
+
+
+ Directory where Vitro code is located. In most
+ deployments, this is set to ./vitro-core (It is not uncommon for this
+ setting to point elsewhere in development environments).
+ |
+
+
+
+ vitro.core.dir
+ |
+
+ ./vitro-core
+ |
+
+
+
+ Directory where tomcat is installed.
+ |
+
+
+
+ tomcat.home
+ |
+
+ /usr/local/tomcat
+ |
+
+
+
+ Name of your VIVO application.
+ |
+
+
+
+ webapp.name
+ |
+
+ vivo
+ |
+
+
+
+ URL of Solr context used in local VIVO search.
+ Should consist of: scheme + servername + port + vivocontextpath + "solr"
+ In the standard installation, the Solr context will be on the same
+ server as VIVO, and in the same Tomcat instance. The path will be the
+ VIVO webapp.name (specified above) + "solr"
+ |
+
+
+
+ vitro.local.solr.url
+ |
+
+ http://localhost:8080/vivosolr
+ |
+
+
+
+ Restricts access to the Solr search platform.
+ One or more regular expressions, separated by commas. When a request is
+ made to Solr, the IP address of the requestor must match one of the
+ patterns, or the request will be rejected.
+
+ Examples:
+
+ -
+ vitro.local.solr.ipaddress.mask = 127\.0\.0\.1
+
+ -
+ vitro.local.solr.ipaddress.mask =
+ 127\.0\.0\.1,0:0:0:0:0:0:0:1
+
+ -
+ vitro.local.solr.ipaddress.mask = 169.254.*
+
+
+ |
+
+
+
+ vitro.local.solr.ipaddress.mask
+ |
+
+ 127\.0\.0\.1,0:0:0:0:0:0:0:1
+ |
+
+
+
+ Directory where the VIVO application will store
+ the data that it creates. This includes uploaded files (usually images)
+ and the Solr search index. Be sure this directory exists and is
+ writable by the user who the Tomcat service is running as.
+ |
+
+
+
+ vitro.home.directory
+ |
+
+ /usr/local/vivo/data
+ |
+
+
+
+ Specify an SMTP host that the application will
+ use for sending e-mail (Optional). If this is left blank, the contact
+ form will be hidden and disabled, and users will not be notified of
+ changes to their accounts.
+ |
+
+
+
+ email.smtpHost
+ |
+
+ smtp.servername.edu
+ |
+
+
+
+ Specify an email address which will appear as
+ the sender in e-mail notifications to users (Optional). If a user
+ replies to the notification, this address will receive the reply. If a
+ user's e-mail address is invalid, this address will receive the error
+ notice. If this is left blank, users will not be notified of changes to
+ their accounts.
+ |
+
+
+
+ email.replyTo
+ |
+
+ vivoAdmin@my.domain.edu
+ |
+
+
+
+ Specify the JDBC URL of your database. Change
+ the end of the URL to reflect your database name (if it is not "vivo").
+ |
+
+
+
+ VitroConnection.DataSource.url
+ |
+
+ jdbc:mysql://localhost/vivo
+ |
+
+
+
+ Change the username to match the authorized user
+ you created in MySQL.
+ |
+
+
+
+ VitroConnection.DataSource.username
+ |
+
+ username
+ |
+
+
+
+ Change the password to match the password you
+ created in MySQL.
+ |
+
+
+
+ VitroConnection.DataSource.password
+ |
+
+ password
+ |
+
+
+
+ Specify the Jena triple store technology to use.
+ SDB is Jena's SPARQL database; this setting allows RDF data to scale
+ beyond the limits of the JVM heap. Set to RDB to use the older Jena RDB
+ store with in-memory caching.
+ |
+
+
+
+ VitroConnection.DataSource.tripleStoreType
+ |
+
+ SDB
+ |
+
+
+
+ Specify the maximum number of active connections
+ in the database connection pool to support the anticipated number of
+ concurrent page requests. It is not necessary to adjust this value when
+ using the RDB configuration.
+ |
+
+
+
+ VitroConnection.DataSource.pool.maxActive
+ |
+
+ 40
+ |
+
+
+
+ Specify the maximum number of database
+ connections that will be allowed to remain idle in the connection pool.
+ Default is 25% of the maximum number of active connections.
+ |
+
+
+
+ VitroConnection.DataSource.pool.maxIdle
+ |
+
+ 10
+ |
+
+
+
+ Change the dbtype setting to use a database
+ other than MySQL. Otherwise, leave this value unchanged. Possible
+ values are DB2, derby, HSQLDB, H2, MySQL, Oracle, PostgreSQL, and
+ SQLServer. Refer to http://openjena.org/wiki/SDB/Databases_Supported
+ for additional information.
+ |
+
+
+
+ VitroConnection.DataSource.dbtype
+ |
+
+ MySQL
+ |
+
+
+
+ Specify a driver class name to use a database
+ other than MySQL. Otherwise, leave this value unchanged. This JAR file
+ for this driver must be added to the the webapp/lib directory within
+ the vitro.core.dir specified above.
+ |
+
+
+
+ VitroConnection.DataSource.driver
+ |
+
+ com.mysql.jdbc.Driver
+ |
+
+
+
+ Change the validation query used to test
+ database connections only if necessary to use a database other than
+ MySQL. Otherwise, leave this value unchanged.
+ |
+
+
+
+ VitroConnection.DataSource.validationQuery
+ |
+
+ SELECT 1
+ |
+
+
+
+ Specify the email address of the root user
+ account for the VIVO application. This user will have an initial
+ temporary password of 'rootPassword'. You will be prompted to create a
+ new password on first login.
+
+ NOTE: The root user account has access to all data and all
+ operations in VIVO. Data views may be surprising when logged in as the
+ root user. It is best to create a Site Admin account to use for every
+ day administrative tasks.
+
+ |
+
+
+
+ rootUser.emailAddress
+ |
+
+ vivoAdmin@my.domain.edu
+ |
+
+
+
+ The URI of a property that can be used to
+ associate an Individual with a user account. When a user logs in with a
+ name that matches the value of this property, the user will be
+ authorized to edit that Individual.
+ |
+
+
+
+ selfEditing.idMatchingProperty
+ |
+
+ http://vivo.mydomain.edu/ns#networkId
+ |
+
+
+
+ The temporal graph visualization can require
+ extensive machine resources. This can have a particularly noticable
+ impact on memory usage if
+
+ -
+ VIVO is configured to use Jena SDB,
+
+ -
+ The organization tree is deep,
+
+ -
+ The number of grants and publications is large.
+
+
+ The VIVO developers are working to make this visualization more
+ efficient. In the meantime, VIVO release 1.2 guards against this impact
+ by disabling the temporal graph visualization unless the
+ "visualization.temporal" flag is set to "enabled". To enable it,
+ uncomment the line for this setting.
+ |
+
+
+
+ visualization.temporal
+ |
+
+ enabled
+ |
+
+
+
+ The temporal graph visualization is used to
+ compare different organizations/people within an organization on
+ parameters like number of publications or grants. By default, the app
+ will attempt to make its best guess at the top level organization in
+ your instance. If you're unhappy with this selection, uncomment out the
+ property below and set it to the URI of the organization individual you
+ want to identify as the top level organization. It will be used as the
+ default whenever the temporal graph visualization is rendered without
+ being passed an explicit org. For example, to use "Ponce School of
+ Medicine" as the top organization:
+
+ visualization.topLevelOrg =
+ http://vivo.psm.edu/individual/n2862
+
+ |
+
+
+
+ visualization.topLevelOrg
+ |
+
+ http://vivo-trunk.indiana.edu/individual/topLevelOrgURI
+ |
+
+
+
+
V. Compile and deploy
+
+ At the command line, from the top level of the VIVO distribution
+ directory, type:
+
+
ant all
+
+ to build VIVO and deploy to Tomcat's webapps directory.
+
+
VI. Set Tomcat JVM parameters and security
+ limits
+
+ Currently, VIVO copies the contents of your RDF database into
+ memory in order to serve Web requests quickly (the in-memory copy and
+ the underlying database are kept in synch as edits are performed).
+
+
+ VIVO will require more memory than that allocated to Tomcat by
+ default. With most installations of Tomcat, the "setenv.sh" or
+ "setenv.bat" file in Tomcat's bin directory is a convenient place to
+ set the memory parameters. If this file does not exist in Tomcat's
+ bin directory, you can create it.
+
+ For example:
+
+
export CATALINA_OPTS="-Xms2048m -Xmx1024m -XX:MaxPermSize=128m"
+
+ This sets Tomcat to allocate an initial heap of 2048 megabytes, a
+ maximum heap of 1024 megabytes, and a PermGen space of 128 megs. 1024
+ megabytes is a minimum practical heap size for production installations
+ storing data for large academic institutions, and additional heap space
+ is preferable. For testing with small sets of data, 256m to 512m should
+ be sufficient.
+
+
+ If an OutOfMemoryError is encountered during VIVO execution, it can
+ be remedied by increasing the heap parameters and restarting Tomcat.
+
+
+ Security limits: VIVO is a multithreaded web application that may
+ require more threads than are permitted under your Linux installation's
+ default configuration. Ensure that your installation can support the
+ required number of threads by making the following edits to /etc/security/limits.conf
:
+
+
apache hard nproc 400
tomcat6 hard nproc 1500
+
VII. Start Tomcat
+
+ Most Tomcat installations can be started by running startup.sh
+ or startup.bat
+ in Tomcat's bin directory. Point your
+ browser to "http://localhost:8080/vivo/" to test the application. If
+ Tomcat does not start up, or the VIVO application is not visible, check
+ the files in Tomcat's logs directory. Error messages are commonly found
+ in catalina.out
+ or localhost.log
+
+
VIII. Log in and add RDF data
+
+ If the startup was successful, you will see a welcome message
+ informing you that you have successfully installed VIVO. Click the "Log
+ in" link near the upper right corner. Log in with the rootUser.emailAddress
+ you set up in Step IV. The initial password for the root account is
+ "rootPassword" (without the quotes). On first login, you will be
+ prompted to select a new password and verify it a second time.
+
+
+ After verifying your new password, you will be presented with a
+ menu of editing options. Here you can create OWL classes, object
+ properties, data properties, and configure the display of data.
+ Currently, any classes you wish to make visible on your website must be
+ part of a class group, and there are a number of visibility and display
+ options available for each ontology entity. VIVO comes with a core VIVO
+ ontology, but you may also upload other ontologies from an RDF file.
+
+
+ Under the "Advanced Data Tools" click "Add/Remove RDF Data." Note
+ that Vitro currently works best with OWL-DL ontologies and has only
+ limited support for pure RDF data. You can enter a URL pointing to the
+ RDF data you wish to load or upload from a file on your local machine.
+ Ensure that the "add RDF" radio button is selected. You will also
+ likely want to check "create classgroups automatically."
+
+
+ Clicking the "Index" tab in the navigation bar at the top right of
+ the page will show a simple index of the knowledge base.
+
+
+ See more documentation for configuring VIVO, ingesting data, and
+ manually adding data at http://vivoweb.org/support.
+
+
+
+ If you have configured your application to use the "Contact Us"
+ feature in Step IV (email.smtpHost
), you will also need to
+ add an email address to the VIVO application. This is the email
+ to which the contact form will submit. It can be a list server or an
+ individual's email address.
+
+
+ Log in as a system administrator. Navigate to the "Site Admin"
+ table of contents (link in the right side of the header). Go to "Site
+ Information" (under "Site Configuration"). In the "Site Information
+ Editing Form," enter a functional email address in the field "Contact
+ Email Address" and submit the change.
+
+
+ If you set the email.smtpHost
+ in Step IV and do NOT
+ provide an email address in this step, your users will receive a java
+ error in the interface.
+
+
X. Set up Apache Tomcat Connector
+
+ It is recommended that a Tomcat Connector such as mod_jk be used to
+ ensure that the site address does not include the port number (e.g.
+ 8080) and an additional reference to the Tomcat context name (e.g.
+ /vivo).
+
+
+ This will make VIVO available at "http://example.com" instead of
+ "http://example.com:8080/vivo"
+
+
+ Using the mod_jk connector allows for communication between Tomcat
+ and the primary web server. The Quick
+ Start
+ HowTo
+ on the Apache site describes the minimum server
+ configurations for several popular web servers.
+
+
+ After setting up the mod_jk connector above, you will need to
+ modify the Tomcat's server.xml (located in [tomcat root]/conf/
)
+ to
+ respond
+ to
+ requests from Apache via the connector. Look for the
+ <connector> directive and add the following properties:
+
+
connectionTimeout="20000" maxThreads="320" keepAliveTimeout="20000"
+
+ Note: the value for maxThreads (320) is equal to the value for
+ MaxClients in the apache's httpd.conf
+ file.
+
+
+ Locate the <Host name="localhost"...>
+ directive
+ and update as follows:
+
+
<Host name="localhost" appBase="webapps"
DeployOnStartup="false"
unpackWARs="true" autoDeploy="false"
xmlValidation="false" xmlNamespaceAware="false">
<Alias>example.com</Alias>
<Context path=""
docBase="/usr/local/tomcat/webapps/vivo"
reloadable="true"
cookies="true" >
<Manager pathname="" />
<Environment type="java.lang.String" override="false"
name="path.configuration"
value="deploy.properties"
/>
</Context>
...
+
XI. Using an External Authentication System
+ with VIVO
+
+
+
+ VIVO can be configured to work with an external authentication
+ system like Shibboleth or CUWebAuth.
+
+
+ VIVO must be accessible only through an Apache HTTP server. The
+ Apache server will be configured to invoke the external authentication
+ system. When the user completes the authentication, the Apache server
+ will pass a network ID to VIVO, to identify the user.
+
+
+ If VIVO has an account for that user, the user will be logged in
+ with the privileges of that account. In the absence of an account, VIVO
+ will try to find a page associated with the user. If such a page is
+ found, the user can log in to edit his own profile information.
+
+
Configuring the Apache server
+
+ Your institution will provide you with instructions for setting up
+ the external authentication system. The Apache server must be
+ configured to secure a page in VIVO. When a user reaches this secured
+ page, the Apache server will invoke the external authentication system.
+
+
+ For VIVO, this secured page is named: /loginExternalAuthReturn
+
+
+ When your instructions call for the location of the secured page,
+ this is the value you should use.
+
+
Configuring VIVO
+
+ To enable external authentication, VIVO requires three values in
+ the deploy.properties
+ file.
+
+
+ -
+
The name of the HTTP header that will hold the external user's
+ network ID.
+
+ When a user completes the authentication process, the Apache
+ server will put the user's network ID into one of the headers of the
+ HTTP request. The instructions from your institution should tell you
+ which header is used for this purpose.
+
+
+ You need to tell VIVO the name of that HTTP header. Insert a
+ line like this in the deploy.properties file:
+
+ externalAuth.netIdHeaderName = [the header name]
+
+ For example:
+
+ externalAuth.netIdHeaderName = remote_userID
+
+ -
+
The text for the Login button.
+ To start the authentication process, the user will click on a button in
+ the VIVO login form. You need to tell VIVO what text should appear in
+ that button.
+
+ Put a line like this in the deploy.properties file:
+ externalAuth.buttonText = [the text for your login button] For example:
+
+ externalAuth.buttonText = Log in using BearCat Shibboleth
+
+ The VIVO login form will display a button labelled "Log in
+ using BearCat Shibboleth".
+
+
+ -
+
Associating a User with a profile page.
+
+ If VIVO has an account for the user, the user will be given the
+ privileges assigned to that account.
+
+
+ In addition, VIVO will try to associate the user with a profile
+ page, so the user may edit his own profile data. VIVO will search the
+ data model for a person with a property that matches the User’s network
+ ID (the value of the property must be either a String literal or an
+ untyped literal). You need to tell VIVO what property should be used
+ for matching. Insert a line like this in the deploy.properties file:
+
+ selfEditing.idMatchingProperty = [the URI of the property]
+
+ For example:
+
+ selfEditing.idMatchingProperty = http://vivo.mydomain.edu/ns#networkId
+
+
+
XII. Was the installation successful?
+
+ If you have completed the previous steps, you have good indications
+ that the installation was successful.
+
+
+ -
+ Step VII showed that Tomcat recognized the webapp, and that the
+ webapp was able to present the initial page.
+
+ -
+ Step VIII verified that you can log in to the administrator
+ account.
+
+
+
+ Here is a simple test to see whether the ontology files were
+ loaded:
+
+
+ -
+ Click on the "Index" link on the upper right, below the logo.
+ You should see a "locations" section, with links for "Country" and
+ "Geographic Location." The index is built in a background thread, so on
+ your first login, you may see an empty index instead. Refresh the page
+ periodically to see whether the index will be populated. This may take
+ some time: with VIVO installed on a modest laptop computer, loading the
+ ontology files and building the index took more than 5 minutes from the
+ time that Tomcat was started.
+
+ -
+ Click on the "Country" link. You should see an alphabetical list
+ of the countries of the world.
+
+
+
+ Here is a test to see whether your system is configured to serve
+ linked data:
+
+
+ -
+ Point your browser to the home page of your website, and click
+ the "Log in" link near the upper right corner. Log in with the
rootUser.emailAddress
+ you set up in Step IV. If this is your first time logging in, you will
+ be prompted to change the password.
+
+ -
+ After you have successfully logged in, click "site admin" in the
+ upper right corner. In the drop down under "Data Input" select "Faculty
+ Member(core)" and click the "Add individual of this class" button.
+
+ -
+ Enter the name "test individual" under the field "Individual
+ Name," scroll to the bottom, and click "Create New Record." You will be
+ taken to the "Individual Control Panel." Make note of the value of the
+ field "URI" - it will be used in the next step.
+
+ -
+ Open a new web browser or browser tab to the page http://marbles.sourceforge.net/.
+ In
+ the
+ pink
+ box on that page enter the URI of the individual you
+ created in the previous step and click "open."
+
+ -
+ In the resulting page search for the URI of the "test
+ individual." You should find it towards the bottom of the page next to
+ a red dot followed by "redirect (303)." This indicates that you are
+ successfully serving linked RDF data. If the URI of the "test
+ individual" is followed by "failed (400)" you are not successfully
+ serving linked data.
+
+
+
+ Finally, test the search index.
+
+
+ -
+ Type the word "Australia" into the search box, and click on the
+ Search button.You should see a page of results, with links to countries
+ that border Australia, individuals that include Australia, and to
+ Australia itself. To trigger the search index, you can log in as a site
+ administrator and go to "http://your-vivo-url/SearchIndex".
+
+
+
+
+
+