<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bioontology.org//mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maseda</id>
	<title>NCBO Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.bioontology.org//mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Maseda"/>
	<link rel="alternate" type="text/html" href="https://www.bioontology.org//wiki/Special:Contributions/Maseda"/>
	<updated>2026-06-05T11:45:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Immunology_Ontologies_and_Their_Applications_in_Processing_Clinical_Data&amp;diff=12607</id>
		<title>Immunology Ontologies and Their Applications in Processing Clinical Data</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Immunology_Ontologies_and_Their_Applications_in_Processing_Clinical_Data&amp;diff=12607"/>
		<updated>2013-04-12T19:45:10Z</updated>

		<summary type="html">&lt;p&gt;Maseda: test: reverting my recent addition of whitespace and text&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The National Center for Biomedical Ontology [http://bioontology.org (NCBO)] in collaboration with the Protein Ontology [http://pir.georgetown.edu/pro/ (PRO)] and the Infectious Disease Ontology [http://infectiousdiseaseontology.org/page/Main_Page (IDO)] will host a three-day dissemination workshop in Buffalo, NY on June 11-13, 2012. &lt;br /&gt;
:Day 1 will provide a survey of current ontology-based research in immunology and infectious disease with a view to future coordination among ontology developers and users in this field.&lt;br /&gt;
:Day 2 will be focused on flow cytometry, including the question of the Cell and Protein Ontologies and of the role of surface protein expression in cell type classification.&lt;br /&gt;
:Day 3 will include a session devoted to the use of ontologies to assist clinicians working with infectious disease data, followed by a session on the Ontology for General Medical Science.&lt;br /&gt;
&lt;br /&gt;
'''Venue: [http://www.universityinn.com/ Ramada Inn, UB North Campus, Buffalo]'''&lt;br /&gt;
&lt;br /&gt;
'''Goals'''&lt;br /&gt;
&lt;br /&gt;
The goals of this meeting are: To identify and coordinate activities on-going in immunology ontology and related fields, with special attention to the use of ontologies to support clinical data analysis in flow cytometry and related fields.&lt;br /&gt;
&lt;br /&gt;
'''Registration'''&lt;br /&gt;
&lt;br /&gt;
'''THIS MEETING IS NOW FULL. NO FURTHER REGISTRATIONS ACCEPTED.''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
== Day 1: Monday, June 11, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
08:30 Registration and Breakfast&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;An Overview of Ontologies to Support Research in Immunology and Infectious Disease&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
09:15 Barry Smith (University at Buffalo) and Cathy Wu (University of Delaware) [http://ontology.buffalo.edu/12/immunology_ontology/smith.pptx slides]&lt;br /&gt;
::Bio-Ontologies for Immunology Research: An Introduction&lt;br /&gt;
:::Brief survey of the goals of the meeting.&lt;br /&gt;
&lt;br /&gt;
09:30 Alexander Diehl (University at Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_GO_IP.pptx slides]&lt;br /&gt;
::The Gene Ontology and Immune System Processes&lt;br /&gt;
:::The Gene Ontology contains a wealth of terms covering immune system processes for the annotation of proteins involved in the functioning of the immune system.  I will provide a overview of these terms and their use in GO annotation.&lt;br /&gt;
&lt;br /&gt;
10:00 Cliburn Chan (Duke University) [http://ontology.buffalo.edu/12/immunology_ontology/Chan_Networks.pptx slides]&lt;br /&gt;
::Ontology for Cellular Immune Networks&lt;br /&gt;
:::Will describe initial work on an ontology of cellular immune networks that is designed to capture the qualitative cytokine expression patterns and cellular phenotypes associated with specific immune activation networks (e.g. Th1 network). We will outline use of the ontology for immune assay integration and statistical enrichment analysis.&lt;br /&gt;
&lt;br /&gt;
10:30 Break&lt;br /&gt;
&lt;br /&gt;
11:00 Anna Maria Masci (Duke University) [http://ontology.buffalo.edu/12/immunology_ontology/Masci%20AM.pdf slides]&lt;br /&gt;
::The Immunology Ontology (with special focus on the liver)&lt;br /&gt;
:::An emerging scenario is uncovering immune response as a sophisticated biological process, which requires an intensive cross-talk between immunocytes, parenchymal and stromal cell types. These timely and anatomically restricted interactions regulate the outcome of immune response to damage induced by stress and pathogens. Due to its complexity and patho-physiological relevance, the liver represents an interesting prototype of context-dependent immune response. We will introduce the Liver Immunology Ontology (LIO), which has as primary goal the representation of the immune response induced in the context of the liver. &lt;br /&gt;
&lt;br /&gt;
11:30 Peter d'Eustacho (New York University) [http://ontology.buffalo.edu/12/immunology_ontology/dEustachio.pptx slides]&lt;br /&gt;
::Innate Immunity: Signaling via Toll-Like Receptors in Reactome&lt;br /&gt;
:::The innate immune responses mediated by Toll-like receptors (TLR) provide a first line of defense against microbial pathogens in many vertebrates. In Reactome we have integrated annotations of human TLR molecular functions with those of 6800 other human proteins involved in diverse biological processes to generate a resource suitable for data mining, pathway analysis, and other systems biology approaches. These annotations allow human TLR proteins, the complexes they form, and the functions they mediate to be classified and related to those of structurally similar TLR proteins from chicken, mouse, and other species.&lt;br /&gt;
&lt;br /&gt;
12:00 '''Lunchtime talk'''&lt;br /&gt;
Atul Butte (Stanford) [http://ontology.buffalo.edu/12/immunology_ontology/Butte.pptx slides]&lt;br /&gt;
::Discovery of a novel inflammatory receptor and related drug for type 2 diabetes from integration of publicly-available microarray data&lt;br /&gt;
&lt;br /&gt;
14:00 Lindsay Cowell (University of Texas Southwestern Medical Center) [http://ontology.buffalo.edu/12/immunology_ontology/Cowell.pdf slides]&lt;br /&gt;
::An Introduction to the Infectious Disease Ontology&lt;br /&gt;
:::The IDO-Core; new approach to MIREOTing; new terms/definitions/relations; a template for creating an IDO Extension&lt;br /&gt;
&lt;br /&gt;
14:30 Albert Goldfain (Blue Highway) [http://ontology.buffalo.edu/12/immunology_ontology/Goldfain_IDO-Staph.pptx slides]&lt;br /&gt;
::Staph Aureus (Sa) IDO &lt;br /&gt;
&lt;br /&gt;
15:00 Break&lt;br /&gt;
&lt;br /&gt;
15:30 Christos (Kitsos) Louis (IMBB-FORTH, Crete) [http://ontology.buffalo.edu/12/immunology_ontology/Louis_IDOMAL.ppt slides]&lt;br /&gt;
::IDO Mal (Malaria Ontology)&lt;br /&gt;
:::We will outline the Malaria Ontology, including three new sub-domains dealing with: &lt;br /&gt;
::::a) drug resistance&lt;br /&gt;
::::b) remedies and traditional medicinal plants &lt;br /&gt;
::::c) vector-mediated transmission.&lt;br /&gt;
:::We will also describe our conversion from the OBO to the OWL format.&lt;br /&gt;
&lt;br /&gt;
16:00 Yu Lin (University of Michigan)[http://ontology.buffalo.edu/12/immunology_ontology/YuLun.pdf slides]&lt;br /&gt;
::IDO Bru (Brucellosis Ontology)&lt;br /&gt;
:::IDO Bru is an extension ontology of IDO. We will focus on those aspects of Brucellosis represented in IDOBru as outlined in [http://www.jbiomedsem.com/content/2/1/9]. We will also discuss IDOBru's policy on use of IDs, and its treatment of Brucella-host interaction.&lt;br /&gt;
&lt;br /&gt;
16:30 Oliver He (University of Michigan) [http://ontology.buffalo.edu/12/immunology_ontology/He_VO.pptx slides]&lt;br /&gt;
::Contributions of the Vaccine Ontology (VO) to Immunology Research and Public Health&lt;br /&gt;
:::Vaccinology is applied immunology. VO is a community-based biomedical ontology in the domain of vaccine and vaccination. We will introduce the top level of VO, and sketch applications of VO in elucidating fundamental protective immune mechanisms and improving public health.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Day 2: Tuesday, June 12, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Ontologies and Flow Cytometry Informatics'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:'''Background''' Increasingly, flow cytometry is being employed in clinical laboratories for the diagnosis, prognosis and monitoring of disease. The advent of highly multidimensional flow cytometry and automated gating algorithms for the analysis of flow cytometry data, coupled with the rise of personalized medicine, are poised to expand greatly the need for a reliable, structured framework for the representation of the types of cells present in human blood and tissues. We are currently enhancing the representation of hematopoietic and other cell types in the Cell Ontology (CL) to allow for the logical definition of cell types based on cellular attributes, and in doing so we rely on relations to terms of the Protein Ontology (PRO) as a key component of these definitions. The goal of today's session is explore how the use of clinical flow cytometry data can serve as a driver of ontology development in both the PRO and the CL by assessing current standard clinical assays and recent approaches based on automated gating of multidimensional flow cytometry.&lt;br /&gt;
&lt;br /&gt;
:Examples of questions to be addressed include:&lt;br /&gt;
::Which protein isoforms and post-translationally modified forms identified by flow cytometry typing reagents need to be represented in the PRO to enable cell types defined in their terms to be represented in the CL? &lt;br /&gt;
::How can use of the PRO and CL ontologies will promote standardization in interpretation and integration of clinical flow cytometry data? &lt;br /&gt;
&lt;br /&gt;
:Background Reading&lt;br /&gt;
::[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3013777/?tool=pubmed The Protein Ontology: a structured representation of protein forms and complexes]&lt;br /&gt;
::[http://www.biomedcentral.com/1471-2105/12/6 Logical Development of the Cell Ontology]&lt;br /&gt;
::Cytometry-Ontology Framework ([http://ontology.buffalo.edu/pro/CytometryOntologyFramework.pdf Draft])&lt;br /&gt;
&lt;br /&gt;
08:30 Breakfast&lt;br /&gt;
&lt;br /&gt;
'''9:00-noon: Introduction to the Protein Ontology Flow Cytometry Driving Biological Project'''&lt;br /&gt;
&lt;br /&gt;
9:00 Cathy Wu (University of Delaware): Introduction to the Protein Ontology [http://ontology.buffalo.edu/12/immunology_ontology/Wu_PRO.pdf slides]&lt;br /&gt;
&lt;br /&gt;
9:30 Alexander Diehl (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_CL.pptx slides]&lt;br /&gt;
::Hematopoietic Cell Types in the Cell Ontology&lt;br /&gt;
:::The Cell Ontology includes over 350 terms that represent hematopoietic cell types.  I will provide an overview of these terms and our strategy for representing key properties of cell types through logical definitions, with examples from Leukemia and Multiple Myeloma&lt;br /&gt;
&lt;br /&gt;
10:00 Discussion of the PRO Driving Biomedical Project &lt;br /&gt;
Moderator: Alexander Diehl (Buffalo) &lt;br /&gt;
:Presentation of key issues:&lt;br /&gt;
::Assessing representation requirements for Flow Cytometry in PRO, CL, IEDB, OBI, ImmPort, and Immune System Modeling.&lt;br /&gt;
::Development of a data store to collect extended cell type-protein relationships.&lt;br /&gt;
::Defining a tool wish-list for CL-linked flow cytometry analysis and CL-assisted marker selection for cell type analysis.&lt;br /&gt;
&lt;br /&gt;
10:45 Break&lt;br /&gt;
&lt;br /&gt;
11:15 Oliver He (University of Michigan) [http://ontology.buffalo.edu/12/immunology_ontology/He_Flow_Cytometry.pptx slides]&lt;br /&gt;
::How Flow Cytometry can be used in Vaccine Research &lt;br /&gt;
:::To better understand fundamental protective immune mechanisms, flow cytometry has frequently been used to measure vaccine-induced innate immunity, and antigen-specific T-cell and B-cell responses. Biomedical ontologies (e.g., VO, OBI, and PRO) play important roles in data representation, integration, and automated reasoning in vaccine-related flow cytometry research.&lt;br /&gt;
&lt;br /&gt;
11:45 Dave Parrish ([http://www.labanswer.com/ LabAnswer])&lt;br /&gt;
::Storing and Retrieving Flow Cytometry Data&lt;br /&gt;
:::The Flow Cytometry Laboratory at Roswell Park Cancer Institute has recently deployed an internally developed application managing the operational workflow of the laboratory. We will describe the use of the relational database in capturing assay results and ultimately associating with a final interpretation. Although early in the process the goal is to support the use of the Cell and Protein Ontologies in panel design and interpretation classification. &lt;br /&gt;
&lt;br /&gt;
12:30 Lunch&lt;br /&gt;
&lt;br /&gt;
'''Afternoon: Automated gating of Flow Cytometry results and linking to the Cell Ontology. Flow cytometry typing of normal and malignant cell types'''&lt;br /&gt;
&lt;br /&gt;
13:30 Cliburn Chan (Duke) [http://ontology.buffalo.edu/12/immunology_ontology/Chan_HIV.pptx slides]&lt;br /&gt;
::Automated flow cytometry analysis in HIV studies&lt;br /&gt;
:::Will describe recent work on automated cell subset identification and alignment across multiple HIV-related data sets with statistical mixture models. What do we need in order to be able to use ontologies for automated annotation and labeling of cell subsets?&lt;br /&gt;
&lt;br /&gt;
14:00 Nikesh Kotecha (Cytobank) [http://ontology.buffalo.edu/12/immunology_ontology/kotecha.pdf slides]&lt;br /&gt;
::Incorporating annotations into the analysis workflow - examples using Cytobank and NCBO's BioPortal&lt;br /&gt;
:::Cytobank is a platform to manage, share and analyze flow cytometry data over the web. I will describe the challenges addressed in working with large numbers of samples as well as incorporating novel visualizations and algorithms (e.g. SPADE) for high dimensional data (e.g. 40+ parameter mass cytometry experiments). Central to much of this work is interfaces to promote and incorporate annotations into the analysis workflow. I will also  highlight some recent work in Cytobank to incorporate ontologies via NCBO's BioPortal&lt;br /&gt;
&lt;br /&gt;
14:30 Melanie Courtot (Ryan Brinkman's group, Vancouver) [http://ontology.buffalo.edu/12/immunology_ontology/Courtot_CytometryOntologyFramework.pdf slides]&lt;br /&gt;
::1. Overview of the representation of flow cytometry assays in [http://purl.obolibrary.org/obo/obi OBI]&lt;br /&gt;
::2. Connecting results from automated FCM analysis systems with the Cell Ontology&lt;br /&gt;
&lt;br /&gt;
15:00 Break&lt;br /&gt;
&lt;br /&gt;
15:30 General Discussion of Ontologies and Flow Cytometry (Moderator: Alan Ruttenberg, Buffalo)&lt;br /&gt;
&lt;br /&gt;
16:30 End&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Day 3: Wednesday, June 13, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
8:30 Breakfast&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;9:00-noon: Immunology Ontologies (Continued)&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
9:00 Bjoern Peters (La Jolla Institute for Allergy and Immunology) [http://ontology.buffalo.edu/12/immunology_ontology/Peters.pptx slides]&lt;br /&gt;
::Representation of immunology experiments using OBI&lt;br /&gt;
::Representing epitope mapping experiments for the Immune Epitope Database (IEDB)&lt;br /&gt;
:::The Ontology for Biomedical Investigations (OBI) is an ontology that provides terms with precisely defined meaning to describe all aspects of how biomedical investigations are conducted. OBI builds on the Gene Ontology (GO) and related efforts that provide a formal and interoperable representation of biomedical knowledge.  OBI adds the ability to describe how this knowledge was derived. OBI covers all phases of the investigation process, such as planning, execution and reporting. It represents information and material entities that participate in these processes, as well as roles and functions. The presentation will describe the state of OBI and several applications that are using it. Specific focus will be on epitope mapping and characterization experiments captured in the Immune Epitope Database (IEDB) which heavily utilizes OBI. The presentation will also point out gaps in coverage of immunological terms that are currently in OBI but poorly defined and outside the scope of OBI, and which deserve a better home.&lt;br /&gt;
&lt;br /&gt;
10: Alex Yu (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Alex_Yu.pdf slides]&lt;br /&gt;
:The Allergy Ontology &lt;br /&gt;
&lt;br /&gt;
10:30 Break&lt;br /&gt;
&lt;br /&gt;
11:00 Alexander Diehl (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_Autoimmune.pptx slides]&lt;br /&gt;
:Towards an Auto-Immune Disease Ontology&lt;br /&gt;
::I will discuss the construction of an auto-immune disease ontology through use of the Ontology of General Medical Sciences as a general framework for ontology development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;The Role of Ontologies in Clinical Medicine&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
12:00: Lunch&lt;br /&gt;
&lt;br /&gt;
1:00pm :Albert Goldfain (Blue Highway / Syracuse)&lt;br /&gt;
::Creating Personalized Infectious Disease Ontologies &lt;br /&gt;
&lt;br /&gt;
1:30 Christos (Kitsos) Louis (IMBB-FORTH, Crete)&lt;br /&gt;
::Ontologies and Vector-Borne Diseases &lt;br /&gt;
&lt;br /&gt;
2:00 Werner Ceusters (Buffalo) [http://www.referent-tracking.com/RTU/sendfile/?file=20120613.ppt slides]&lt;br /&gt;
::Assessment instruments and biomedical reality: examples in the pain domain&lt;br /&gt;
&lt;br /&gt;
2:30 Refreshment Break&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;3pm-6pm: Working Session on the Ontology for General Medical Science (OGMS)&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
:Moderator: Albert Goldfain (Blue Highway / Syracuse)&lt;br /&gt;
:Topics to be treated will include:&lt;br /&gt;
::Current status of OGMS and the OGMS Reference&lt;br /&gt;
::Linking diseases to their underlying disorders using basis relations &lt;br /&gt;
::Defining 'relapse' and 'remission' processes.&lt;br /&gt;
::Updates on the Vital Sign Ontology&lt;br /&gt;
::Recipes for OGMS-conformant extension ontologies &lt;br /&gt;
:''Close: 6:00pm''&lt;br /&gt;
----&lt;br /&gt;
'''Relevant ontology efforts'''&lt;br /&gt;
&lt;br /&gt;
:GO-IP Gene Ontology -- Immunological Process (Alexander Diehl)&lt;br /&gt;
:CL Cell ontology immune branches&lt;br /&gt;
:PRO Protein Ontology &lt;br /&gt;
:IO Immunology Ontology (Lindsay Cowell and Alexander Diehl)&lt;br /&gt;
:IEO Immune Epitope Ontology (Bjoern Peters)     &lt;br /&gt;
:MHC Major Histocompatibility Complex Ontology (Bjoern Peters)&lt;br /&gt;
:OGMS Ontology for General Medical Science (Albert Goldfain)                                                                                                                                                     &lt;br /&gt;
:IDO Infectious Disease Ontology (Lindsay Cowell)&lt;br /&gt;
:Vaccine Ontology (Oliver He)&lt;br /&gt;
:AO Allergy Ontology (Alex C. Yu)                           &lt;br /&gt;
:ND Neurological Disease Ontology (Alexander Diehl)                                                                                                                                                                                                                                                                                                                     &lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
:Alex Benns (Frontier Science, Amherst, NY)&lt;br /&gt;
:Anthony Bloom (Frontier Science, Amherst, NY)&lt;br /&gt;
:Kenneth Braun (Frontier Science, Amherst, NY)&lt;br /&gt;
:Ryan Brinkman (University of British Columbia, Vancouver)&lt;br /&gt;
:Atul Butte (Stanford University)&lt;br /&gt;
:James S. Cavenaugh (University of Rochester Medical Center)&lt;br /&gt;
:Werner Ceusters (University at Buffalo)&lt;br /&gt;
:Cliburn Chan (Duke University) &lt;br /&gt;
:Quan Chen (NIH/NIAID)&lt;br /&gt;
:Melanie Courtot (BCCRC, Vancouver)&lt;br /&gt;
:Alexander Cox (University at Buffalo)&lt;br /&gt;
:Lindsay Cowell (University of Texas Southwestern Medical Center)&lt;br /&gt;
:Oliver Crespo (BD Biosciences, San Jose, CA)&lt;br /&gt;
:Paresh Dandona (Diabetes and Endocrinology Center of Western New York / University at Buffalo)&lt;br /&gt;
:Peter d'Eustachio (New York University)&lt;br /&gt;
:Alexander Diehl (University at Buffalo)&lt;br /&gt;
:William Duncan (University at Buffalo)&lt;br /&gt;
:Chester Fox (University at Buffalo)&lt;br /&gt;
:Lee Ann Garrett-Sinha (University at Buffalo)&lt;br /&gt;
:Carmelo Gaudioso (Roswell Park Cancer Institute, Buffalo)&lt;br /&gt;
:Albert Goldfain (University at Buffalo, Syracuse University and Blue Highway, Inc.)&lt;br /&gt;
:Oliver He (University of Michigan)&lt;br /&gt;
:Leonard Jacuzzo (University at Buffalo)&lt;br /&gt;
:Mark Jensen (University at Buffalo)&lt;br /&gt;
:Christos (Kitsos) Louis (IMBB-FORTH, Crete)&lt;br /&gt;
:Nikesh Kotecha (Cytobank)&lt;br /&gt;
:Yu Lin (University of Michigan)&lt;br /&gt;
:Wei Luo (University at Buffalo)&lt;br /&gt;
:Supriya Mahajan (University at Buffalo)&lt;br /&gt;
:Anna Maria Masci (Duke University)&lt;br /&gt;
:Darren Natale (Georgetown University)&lt;br /&gt;
:Dave Parrish (Digital Infuzion)&lt;br /&gt;
:Bjoern Peters (La Jolla Institute for Allergy and Immunology)&lt;br /&gt;
:Mark Ressler (University at Buffalo)&lt;br /&gt;
:Jessica L. Reynolds (University at Buffalo)&lt;br /&gt;
:Alan Ruttenberg (University at Buffalo)&lt;br /&gt;
:Stanley A. Schwartz (University at Buffalo)&lt;br /&gt;
:Prontip Saelee (University at Buffalo)&lt;br /&gt;
:Veronica Shamovsky (NYU School of Medicine)&lt;br /&gt;
:Barry Smith (University at Buffalo)&lt;br /&gt;
:Cathy Wu (University of Delaware, Georgetown University)&lt;br /&gt;
:Alex C. Yu (University at Buffalo)&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Immunology_Ontologies_and_Their_Applications_in_Processing_Clinical_Data&amp;diff=12606</id>
		<title>Immunology Ontologies and Their Applications in Processing Clinical Data</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Immunology_Ontologies_and_Their_Applications_in_Processing_Clinical_Data&amp;diff=12606"/>
		<updated>2013-04-12T19:44:29Z</updated>

		<summary type="html">&lt;p&gt;Maseda: test: adding the word &amp;quot;test&amp;quot; to bottom of page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The National Center for Biomedical Ontology [http://bioontology.org (NCBO)] in collaboration with the Protein Ontology [http://pir.georgetown.edu/pro/ (PRO)] and the Infectious Disease Ontology [http://infectiousdiseaseontology.org/page/Main_Page (IDO)] will host a three-day dissemination workshop in Buffalo, NY on June 11-13, 2012. &lt;br /&gt;
:Day 1 will provide a survey of current ontology-based research in immunology and infectious disease with a view to future coordination among ontology developers and users in this field.&lt;br /&gt;
:Day 2 will be focused on flow cytometry, including the question of the Cell and Protein Ontologies and of the role of surface protein expression in cell type classification.&lt;br /&gt;
:Day 3 will include a session devoted to the use of ontologies to assist clinicians working with infectious disease data, followed by a session on the Ontology for General Medical Science.&lt;br /&gt;
&lt;br /&gt;
'''Venue: [http://www.universityinn.com/ Ramada Inn, UB North Campus, Buffalo]'''&lt;br /&gt;
&lt;br /&gt;
'''Goals'''&lt;br /&gt;
&lt;br /&gt;
The goals of this meeting are: To identify and coordinate activities on-going in immunology ontology and related fields, with special attention to the use of ontologies to support clinical data analysis in flow cytometry and related fields.&lt;br /&gt;
&lt;br /&gt;
'''Registration'''&lt;br /&gt;
&lt;br /&gt;
'''THIS MEETING IS NOW FULL. NO FURTHER REGISTRATIONS ACCEPTED.''' &lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
== Day 1: Monday, June 11, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
08:30 Registration and Breakfast&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;An Overview of Ontologies to Support Research in Immunology and Infectious Disease&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
09:15 Barry Smith (University at Buffalo) and Cathy Wu (University of Delaware) [http://ontology.buffalo.edu/12/immunology_ontology/smith.pptx slides]&lt;br /&gt;
::Bio-Ontologies for Immunology Research: An Introduction&lt;br /&gt;
:::Brief survey of the goals of the meeting.&lt;br /&gt;
&lt;br /&gt;
09:30 Alexander Diehl (University at Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_GO_IP.pptx slides]&lt;br /&gt;
::The Gene Ontology and Immune System Processes&lt;br /&gt;
:::The Gene Ontology contains a wealth of terms covering immune system processes for the annotation of proteins involved in the functioning of the immune system.  I will provide a overview of these terms and their use in GO annotation.&lt;br /&gt;
&lt;br /&gt;
10:00 Cliburn Chan (Duke University) [http://ontology.buffalo.edu/12/immunology_ontology/Chan_Networks.pptx slides]&lt;br /&gt;
::Ontology for Cellular Immune Networks&lt;br /&gt;
:::Will describe initial work on an ontology of cellular immune networks that is designed to capture the qualitative cytokine expression patterns and cellular phenotypes associated with specific immune activation networks (e.g. Th1 network). We will outline use of the ontology for immune assay integration and statistical enrichment analysis.&lt;br /&gt;
&lt;br /&gt;
10:30 Break&lt;br /&gt;
&lt;br /&gt;
11:00 Anna Maria Masci (Duke University) [http://ontology.buffalo.edu/12/immunology_ontology/Masci%20AM.pdf slides]&lt;br /&gt;
::The Immunology Ontology (with special focus on the liver)&lt;br /&gt;
:::An emerging scenario is uncovering immune response as a sophisticated biological process, which requires an intensive cross-talk between immunocytes, parenchymal and stromal cell types. These timely and anatomically restricted interactions regulate the outcome of immune response to damage induced by stress and pathogens. Due to its complexity and patho-physiological relevance, the liver represents an interesting prototype of context-dependent immune response. We will introduce the Liver Immunology Ontology (LIO), which has as primary goal the representation of the immune response induced in the context of the liver. &lt;br /&gt;
&lt;br /&gt;
11:30 Peter d'Eustacho (New York University) [http://ontology.buffalo.edu/12/immunology_ontology/dEustachio.pptx slides]&lt;br /&gt;
::Innate Immunity: Signaling via Toll-Like Receptors in Reactome&lt;br /&gt;
:::The innate immune responses mediated by Toll-like receptors (TLR) provide a first line of defense against microbial pathogens in many vertebrates. In Reactome we have integrated annotations of human TLR molecular functions with those of 6800 other human proteins involved in diverse biological processes to generate a resource suitable for data mining, pathway analysis, and other systems biology approaches. These annotations allow human TLR proteins, the complexes they form, and the functions they mediate to be classified and related to those of structurally similar TLR proteins from chicken, mouse, and other species.&lt;br /&gt;
&lt;br /&gt;
12:00 '''Lunchtime talk'''&lt;br /&gt;
Atul Butte (Stanford) [http://ontology.buffalo.edu/12/immunology_ontology/Butte.pptx slides]&lt;br /&gt;
::Discovery of a novel inflammatory receptor and related drug for type 2 diabetes from integration of publicly-available microarray data&lt;br /&gt;
&lt;br /&gt;
14:00 Lindsay Cowell (University of Texas Southwestern Medical Center) [http://ontology.buffalo.edu/12/immunology_ontology/Cowell.pdf slides]&lt;br /&gt;
::An Introduction to the Infectious Disease Ontology&lt;br /&gt;
:::The IDO-Core; new approach to MIREOTing; new terms/definitions/relations; a template for creating an IDO Extension&lt;br /&gt;
&lt;br /&gt;
14:30 Albert Goldfain (Blue Highway) [http://ontology.buffalo.edu/12/immunology_ontology/Goldfain_IDO-Staph.pptx slides]&lt;br /&gt;
::Staph Aureus (Sa) IDO &lt;br /&gt;
&lt;br /&gt;
15:00 Break&lt;br /&gt;
&lt;br /&gt;
15:30 Christos (Kitsos) Louis (IMBB-FORTH, Crete) [http://ontology.buffalo.edu/12/immunology_ontology/Louis_IDOMAL.ppt slides]&lt;br /&gt;
::IDO Mal (Malaria Ontology)&lt;br /&gt;
:::We will outline the Malaria Ontology, including three new sub-domains dealing with: &lt;br /&gt;
::::a) drug resistance&lt;br /&gt;
::::b) remedies and traditional medicinal plants &lt;br /&gt;
::::c) vector-mediated transmission.&lt;br /&gt;
:::We will also describe our conversion from the OBO to the OWL format.&lt;br /&gt;
&lt;br /&gt;
16:00 Yu Lin (University of Michigan)[http://ontology.buffalo.edu/12/immunology_ontology/YuLun.pdf slides]&lt;br /&gt;
::IDO Bru (Brucellosis Ontology)&lt;br /&gt;
:::IDO Bru is an extension ontology of IDO. We will focus on those aspects of Brucellosis represented in IDOBru as outlined in [http://www.jbiomedsem.com/content/2/1/9]. We will also discuss IDOBru's policy on use of IDs, and its treatment of Brucella-host interaction.&lt;br /&gt;
&lt;br /&gt;
16:30 Oliver He (University of Michigan) [http://ontology.buffalo.edu/12/immunology_ontology/He_VO.pptx slides]&lt;br /&gt;
::Contributions of the Vaccine Ontology (VO) to Immunology Research and Public Health&lt;br /&gt;
:::Vaccinology is applied immunology. VO is a community-based biomedical ontology in the domain of vaccine and vaccination. We will introduce the top level of VO, and sketch applications of VO in elucidating fundamental protective immune mechanisms and improving public health.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Day 2: Tuesday, June 12, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;Ontologies and Flow Cytometry Informatics'''&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:'''Background''' Increasingly, flow cytometry is being employed in clinical laboratories for the diagnosis, prognosis and monitoring of disease. The advent of highly multidimensional flow cytometry and automated gating algorithms for the analysis of flow cytometry data, coupled with the rise of personalized medicine, are poised to expand greatly the need for a reliable, structured framework for the representation of the types of cells present in human blood and tissues. We are currently enhancing the representation of hematopoietic and other cell types in the Cell Ontology (CL) to allow for the logical definition of cell types based on cellular attributes, and in doing so we rely on relations to terms of the Protein Ontology (PRO) as a key component of these definitions. The goal of today's session is explore how the use of clinical flow cytometry data can serve as a driver of ontology development in both the PRO and the CL by assessing current standard clinical assays and recent approaches based on automated gating of multidimensional flow cytometry.&lt;br /&gt;
&lt;br /&gt;
:Examples of questions to be addressed include:&lt;br /&gt;
::Which protein isoforms and post-translationally modified forms identified by flow cytometry typing reagents need to be represented in the PRO to enable cell types defined in their terms to be represented in the CL? &lt;br /&gt;
::How can use of the PRO and CL ontologies will promote standardization in interpretation and integration of clinical flow cytometry data? &lt;br /&gt;
&lt;br /&gt;
:Background Reading&lt;br /&gt;
::[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3013777/?tool=pubmed The Protein Ontology: a structured representation of protein forms and complexes]&lt;br /&gt;
::[http://www.biomedcentral.com/1471-2105/12/6 Logical Development of the Cell Ontology]&lt;br /&gt;
::Cytometry-Ontology Framework ([http://ontology.buffalo.edu/pro/CytometryOntologyFramework.pdf Draft])&lt;br /&gt;
&lt;br /&gt;
08:30 Breakfast&lt;br /&gt;
&lt;br /&gt;
'''9:00-noon: Introduction to the Protein Ontology Flow Cytometry Driving Biological Project'''&lt;br /&gt;
&lt;br /&gt;
9:00 Cathy Wu (University of Delaware): Introduction to the Protein Ontology [http://ontology.buffalo.edu/12/immunology_ontology/Wu_PRO.pdf slides]&lt;br /&gt;
&lt;br /&gt;
9:30 Alexander Diehl (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_CL.pptx slides]&lt;br /&gt;
::Hematopoietic Cell Types in the Cell Ontology&lt;br /&gt;
:::The Cell Ontology includes over 350 terms that represent hematopoietic cell types.  I will provide an overview of these terms and our strategy for representing key properties of cell types through logical definitions, with examples from Leukemia and Multiple Myeloma&lt;br /&gt;
&lt;br /&gt;
10:00 Discussion of the PRO Driving Biomedical Project &lt;br /&gt;
Moderator: Alexander Diehl (Buffalo) &lt;br /&gt;
:Presentation of key issues:&lt;br /&gt;
::Assessing representation requirements for Flow Cytometry in PRO, CL, IEDB, OBI, ImmPort, and Immune System Modeling.&lt;br /&gt;
::Development of a data store to collect extended cell type-protein relationships.&lt;br /&gt;
::Defining a tool wish-list for CL-linked flow cytometry analysis and CL-assisted marker selection for cell type analysis.&lt;br /&gt;
&lt;br /&gt;
10:45 Break&lt;br /&gt;
&lt;br /&gt;
11:15 Oliver He (University of Michigan) [http://ontology.buffalo.edu/12/immunology_ontology/He_Flow_Cytometry.pptx slides]&lt;br /&gt;
::How Flow Cytometry can be used in Vaccine Research &lt;br /&gt;
:::To better understand fundamental protective immune mechanisms, flow cytometry has frequently been used to measure vaccine-induced innate immunity, and antigen-specific T-cell and B-cell responses. Biomedical ontologies (e.g., VO, OBI, and PRO) play important roles in data representation, integration, and automated reasoning in vaccine-related flow cytometry research.&lt;br /&gt;
&lt;br /&gt;
11:45 Dave Parrish ([http://www.labanswer.com/ LabAnswer])&lt;br /&gt;
::Storing and Retrieving Flow Cytometry Data&lt;br /&gt;
:::The Flow Cytometry Laboratory at Roswell Park Cancer Institute has recently deployed an internally developed application managing the operational workflow of the laboratory. We will describe the use of the relational database in capturing assay results and ultimately associating with a final interpretation. Although early in the process the goal is to support the use of the Cell and Protein Ontologies in panel design and interpretation classification. &lt;br /&gt;
&lt;br /&gt;
12:30 Lunch&lt;br /&gt;
&lt;br /&gt;
'''Afternoon: Automated gating of Flow Cytometry results and linking to the Cell Ontology. Flow cytometry typing of normal and malignant cell types'''&lt;br /&gt;
&lt;br /&gt;
13:30 Cliburn Chan (Duke) [http://ontology.buffalo.edu/12/immunology_ontology/Chan_HIV.pptx slides]&lt;br /&gt;
::Automated flow cytometry analysis in HIV studies&lt;br /&gt;
:::Will describe recent work on automated cell subset identification and alignment across multiple HIV-related data sets with statistical mixture models. What do we need in order to be able to use ontologies for automated annotation and labeling of cell subsets?&lt;br /&gt;
&lt;br /&gt;
14:00 Nikesh Kotecha (Cytobank) [http://ontology.buffalo.edu/12/immunology_ontology/kotecha.pdf slides]&lt;br /&gt;
::Incorporating annotations into the analysis workflow - examples using Cytobank and NCBO's BioPortal&lt;br /&gt;
:::Cytobank is a platform to manage, share and analyze flow cytometry data over the web. I will describe the challenges addressed in working with large numbers of samples as well as incorporating novel visualizations and algorithms (e.g. SPADE) for high dimensional data (e.g. 40+ parameter mass cytometry experiments). Central to much of this work is interfaces to promote and incorporate annotations into the analysis workflow. I will also  highlight some recent work in Cytobank to incorporate ontologies via NCBO's BioPortal&lt;br /&gt;
&lt;br /&gt;
14:30 Melanie Courtot (Ryan Brinkman's group, Vancouver) [http://ontology.buffalo.edu/12/immunology_ontology/Courtot_CytometryOntologyFramework.pdf slides]&lt;br /&gt;
::1. Overview of the representation of flow cytometry assays in [http://purl.obolibrary.org/obo/obi OBI]&lt;br /&gt;
::2. Connecting results from automated FCM analysis systems with the Cell Ontology&lt;br /&gt;
&lt;br /&gt;
15:00 Break&lt;br /&gt;
&lt;br /&gt;
15:30 General Discussion of Ontologies and Flow Cytometry (Moderator: Alan Ruttenberg, Buffalo)&lt;br /&gt;
&lt;br /&gt;
16:30 End&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Day 3: Wednesday, June 13, 2012 ==&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
8:30 Breakfast&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;9:00-noon: Immunology Ontologies (Continued)&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
9:00 Bjoern Peters (La Jolla Institute for Allergy and Immunology) [http://ontology.buffalo.edu/12/immunology_ontology/Peters.pptx slides]&lt;br /&gt;
::Representation of immunology experiments using OBI&lt;br /&gt;
::Representing epitope mapping experiments for the Immune Epitope Database (IEDB)&lt;br /&gt;
:::The Ontology for Biomedical Investigations (OBI) is an ontology that provides terms with precisely defined meaning to describe all aspects of how biomedical investigations are conducted. OBI builds on the Gene Ontology (GO) and related efforts that provide a formal and interoperable representation of biomedical knowledge.  OBI adds the ability to describe how this knowledge was derived. OBI covers all phases of the investigation process, such as planning, execution and reporting. It represents information and material entities that participate in these processes, as well as roles and functions. The presentation will describe the state of OBI and several applications that are using it. Specific focus will be on epitope mapping and characterization experiments captured in the Immune Epitope Database (IEDB) which heavily utilizes OBI. The presentation will also point out gaps in coverage of immunological terms that are currently in OBI but poorly defined and outside the scope of OBI, and which deserve a better home.&lt;br /&gt;
&lt;br /&gt;
10: Alex Yu (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Alex_Yu.pdf slides]&lt;br /&gt;
:The Allergy Ontology &lt;br /&gt;
&lt;br /&gt;
10:30 Break&lt;br /&gt;
&lt;br /&gt;
11:00 Alexander Diehl (Buffalo) [http://ontology.buffalo.edu/12/immunology_ontology/Diehl_Autoimmune.pptx slides]&lt;br /&gt;
:Towards an Auto-Immune Disease Ontology&lt;br /&gt;
::I will discuss the construction of an auto-immune disease ontology through use of the Ontology of General Medical Sciences as a general framework for ontology development.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;The Role of Ontologies in Clinical Medicine&amp;lt;/u&amp;gt;'''&lt;br /&gt;
&lt;br /&gt;
12:00: Lunch&lt;br /&gt;
&lt;br /&gt;
1:00pm :Albert Goldfain (Blue Highway / Syracuse)&lt;br /&gt;
::Creating Personalized Infectious Disease Ontologies &lt;br /&gt;
&lt;br /&gt;
1:30 Christos (Kitsos) Louis (IMBB-FORTH, Crete)&lt;br /&gt;
::Ontologies and Vector-Borne Diseases &lt;br /&gt;
&lt;br /&gt;
2:00 Werner Ceusters (Buffalo) [http://www.referent-tracking.com/RTU/sendfile/?file=20120613.ppt slides]&lt;br /&gt;
::Assessment instruments and biomedical reality: examples in the pain domain&lt;br /&gt;
&lt;br /&gt;
2:30 Refreshment Break&lt;br /&gt;
&lt;br /&gt;
'''&amp;lt;u&amp;gt;3pm-6pm: Working Session on the Ontology for General Medical Science (OGMS)&amp;lt;/u&amp;gt;''' &lt;br /&gt;
&lt;br /&gt;
:Moderator: Albert Goldfain (Blue Highway / Syracuse)&lt;br /&gt;
:Topics to be treated will include:&lt;br /&gt;
::Current status of OGMS and the OGMS Reference&lt;br /&gt;
::Linking diseases to their underlying disorders using basis relations &lt;br /&gt;
::Defining 'relapse' and 'remission' processes.&lt;br /&gt;
::Updates on the Vital Sign Ontology&lt;br /&gt;
::Recipes for OGMS-conformant extension ontologies &lt;br /&gt;
:''Close: 6:00pm''&lt;br /&gt;
----&lt;br /&gt;
'''Relevant ontology efforts'''&lt;br /&gt;
&lt;br /&gt;
:GO-IP Gene Ontology -- Immunological Process (Alexander Diehl)&lt;br /&gt;
:CL Cell ontology immune branches&lt;br /&gt;
:PRO Protein Ontology &lt;br /&gt;
:IO Immunology Ontology (Lindsay Cowell and Alexander Diehl)&lt;br /&gt;
:IEO Immune Epitope Ontology (Bjoern Peters)     &lt;br /&gt;
:MHC Major Histocompatibility Complex Ontology (Bjoern Peters)&lt;br /&gt;
:OGMS Ontology for General Medical Science (Albert Goldfain)                                                                                                                                                     &lt;br /&gt;
:IDO Infectious Disease Ontology (Lindsay Cowell)&lt;br /&gt;
:Vaccine Ontology (Oliver He)&lt;br /&gt;
:AO Allergy Ontology (Alex C. Yu)                           &lt;br /&gt;
:ND Neurological Disease Ontology (Alexander Diehl)                                                                                                                                                                                                                                                                                                                     &lt;br /&gt;
----&lt;br /&gt;
'''&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
&lt;br /&gt;
:Alex Benns (Frontier Science, Amherst, NY)&lt;br /&gt;
:Anthony Bloom (Frontier Science, Amherst, NY)&lt;br /&gt;
:Kenneth Braun (Frontier Science, Amherst, NY)&lt;br /&gt;
:Ryan Brinkman (University of British Columbia, Vancouver)&lt;br /&gt;
:Atul Butte (Stanford University)&lt;br /&gt;
:James S. Cavenaugh (University of Rochester Medical Center)&lt;br /&gt;
:Werner Ceusters (University at Buffalo)&lt;br /&gt;
:Cliburn Chan (Duke University) &lt;br /&gt;
:Quan Chen (NIH/NIAID)&lt;br /&gt;
:Melanie Courtot (BCCRC, Vancouver)&lt;br /&gt;
:Alexander Cox (University at Buffalo)&lt;br /&gt;
:Lindsay Cowell (University of Texas Southwestern Medical Center)&lt;br /&gt;
:Oliver Crespo (BD Biosciences, San Jose, CA)&lt;br /&gt;
:Paresh Dandona (Diabetes and Endocrinology Center of Western New York / University at Buffalo)&lt;br /&gt;
:Peter d'Eustachio (New York University)&lt;br /&gt;
:Alexander Diehl (University at Buffalo)&lt;br /&gt;
:William Duncan (University at Buffalo)&lt;br /&gt;
:Chester Fox (University at Buffalo)&lt;br /&gt;
:Lee Ann Garrett-Sinha (University at Buffalo)&lt;br /&gt;
:Carmelo Gaudioso (Roswell Park Cancer Institute, Buffalo)&lt;br /&gt;
:Albert Goldfain (University at Buffalo, Syracuse University and Blue Highway, Inc.)&lt;br /&gt;
:Oliver He (University of Michigan)&lt;br /&gt;
:Leonard Jacuzzo (University at Buffalo)&lt;br /&gt;
:Mark Jensen (University at Buffalo)&lt;br /&gt;
:Christos (Kitsos) Louis (IMBB-FORTH, Crete)&lt;br /&gt;
:Nikesh Kotecha (Cytobank)&lt;br /&gt;
:Yu Lin (University of Michigan)&lt;br /&gt;
:Wei Luo (University at Buffalo)&lt;br /&gt;
:Supriya Mahajan (University at Buffalo)&lt;br /&gt;
:Anna Maria Masci (Duke University)&lt;br /&gt;
:Darren Natale (Georgetown University)&lt;br /&gt;
:Dave Parrish (Digital Infuzion)&lt;br /&gt;
:Bjoern Peters (La Jolla Institute for Allergy and Immunology)&lt;br /&gt;
:Mark Ressler (University at Buffalo)&lt;br /&gt;
:Jessica L. Reynolds (University at Buffalo)&lt;br /&gt;
:Alan Ruttenberg (University at Buffalo)&lt;br /&gt;
:Stanley A. Schwartz (University at Buffalo)&lt;br /&gt;
:Prontip Saelee (University at Buffalo)&lt;br /&gt;
:Veronica Shamovsky (NYU School of Medicine)&lt;br /&gt;
:Barry Smith (University at Buffalo)&lt;br /&gt;
:Cathy Wu (University of Delaware, Georgetown University)&lt;br /&gt;
:Alex C. Yu (University at Buffalo)&lt;br /&gt;
&lt;br /&gt;
test&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11838</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11838"/>
		<updated>2012-03-09T19:03:17Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
First, convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
Next, ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Then, convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk ${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
First, convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/xen/ncbo-appliance.cfg&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11828</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11828"/>
		<updated>2012-03-07T02:10:24Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* Xen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
First, convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
Next, ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Then, convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
First, convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/xen/ncbo-appliance.cfg&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11827</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11827"/>
		<updated>2012-03-07T02:00:49Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* Xen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
First, convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
Next, ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Then, convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
First, convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11826</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11826"/>
		<updated>2012-03-07T01:59:43Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
First, convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
Next, ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Then, convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11825</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11825"/>
		<updated>2012-03-07T01:57:40Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* Xen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance/ncbo-appliance-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11824</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11824"/>
		<updated>2012-03-07T01:57:11Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance/ncbo-appliance-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11823</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11823"/>
		<updated>2012-03-07T01:53:45Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* VMware */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ovftool ncbo-appliance.ovf ncbo-appliance.vmx&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11822</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11822"/>
		<updated>2012-03-07T01:53:01Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* How can I use the OVF image with my virtualization software? (VMware, VirtualBox, KVM, Xen, etc) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xm create ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11821</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11821"/>
		<updated>2012-03-07T01:52:13Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
virsh start ncbo-appliance&lt;br /&gt;
&amp;lt;/pre&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11820</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11820"/>
		<updated>2012-03-07T01:50:57Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11819</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11819"/>
		<updated>2012-03-07T01:50:37Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* KVM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11818</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11818"/>
		<updated>2012-03-07T01:50:20Z</updated>

		<summary type="html">&lt;p&gt;Maseda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11817</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11817"/>
		<updated>2012-03-07T01:49:49Z</updated>

		<summary type="html">&lt;p&gt;Maseda: Undo revision 11816 by Maseda (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11816</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11816"/>
		<updated>2012-03-07T01:48:12Z</updated>

		<summary type="html">&lt;p&gt;Maseda: Reverted edits by Maseda (talk) to last revision by Palexand&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMWare, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMWare ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMWare's ovftool] to convert the appliance to work with your VMWare product. For example, to convert the appliance for use in WMWare Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ova ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11815</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11815"/>
		<updated>2012-03-07T01:47:44Z</updated>

		<summary type="html">&lt;p&gt;Maseda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11814</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11814"/>
		<updated>2012-03-07T01:46:26Z</updated>

		<summary type="html">&lt;p&gt;Maseda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11813</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11813"/>
		<updated>2012-03-07T01:45:12Z</updated>

		<summary type="html">&lt;p&gt;Maseda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;verbatim&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/verbatim&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;verbatim&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/verbatim&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11812</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11812"/>
		<updated>2012-03-07T01:41:42Z</updated>

		<summary type="html">&lt;p&gt;Maseda: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMware, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMware ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMware's ovftool] to convert the appliance to work with your VMware product. For example, to convert the appliance for use in VMware Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;br /&gt;
&lt;br /&gt;
== KVM ==&lt;br /&gt;
&lt;br /&gt;
=== HVM ===&lt;br /&gt;
You will need to convert the OVF to VMX format as mentioned in the VMware section above.&lt;br /&gt;
&lt;br /&gt;
You must also ensure that the &amp;lt;code&amp;gt;kvm-qemu-img&amp;lt;/code&amp;gt; RPM (or &amp;lt;code&amp;gt;qemu-kvm&amp;lt;/code&amp;gt; DEB) is installed. Convert the [new] VMDKs (from the VMX conversion step) to raw disk images via the following command:&lt;br /&gt;
&amp;lt;code&amp;gt;for disk in `ls -1 *.vmdk`; do diskbase=`basename $disk .vmdk`; qemu-img convert -O raw ${diskbase}.vmdk${diskbase}.img; done&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;lt;domain type='kvm'&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;ncbo-appliance&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;memory&amp;gt;4194304&amp;lt;/memory&amp;gt;&lt;br /&gt;
  &amp;lt;vcpu&amp;gt;2&amp;lt;/vcpu&amp;gt;&lt;br /&gt;
  &amp;lt;os&amp;gt;&lt;br /&gt;
    &amp;lt;type arch='x86_64' machine='rhel5.4.0'&amp;gt;hvm&amp;lt;/type&amp;gt;&lt;br /&gt;
    &amp;lt;boot dev='hd'/&amp;gt;&lt;br /&gt;
  &amp;lt;/os&amp;gt;&lt;br /&gt;
  &amp;lt;features&amp;gt;&lt;br /&gt;
    &amp;lt;acpi/&amp;gt;&lt;br /&gt;
    &amp;lt;apic/&amp;gt;&lt;br /&gt;
    &amp;lt;pae/&amp;gt;&lt;br /&gt;
  &amp;lt;/features&amp;gt;&lt;br /&gt;
  &amp;lt;clock offset='utc'&amp;gt;&lt;br /&gt;
    &amp;lt;timer name='pit' tickpolicy='delay'/&amp;gt;&lt;br /&gt;
  &amp;lt;/clock&amp;gt;&lt;br /&gt;
  &amp;lt;on_poweroff&amp;gt;destroy&amp;lt;/on_poweroff&amp;gt;&lt;br /&gt;
  &amp;lt;on_reboot&amp;gt;restart&amp;lt;/on_reboot&amp;gt;&lt;br /&gt;
  &amp;lt;on_crash&amp;gt;restart&amp;lt;/on_crash&amp;gt;&lt;br /&gt;
  &amp;lt;devices&amp;gt;&lt;br /&gt;
    &amp;lt;emulator&amp;gt;/usr/libexec/qemu-kvm&amp;lt;/emulator&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hda' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;disk type='file' device='disk'&amp;gt;&lt;br /&gt;
      &amp;lt;driver name='qemu' type='raw'/&amp;gt;&lt;br /&gt;
      &amp;lt;source file='/var/lib/libvirt/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img'/&amp;gt;&lt;br /&gt;
      &amp;lt;target dev='hdb' bus='ide'/&amp;gt;&lt;br /&gt;
      &amp;lt;address type='drive' controller='0' bus='0' unit='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/disk&amp;gt;&lt;br /&gt;
    &amp;lt;controller type='ide' index='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;interface type='network'&amp;gt;&lt;br /&gt;
      &amp;lt;source network='default'/&amp;gt;&lt;br /&gt;
      &amp;lt;model type='virtio'/&amp;gt;&lt;br /&gt;
    &amp;lt;/interface&amp;gt;&lt;br /&gt;
    &amp;lt;serial type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/serial&amp;gt;&lt;br /&gt;
    &amp;lt;console type='pty'&amp;gt;&lt;br /&gt;
      &amp;lt;target port='0'/&amp;gt;&lt;br /&gt;
    &amp;lt;/console&amp;gt;&lt;br /&gt;
    &amp;lt;input type='mouse' bus='ps2'/&amp;gt;&lt;br /&gt;
    &amp;lt;graphics type='vnc' port='-1' autoport='yes' keymap='en-us'/&amp;gt;&lt;br /&gt;
    &amp;lt;video&amp;gt;&lt;br /&gt;
      &amp;lt;model type='cirrus' vram='9216' heads='1'/&amp;gt;&lt;br /&gt;
    &amp;lt;/video&amp;gt;&lt;br /&gt;
  &amp;lt;/devices&amp;gt;&lt;br /&gt;
&amp;lt;/domain&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;virsh start ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== PVM ===&lt;br /&gt;
Xen PVMs (Paravirtual Machines) are not supported.&lt;br /&gt;
&lt;br /&gt;
== Xen ==&lt;br /&gt;
&lt;br /&gt;
=== HVM ===&lt;br /&gt;
You will need to convert the VMDKs to raw disk images as mentioned in the KVM section above.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/libvirt/qemu/ncbo-appliance.xml&amp;lt;/code&amp;gt; with the following contents:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
name = &amp;quot;ncbo-appliance&amp;quot;&lt;br /&gt;
memory = 4096&lt;br /&gt;
vcpus = 2&lt;br /&gt;
builder = &amp;quot;hvm&amp;quot;&lt;br /&gt;
kernel = &amp;quot;/usr/lib/xen/boot/hvmloader&amp;quot;&lt;br /&gt;
boot = &amp;quot;c&amp;quot;&lt;br /&gt;
pae = 1&lt;br /&gt;
acpi = 1&lt;br /&gt;
apic = 1&lt;br /&gt;
localtime = 0&lt;br /&gt;
on_poweroff = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_reboot = &amp;quot;destroy&amp;quot;&lt;br /&gt;
on_crash = &amp;quot;destroy&amp;quot;&lt;br /&gt;
device_model = &amp;quot;/usr/lib64/xen/bin/qemu-dm&amp;quot;&lt;br /&gt;
sdl = 0&lt;br /&gt;
vnc = 1&lt;br /&gt;
vncunused = 1&lt;br /&gt;
keymap = &amp;quot;en-us&amp;quot;&lt;br /&gt;
disk = [ &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk1.img,hda,w&amp;quot;, &amp;quot;file:/var/lib/xen/images/ncbo-appliance-0.5/ncbo-appliance-0.5-disk2.img,hdb,w&amp;quot; ]&lt;br /&gt;
vif = [ &amp;quot;bridge=xenbr0,script=vif-bridge,vifname=vif41.0&amp;quot; ]&lt;br /&gt;
parallel = &amp;quot;none&amp;quot;&lt;br /&gt;
serial = &amp;quot;pty&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make any necessary edits to the above file, and run &amp;lt;code&amp;gt;xm create ncbo-appliance&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== PVM ===&lt;br /&gt;
KVM PVMs (Paravirtual Machines) are not supported.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11811</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11811"/>
		<updated>2012-03-06T23:12:42Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* VMWare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMWare, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMWare ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMWare's ovftool] to convert the appliance to work with your VMWare product. For example, to convert the appliance for use in VMWare Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11810</id>
		<title>Virtual Appliance FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=11810"/>
		<updated>2012-03-06T23:11:44Z</updated>

		<summary type="html">&lt;p&gt;Maseda: /* How can I use the OVF image with my virtualization software? (VMWare, VirtualBox, KVM, Xen, etc) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I identify version numbers for ontologies stored in the system? ==&lt;br /&gt;
NCBO Ontology Web Services can be used with either the ontology identifier (sometimes referred to as the virtual identifier) or the ontology version identifier (sometimes referred to as the version id). The ontology identifier is used to identify and ontology and all of its versions. The ontology version identifier represents a single ontology version. The following screenshot shows how to identify these version numbers using the BioPortal Web UI.&lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:Bioportal_internal_ontology_ids.png|200px|x]]&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories? ==&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the Protégé client '''(Version Protégé 3.4.4)'''&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;[http://protege.stanford.edu/download/download.html http://protege.stanford.edu/download/download.html]&amp;lt;br&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download a copy of the [http://www.bioontology.org/wiki/images/e/ef/Bioportal_metadata.pprj.zip BioPortal Metadata Protégé project file] and modify as follows&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 639: make sure this matches your BioPortal Ontology Services database (ip address or domain of the virtual appliance)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 649: this should be your MySQL username (bp_protege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;Line 654: this should be your MySQL password (bioportalprotege)&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;'''Note:''' These are the default username/password which should be changed for security purposes. If you have already changed them, please use the new username/password.&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Open the project file using Protégé&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Go to the &amp;quot;Individuals&amp;quot; tab&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Look for OMV:OntologyDomain and click it&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;A list of &amp;quot;Asserted Instances&amp;quot; should show up, these are the defaults&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;You can create or delete instances by clicking on the buttons&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Instances should have the following properties:&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;ol&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;id = unique integer value&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:name = display name for the category&amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;omv:isSubDomainOf = you can create hierarchies by making&lt;br /&gt;
      categories subDomains of one another&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I migrate ontologies from BioPortal or previous NCBO Virtual Appliance versions into a new Appliance? ==&lt;br /&gt;
NCBO developers have created a script that can be used to automatically import ontologies from BioPortal or previous versions of the Virtual Appliance. The script was written in Ruby and is included on the Appliance. To use the script, do the following (requires knowledge of Linux command-line tools):&lt;br /&gt;
&lt;br /&gt;
* Edit the script, located here: &amp;lt;code&amp;gt;/var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
** Make sure you have valid API keys for the FROM and TO systems.&lt;br /&gt;
** Assign the $FROM and $TO variables and ports as appropriate. The default configuration points to NCBO's BioPortal but can be changed to the location of your Virtual Appliance instance.&lt;br /&gt;
** The $ONTOLOGY_OWNER is the user id of the user who should own the ontologies on the TO system.&lt;br /&gt;
** $INCLUDE_ONTOLOGIES can be uncommented and used to import specific ontologies only. Otherwise all ontologies from the FROM system will be imported.&lt;br /&gt;
** Save your edits and continue below.&lt;br /&gt;
* Run the script using this command: &amp;lt;code&amp;gt;sh /var/rails/BioPortal/current/util/import_ontologies/import_ontologies.rb&amp;lt;/code&amp;gt;&lt;br /&gt;
* The script will take some time to complete, updating the console as it runs. If automatic parsing is enabled, the ontologies should get parsed when the process next runs.&lt;br /&gt;
&lt;br /&gt;
'''Please Note:''' The import script will attempt to use category and group IDs assigned to ontologies on the FROM system if they exist on the TO system as well. Ontology artifacts, such as notes, views, and mappings, are not imported. Only the most recent version of ontologies are imported; there is no method to import multiple versions of the same ontology using a common virtual id.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The BioPortal Ontology Services application uses a scheduler to run a process that collects newly submitted ontologies and parses them, adds them to the search index, and calculates metrics. You can also parse ontologies manually, but you will need to index them for search and calculate metrics manually to have that information available.&lt;br /&gt;
&lt;br /&gt;
The default schedule can be disabled by doing the following:&lt;br /&gt;
* Open /ncbo/sources/bioportal/tags/1030/build.properties&lt;br /&gt;
* Look for the section that starts with &amp;quot;# Ontology Parse Scheduler properties&amp;quot;&lt;br /&gt;
* Set &amp;lt;code&amp;gt;ontology.parse.scheduler.enabled&amp;lt;/code&amp;gt; to 'false'&lt;br /&gt;
* From the /ncbo/sources/bioportal/tags/1030/ directory, run 'ant clean deploywar'&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, visit the admin interface at http://example:8080/bioportal_admin and select &amp;quot;Parse Ontologies&amp;quot; from the list at the right. You must enter the version id, or a comma-separated list of ids, and then click &amp;quot;Run&amp;quot;. The process will return with errors if it encounters any.&lt;br /&gt;
&lt;br /&gt;
== How do I manually add an ontology to the search index? ==&lt;br /&gt;
To manually add an ontology to the search index, go to the admin interface and select &amp;quot;Index Ontologies&amp;quot;. You can provide a single version id for an ontology or a comma-separated list of ids. You can also choose to index all ontologies currently stored in the Appliance (this may take some time if you have many terms in the system).&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
Because the BioPortal Web UI uses aggressive caching, it may not immediately reflect the status of an ontology once it's been submitted. By default the ontology status on the Web UI is updated once every four or 12 hours (depending where you are viewing the information). You can change these default options by doing the following:&lt;br /&gt;
* Open /var/rails/BioPortal/current/app/models/data_access.rb&lt;br /&gt;
* Change the following in the getOntologyList method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, MEDIUM_CACHE_EXPIRE_TIME)&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;ont_list&amp;quot;, &amp;quot;getOntologyList&amp;quot;, nil, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following in the getOntology method:&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id })&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;return self.cache_pull(&amp;quot;#{ontology_id}::_details&amp;quot;, &amp;quot;getOntology&amp;quot;, { :ontology_id =&amp;gt; ontology_id }, 60*15)&amp;lt;/code&amp;gt;&lt;br /&gt;
* This will change the Web UI so that it refreshed information about ontologies every 15 minutes&lt;br /&gt;
* You will need to run /sbin/service httpd restart to have the change take affect&lt;br /&gt;
* '''NOTE:''' You will need to make this change again if you update the Web UI code. In addition, if you have a large list of ontologies this could slow down the Web UI for users as it will be required to retrieve more information more often.&lt;br /&gt;
&lt;br /&gt;
In addition, you can look at the REST service directly, which will always give you the most updated information. To do this, visit the following URL:&lt;br /&gt;
* http://example:8080/bioportal/ontologies/{ontology_version_id}&lt;br /&gt;
* You can look for the statusId element to get the status, the codes are as follows:&lt;br /&gt;
** 1 - Waiting&lt;br /&gt;
** 2 - Parsing&lt;br /&gt;
** 3 - Ready&lt;br /&gt;
** 4 - Error&lt;br /&gt;
** 5 - Not Applicable (for metadata-only ontologies)&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the BioPortal Ontology Services log files.&lt;br /&gt;
&lt;br /&gt;
There is a separate log file for OBO ontologies that can be monitored: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/lexgrid/LexBIG_load_log.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWL and Protege-based ontologies are logged into the general log file: &lt;br /&gt;
&amp;lt;code&amp;gt;tail -f /var/log/tomcat6/bioportal.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I manually remove the hierarchy information from an ontology like NCI Metathesaurus? ==&lt;br /&gt;
* Find the database prefix of the ontology by looking up the ontology in the LexEVS registry.xml file.&lt;br /&gt;
* Connect to the database that stores the LexEVS tables.&lt;br /&gt;
* Find the set of tables that stores the ontology using the table prefix.&lt;br /&gt;
* The table called codingSchemeSupportedAttrib needs to be updated to disable the hierarchy. To do so, find the row that has the column supportedAttributeTab that has a value called Hierarchy. Update that column to value HierarchyDisabled so that the loaded hierarchy is ignored.&lt;br /&gt;
* Restart Tomcat so that the new values are read in and the cache gets cleared.&lt;br /&gt;
&lt;br /&gt;
= Systems Administration =&lt;br /&gt;
&lt;br /&gt;
== How do I increase the Java heap size that Tomcat uses? ==&lt;br /&gt;
* By default we use a 512MB initial heap with a 2GB maximum. You can change these values by editing this file:&lt;br /&gt;
** &amp;lt;code&amp;gt;/usr/local/tomcat6/conf/tomcat6.conf&amp;lt;/code&amp;gt;&lt;br /&gt;
* Change the following line to match your requirements. -Xms is initial size, -Xmx is maximum size.&lt;br /&gt;
** &amp;lt;code&amp;gt;JAVA_OPTS=&amp;quot;${DEBUG} -Xms512m -Xmx2G -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart Tomcat by running the following command:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Web User Interface =&lt;br /&gt;
== How can I clear the memcached-based UI cache? ==&lt;br /&gt;
* If you are logged in as the admin user, simply visit http://example/admin and click the &amp;quot;Flush Memcache&amp;quot; button. There should be a response indicating success or failure.&lt;br /&gt;
&lt;br /&gt;
== How can I use widgets with my Virtual Appliance? ==&lt;br /&gt;
&lt;br /&gt;
=== Working with Javascript-based widgets (Form Autocomplete, Quick Jump/Jump To) ===&lt;br /&gt;
In addition to the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions], you must define an additional Javascript variable in order to have the widgets communicate with your instance of the Virtual Appliance.&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  var BP_SEARCH_SERVER = &amp;quot;http://{your_appliance_ip_or_domain_name}&amp;quot;;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Replace the '{your_appliance_ip_or_domain_name}' text with the IP address or domain name that's assigned to your Virtual Appliance.&lt;br /&gt;
&lt;br /&gt;
=== Working with Flex/Flash-based widgets (FlexViz, Ontology Tree Widget) ===&lt;br /&gt;
&lt;br /&gt;
When working with Flash widgets, you'll need to modify the [http://www.bioontology.org/wiki/index.php/NCBO_Widgets#How_to_use_NCBO_Widgets existing instructions] to change and add your ip address or domain name. See below and look for '{your_appliance_ip_or_domain_name}' and '{ontology_id}'. The '{ontology_id}' is the numerical id for the ontology you want to use with the widget, sometimes called a virtual id. You can find this via the REST service by looking for the &amp;lt;ontologyId&amp;gt; element, or looking in the Web UI on the Browse page. The links for ontologies contain a number that should be the virtual id.&lt;br /&gt;
&lt;br /&gt;
This example is for the Tree Browser.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;object classid=&amp;quot;clsid:D27CDB6E-AE6D-11cf-96B8-444553540000&amp;quot;&lt;br /&gt;
  id=&amp;quot;OntologyTree&amp;quot; width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot;&lt;br /&gt;
  codebase=&amp;quot;http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;movie&amp;quot; value=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;quality&amp;quot; value=&amp;quot;high&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;bgcolor&amp;quot; value=&amp;quot;#ffffff&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;allowScriptAccess&amp;quot; value=&amp;quot;always&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;param name=&amp;quot;flashVars&amp;quot; value=&amp;quot;ontology=&amp;lt;%= @ontology.ontologyId%&amp;gt;&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;embed src=&amp;quot;http://{your_appliance_ip_or_domain_name}/flex/OntologyTree.swf&amp;quot; quality=&amp;quot;high&amp;quot; bgcolor=&amp;quot;#ffffff&amp;quot;&lt;br /&gt;
    width=&amp;quot;300&amp;quot; height=&amp;quot;100%&amp;quot; name=&amp;quot;OntologyTree&amp;quot; align=&amp;quot;middle&amp;quot;&lt;br /&gt;
    play=&amp;quot;true&amp;quot;&lt;br /&gt;
    loop=&amp;quot;false&amp;quot;&lt;br /&gt;
    allowScriptAccess=&amp;quot;always&amp;quot;&lt;br /&gt;
    type=&amp;quot;application/x-shockwave-flash&amp;quot;&lt;br /&gt;
    flashVars=&amp;quot;ontology={ontology_id}&amp;amp;alerterrors=false&amp;amp;canchangeontology=false&amp;amp;virtual=true&amp;amp;server=http://{your_appliance_ip_or_domain_name}:8080/bioportal&amp;quot;&lt;br /&gt;
    pluginspage=&amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;/embed&amp;gt;&lt;br /&gt;
&amp;lt;/object&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In addition, there is a bug in existing versions of the Virtual Appliance that is scheduled to be fixed for the .5 version release in March 2012. Until then, you will need to run the following SQL commands to insert records into the 'bioportal' database:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INSERT INTO `ncbo_user` (`id`, `username`, `api_key`, `open_id`, `password`, `email`, `firstname`, `lastname`, `phone`, `date_created`)&lt;br /&gt;
VALUES&lt;br /&gt;
	(39108, 'annotator_flex', X'32626535656235352D383665622D343164362D386238312D653238653532356163633063', NULL, '8qQ8v8cjUZBCs99voQ2+i4mR1VhyFuj70ZCQUV9caXrPQv4K9FuDIfsfrn+ICoXp\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:09:32'),&lt;br /&gt;
	(39109, 'search_flex', X'39626437366335382D323230642D346337662D386164302D306135363731313634313939', NULL, '/jj4oWOmI1SXbfczyReBZI9z4DSzRoZP/iX9WJe9lb/7vm1owez/yAh6lIRpNOyj\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:10:18'),&lt;br /&gt;
	(39110, 'recommender_flex', X'35636564383837322D646636342D343838372D613338652D376338653736333935633830', NULL, 'RBmX8e1X2oUEEcqdp73/X7P7JkrfA7lbK8+svGPEojYmcmxDoHui3gC011Pg1cRF\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:11:16'),&lt;br /&gt;
	(39111, 'flexviz', X'34363832396130352D386331632D343232622D393530642D313836373633616530663763', NULL, 'uivHblEQJII216fGfG0No4RGELzBtY7Bo14IQulDsQOJY4cLUItYuTtU+TkPs1ln\r\n', 'example@domain.org', X'', X'', NULL, '2011-06-28 12:13:18');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= How can I use the OVF image with my virtualization software? &amp;lt;br/&amp;gt;&amp;lt;span style=&amp;quot;font-size: smaller;&amp;quot;&amp;gt;(VMWare, VirtualBox, KVM, Xen, etc)&amp;lt;/span&amp;gt; =&lt;br /&gt;
&lt;br /&gt;
== VMWare ==&lt;br /&gt;
You can use [http://communities.vmware.com/community/vmtn/vsphere/automationtools/ovf VMWare's ovftool] to convert the appliance to work with your VMWare product. For example, to convert the appliance for use in WMWare Player or Workstation, you would run the command: &amp;lt;code&amp;gt;ovftool ncbo-appliance.ovf ncbo-appliance.vmx&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== VirtualBox ==&lt;br /&gt;
VirtualBox supports importing OVF images directly. Simply start your VirtualBox software, then select '''File-&amp;gt;Import Appliance''' and select the OVF file included in the NCBO Virtual Appliance download.&lt;/div&gt;</summary>
		<author><name>Maseda</name></author>
	</entry>
</feed>