<?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=Palexand</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=Palexand"/>
	<link rel="alternate" type="text/html" href="https://www.bioontology.org//wiki/Special:Contributions/Palexand"/>
	<updated>2026-06-05T09:22:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12747</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=12747"/>
		<updated>2015-10-01T16:31:22Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How do I add or change slices? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
&lt;br /&gt;
== How can I enable emails for lost passwords, notes, and ontology processing? ==&lt;br /&gt;
&lt;br /&gt;
Emails are sent via the ontologies_api project on the Appliance. You need to provide a valid mail server (smtp) configuration. The configuration should be provided in the /srv/ncbo/ontologies_api/current/config/environments/production.rb file.&lt;br /&gt;
&lt;br /&gt;
Here are the available settings:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  config.enable_notifications   = true # Set to 'true' to send emails&lt;br /&gt;
  config.email_sender           = &amp;quot;admin@example.org&amp;quot; # Default sender for emails&lt;br /&gt;
  config.email_disable_override = true # If this is set to 'false', all emails will be sent to the email configured in the 'email_override' setting&lt;br /&gt;
  config.email_override         = &amp;quot;admin@example.org&amp;quot;&lt;br /&gt;
  config.smtp_host              = &amp;quot;smtp.example.org&amp;quot;&lt;br /&gt;
  config.smtp_port              = 25&lt;br /&gt;
  config.smtp_auth_type         = :none # :none, :plain, :login, :cram_md5&lt;br /&gt;
  config.smtp_user              = &amp;quot;username&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_password          = &amp;quot;password&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_domain            = &amp;quot;example.org&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have changed your settings, you will need to restart the server by running the command &amp;lt;code&amp;gt;/sbin/service unicorn restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I add or change slices? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Slices can be added using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ont1 = LinkedData::Models::Ontology.find(&amp;quot;ONT1&amp;quot;).first&lt;br /&gt;
ont2 = LinkedData::Models::Ontology.find(&amp;quot;ONT2&amp;quot;).first&lt;br /&gt;
slice = LinkedData::Models::Slice.new&lt;br /&gt;
slice.name = &amp;quot;My Slice&amp;quot;,&lt;br /&gt;
slice.description = &amp;quot;This is my custom slice&amp;quot;,&lt;br /&gt;
slice.acronym = &amp;quot;my_slice&amp;quot;,&lt;br /&gt;
slice.ontologies = [ont1, ont2]&lt;br /&gt;
slice.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console after switching to ncbobp user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
UMLS ontologies can be processed to work with our system by converting them to RDF. There is no automated way to do this and you must have your own UMLS MySQL installation and a OSX/Linux/Unix machine with 8GB+ of RAM in order for the conversion process to work. The scripts to convert UMLS to RDF are available on [https://github.com/ncbo/umls2rdf Github].&lt;br /&gt;
&lt;br /&gt;
Once you have converted UMLS to RDF, you will get Turtle (.ttl) files that can be uploaded using the BioPortal Web UI. Please select UMLS as the format for these ontologies.&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
Appliance is available on [https://aws.amazon.com/marketplace/pp/B00MX5YKVU Amazon Marketplace]&lt;br /&gt;
&lt;br /&gt;
=== What is the admin password for the AWS Appliance ===&lt;br /&gt;
The default application administrator is 'admin' and the initial password is the Instance ID (i-xxxxxxxx).&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12746</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=12746"/>
		<updated>2015-09-30T18:35:06Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How do I add or change categories or groups? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
&lt;br /&gt;
== How can I enable emails for lost passwords, notes, and ontology processing? ==&lt;br /&gt;
&lt;br /&gt;
Emails are sent via the ontologies_api project on the Appliance. You need to provide a valid mail server (smtp) configuration. The configuration should be provided in the /srv/ncbo/ontologies_api/current/config/environments/production.rb file.&lt;br /&gt;
&lt;br /&gt;
Here are the available settings:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  config.enable_notifications   = true # Set to 'true' to send emails&lt;br /&gt;
  config.email_sender           = &amp;quot;admin@example.org&amp;quot; # Default sender for emails&lt;br /&gt;
  config.email_disable_override = true # If this is set to 'false', all emails will be sent to the email configured in the 'email_override' setting&lt;br /&gt;
  config.email_override         = &amp;quot;admin@example.org&amp;quot;&lt;br /&gt;
  config.smtp_host              = &amp;quot;smtp.example.org&amp;quot;&lt;br /&gt;
  config.smtp_port              = 25&lt;br /&gt;
  config.smtp_auth_type         = :none # :none, :plain, :login, :cram_md5&lt;br /&gt;
  config.smtp_user              = &amp;quot;username&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_password          = &amp;quot;password&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_domain            = &amp;quot;example.org&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have changed your settings, you will need to restart the server by running the command &amp;lt;code&amp;gt;/sbin/service unicorn restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I add or change slices? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Slices can be added using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ont1 = LinkedData::Models::Ontology.find(&amp;quot;ONT1&amp;quot;)&lt;br /&gt;
ont2 = LinkedData::Models::Ontology.find(&amp;quot;ONT2&amp;quot;)&lt;br /&gt;
slice = LinkedData::Models::Slice.new&lt;br /&gt;
slice.name = &amp;quot;My Slice&amp;quot;,&lt;br /&gt;
slice.description = &amp;quot;This is my custom slice&amp;quot;,&lt;br /&gt;
slice.acronym = &amp;quot;my_slice&amp;quot;,&lt;br /&gt;
slice.ontologies = [ont1, ont2]&lt;br /&gt;
slice.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the ncbobp user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console after switching to ncbobp user:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
UMLS ontologies can be processed to work with our system by converting them to RDF. There is no automated way to do this and you must have your own UMLS MySQL installation and a OSX/Linux/Unix machine with 8GB+ of RAM in order for the conversion process to work. The scripts to convert UMLS to RDF are available on [https://github.com/ncbo/umls2rdf Github].&lt;br /&gt;
&lt;br /&gt;
Once you have converted UMLS to RDF, you will get Turtle (.ttl) files that can be uploaded using the BioPortal Web UI. Please select UMLS as the format for these ontologies.&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
Appliance is available on [https://aws.amazon.com/marketplace/pp/B00MX5YKVU Amazon Marketplace]&lt;br /&gt;
&lt;br /&gt;
=== What is the admin password for the AWS Appliance ===&lt;br /&gt;
The default application administrator is 'admin' and the initial password is the Instance ID (i-xxxxxxxx).&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12716</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12716"/>
		<updated>2015-02-04T01:05:37Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree-2.0.0.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.-2.0.0.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''startingRoot''': Start with this class as the only root displayed in the tree. This allows you to display a sub-tree or branch of your choosing.&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Public Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).data(&amp;quot;NCBOTree&amp;quot;);&lt;br /&gt;
// OR&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;)[0].NCBOTree;&lt;br /&gt;
// OR&lt;br /&gt;
var tree = document.getElementById(&amp;quot;tree&amp;quot;).NCBOTree;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have the tree instance, you can call the following methods:&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12715</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12715"/>
		<updated>2015-02-04T01:05:08Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree-2.0.0.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.-2.0.0.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''startingRoot''': Start with this class as the only root displayed in the tree. This allows you to display a sub-tree or branch of your choosing.&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).data(&amp;quot;NCBOTree&amp;quot;);&lt;br /&gt;
// OR&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;)[0].NCBOTree;&lt;br /&gt;
// OR&lt;br /&gt;
var tree = document.getElementById(&amp;quot;tree&amp;quot;).NCBOTree;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have the tree instance, you can call the following methods:&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12714</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12714"/>
		<updated>2015-02-04T01:02:02Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree-2.0.0.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.-2.0.0.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''startingRoot''': Start with this class as the only root displayed in the tree. This allows you to display a sub-tree or branch of your choosing.&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Resource_Index_Dataset_Workflow_Howto&amp;diff=12712</id>
		<title>Resource Index Dataset Workflow Howto</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Resource_Index_Dataset_Workflow_Howto&amp;diff=12712"/>
		<updated>2015-01-15T00:07:48Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Replaced content with &amp;quot;As of Virtual Appliance v2.2, populating the Resource Index Dataset is no longer supported. A separate Resource Index Virtual Appliance may be released at some point.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of Virtual Appliance v2.2, populating the Resource Index Dataset is no longer supported. A separate Resource Index Virtual Appliance may be released at some point.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Annotator_Dataset_Workflow_Howto&amp;diff=12711</id>
		<title>Annotator Dataset Workflow Howto</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Annotator_Dataset_Workflow_Howto&amp;diff=12711"/>
		<updated>2015-01-15T00:06:53Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Replaced content with &amp;quot;As of Virtual Appliance v2.2, populating the Annotator Dataset is done automatically when an ontology is processed.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of Virtual Appliance v2.2, populating the Annotator Dataset is done automatically when an ontology is processed.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12700</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=12700"/>
		<updated>2014-09-17T17:49:11Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How can I enable emails for lost passwords, notes, and ontology processing? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
&lt;br /&gt;
== How can I enable emails for lost passwords, notes, and ontology processing? ==&lt;br /&gt;
&lt;br /&gt;
Emails are sent via the ontologies_api project on the Appliance. You need to provide a valid mail server (smtp) configuration. The configuration should be provided in the /srv/ncbo/ontologies_api/current/config/environments/production.rb file.&lt;br /&gt;
&lt;br /&gt;
Here are the available settings:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  config.enable_notifications   = true # Set to 'true' to send emails&lt;br /&gt;
  config.email_sender           = &amp;quot;admin@example.org&amp;quot; # Default sender for emails&lt;br /&gt;
  config.email_disable_override = true # If this is set to 'false', all emails will be sent to the email configured in the 'email_override' setting&lt;br /&gt;
  config.email_override         = &amp;quot;admin@example.org&amp;quot;&lt;br /&gt;
  config.smtp_host              = &amp;quot;smtp.example.org&amp;quot;&lt;br /&gt;
  config.smtp_port              = 25&lt;br /&gt;
  config.smtp_auth_type         = :none # :none, :plain, :login, :cram_md5&lt;br /&gt;
  config.smtp_user              = &amp;quot;username&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_password          = &amp;quot;password&amp;quot; # only used if auth_type is not :none&lt;br /&gt;
  config.smtp_domain            = &amp;quot;example.org&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have changed your settings, you will need to restart the server by running the command &amp;lt;code&amp;gt;/sbin/service unicorn restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
UMLS ontologies can be processed to work with our system by converting them to RDF. There is no automated way to do this and you must have your own UMLS MySQL installation and a OSX/Linux/Unix machine with 8GB+ of RAM in order for the conversion process to work. The scripts to convert UMLS to RDF are available on [https://github.com/ncbo/umls2rdf Github].&lt;br /&gt;
&lt;br /&gt;
Once you have converted UMLS to RDF, you will get Turtle (.ttl) files that can be uploaded using the BioPortal Web UI. Please select UMLS as the format for these ontologies.&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12699</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=12699"/>
		<updated>2014-09-16T19:38:56Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* NCBO VIRTUAL APPLIANCE v2.0 FAQ */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
= General =&lt;br /&gt;
&lt;br /&gt;
== How can I enable emails for lost passwords, notes, and ontology processing? ==&lt;br /&gt;
&lt;br /&gt;
Emails are sent via the ontologies_api project on the Appliance. You need to provide a valid mail server (smtp) configuration. The configuration should be provided in the /srv/ncbo/ontologies_api/current/config/environments/production.rb file.&lt;br /&gt;
&lt;br /&gt;
Here are the available settings:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
  config.enable_notifications   = true # Set to 'true' to send emails&lt;br /&gt;
  config.email_sender           = &amp;quot;admin@example.org&amp;quot; # Default sender for emails&lt;br /&gt;
  config.email_disable_override = true # If this is set to 'false', all emails will be sent to the email configured in the 'email_override' setting&lt;br /&gt;
  config.email_override         = &amp;quot;admin@example.org&amp;quot;&lt;br /&gt;
  config.smtp_host              = &amp;quot;smtp.example.org&amp;quot;&lt;br /&gt;
  config.smtp_port              = 25&lt;br /&gt;
  config.smtp_auth_type         = :none # :none, :plain, :login, :cram_md5&lt;br /&gt;
  config.smtp_domain            = &amp;quot;example.org&amp;quot;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
UMLS ontologies can be processed to work with our system by converting them to RDF. There is no automated way to do this and you must have your own UMLS MySQL installation and a OSX/Linux/Unix machine with 8GB+ of RAM in order for the conversion process to work. The scripts to convert UMLS to RDF are available on [https://github.com/ncbo/umls2rdf Github].&lt;br /&gt;
&lt;br /&gt;
Once you have converted UMLS to RDF, you will get Turtle (.ttl) files that can be uploaded using the BioPortal Web UI. Please select UMLS as the format for these ontologies.&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_Release_Notes&amp;diff=12698</id>
		<title>BioPortal Release Notes</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_Release_Notes&amp;diff=12698"/>
		<updated>2014-09-12T00:19:58Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* BioPortal Release 4.6 (May 2014) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== BioPortal Release 4.10 (September 2014) ==&lt;br /&gt;
&lt;br /&gt;
We are happy to announce the release of BioPortal 4.10. We have had a number of “silent releases” since the 4.6 release in late April. We are pleased to announce the latest BioPortal release and fill you in on features that have been released silently in the interim:&lt;br /&gt;
 &lt;br /&gt;
* Reengineered the entire Resource Index to achieve better and more consistent performance and to align the Resource Index with the new BioPortal backend (released last year). In addition to allowing us to support additional resources, this revision removes a number of inconsistencies that resulted from the Resource Index using the old BioPortal backend.&lt;br /&gt;
* Upgraded the OWL and OBO parser to the latest version and reparsed all OBO and OWL ontologies. This reprocessing fixed a large number of problems with ontologies that either did not parse or that failed  search indexing or metrics calculations.&lt;br /&gt;
* We now create and make available for download a comma-separated value (CSV) file for most ontologies. These files have one row/class and a standard set of properties in the columns. We cannot make these files available for ontologies if the license for the ontology does not permit it (e.g. SNOMED-CT and MedDRA).&lt;br /&gt;
* Fixed PURLS for all ontologies. There were a large number of ontologies for which the PURLs we created, in the old system or the new one, no longer worked correctly.&lt;br /&gt;
* Reworked the entire mappings system so that mappings will be always up-to-date with the latest version of the ontologies.&lt;br /&gt;
* Created a web page (http://bioportal.bioontology.org/validate_ontology_file) so that users can validate that their ontologies parse correctly with the latest version of the OWL/OBO parser.&lt;br /&gt;
* Removed a number of bogus ontologies and spam notes.&lt;br /&gt;
* Fixed implementation of “longest only” parameter in Annotator.&lt;br /&gt;
* We now reparse and reindex an ontology if the administrator of the ontology changes the metadata for the ontology. The reparse  is necessary because the metadata contains information, such as the properties that contain synonyms or definitions, that influence the parsing and indexing.&lt;br /&gt;
* Recalculated metrics for all ontologies. This process filled in metrics for many ontologies that lacked them, and corrected the calculations of some metrics in other ontologies.&lt;br /&gt;
* We now allow the download of RDF (Turtle) files for UMLS ontologies whose license allows users to download them.&lt;br /&gt;
* Reindexing ontologies for search no longer interferes with the use of search on those ontologies. Previously search for an ontology was either broken or incomplete for an ontology that was being indexed.&lt;br /&gt;
* Added an ontology properties endpoint to the REST API. This endpoint allows a user to query for the properties used by an ontology.&lt;br /&gt;
 &lt;br /&gt;
As previously noted, we have permanently retired the old NCBO BioPortal API. New API documentation is available at&lt;br /&gt;
http://data.bioontology.org/documentation.&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 4.6 (May 2014) ==&lt;br /&gt;
&lt;br /&gt;
* Improved Search Result Display – Many ontologies contain classes that are references to a canonical ontology that “owns” the class. The system now automatically tries to identify the “owning” ontology and emphasize it in the results while displaying the ontologies that contain references to that ontology as subordinate (for that class). This feature is easier to try out than to explain. Type in “cancer” into the search box on the Search Tab and scan through the results to see what it is all about. This sort of display has been requested by a number of users for quite a while and we are happy to finally provide it.&lt;br /&gt;
* Implemented Search for ID (URI), UMLS CUI, UMLS TUI, and skos:notation – The search system now will use the input search to find a class URI, a class skos:notation field (“short id” in the old system) or a UMLS “concept unique identifier” or semantic type. All of these fields are available through the default search mechanism. There is still an optional “all properties” parameter to search these property values along with all other property values.&lt;br /&gt;
* Released New Version of BioMixer visualization system – The BioMixer system has been updated to improve performance and be more robust. (Work performed by our University of Victoria collaborators.)&lt;br /&gt;
* Implemented New Mapping Visualization – Mappings system now allows a user to visualize the strength of mappings relationships between ontologies. Go to the mappings tab, select an ontology, and hit the visualization radio button to try this out. (Work performed by our University of Victoria collaborators.)&lt;br /&gt;
* Implemented Configurable REST API calls – The Annotator and Search REST calls now allow a user specify which fields of a class the system should return. The user can also specify “all” to get everything. &lt;br /&gt;
* Updated UMLS Ontologies – All UMLS ontologies have been updated to the latest (2013 AB) version.&lt;br /&gt;
* Improved Autocomplete – The autocomplete in the ontology “Jump To” box, and in the widgets, now works more reliably with results that are more intuitive than previously.&lt;br /&gt;
* Provide Access Control for Mappings – We have implemented access control to prevent people other than the author from deleting a mapping.&lt;br /&gt;
* Reimplemented Annotator “Longest Only” Parameter – We have reimplemented the annotator “longest only” parameter to work in all situations. This parameter allows the user to limit the returned results to only those matches which are longer than other matches for a given ontology. In the old system this parameter did not work correctly.&lt;br /&gt;
* Reimplemented Widgets to not use Flash – We have reimplemented the widgets to not use the Adobe Flash technology. Requiring the use of this technology was unpopular among our user community.&lt;br /&gt;
* Enabled Upload and Download Large Ontologies – We have fixed various timeout problems which prevented users from uploading or downloading large ontologies.&lt;br /&gt;
* Fixed Bugs! – Fixed a very large number of bugs, some new with the new system, and some carried forward from the old system.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
We have today shut down access to the old BioPortal REST API and will be turning off the old system entirely in the near future. We have provided 7 months for application developers to move to the new system and the vast majority have already done so. The overwhelming response from developers has been the that new system is now (after a few post release glitches!) much easier to use and much more reliable than the old system. Documentation for the new API is available at:&lt;br /&gt;
http://data.bioontology.org/documentation&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 4.0 (September 2013) ==&lt;br /&gt;
&lt;br /&gt;
The primary distinguishing feature of this release is the replacement of several backend storage and caching mechanisms with a single triple-store based backend built with on the open source 4store platform.  In addition we are simultaneously releasing a new version of the BioPortal REST API. This API is also built on top of the triple store. It provides a much more uniform and REST-full interface to the underlying BioPortal data than our previous REST API.&lt;br /&gt;
&lt;br /&gt;
The old API will continue to function through the end of 2013. This API will only be able to access “old content” (that is, ontologies submitted or updated before today).  We encourage API users to transition as quickly as possible to the new API. The new API is the only way to access both new content (submitted after today) and old content. The reports from beta users of the new API have been uniformly positive.  Draft documentation for the new API is available at &lt;br /&gt;
http://data.bioontology.org/documentation&lt;br /&gt;
&lt;br /&gt;
BioPortal users will note a few changes from the previous version. Some of these changes are temporary (we didn’t quite get everything done…) while others are permanent. There are also a number of minor and cosmetic changes. The list of the more important changes is available below.&lt;br /&gt;
&lt;br /&gt;
With a release of this size, it is inevitable that some bugs have crept in. Please report any that you run across to the support@bioontology.org mailing list. Have confidence that we will be working diligently to prioritize and fix the problems that arise.&lt;br /&gt;
&lt;br /&gt;
Temporary Changes &lt;br /&gt;
* All handling of obsolete classes in UI and API is not supported yet. Obsolete classes are currently indistinguishable from normal classes.&lt;br /&gt;
* “Slices” and ontology sets (user defined lists of ontologies of interest) are not supported yet&lt;br /&gt;
* The tree browse UI does not yet distinguish between is-a and part-of relations for OBO ontologies. Previously (and probably in the future) icons next to the class name indicated the relationship type. &lt;br /&gt;
* We do not yet have a VM version for this release. We expect to produce a new VM version by the end of the year. This VM will include the triple-store based storage mechanism. In addition VM users will be able to query the VM triple-store directly with SPARQL.&lt;br /&gt;
* Parsing of new ontologies and new versions remains disabled for the next few days. We will re-enable parsing by early next week.&lt;br /&gt;
&lt;br /&gt;
Permanent Additions&lt;br /&gt;
* New ontologies and new versions of ontologies will be typically available for text annotation the next day after submission. Previously the process took several weeks to several months.&lt;br /&gt;
* We now have the latest versions UMLS ontologies. Previously we updated UMLS ontologies on request only, which left us with some very old versions. Going forward we will try to update our set of UMLS ontologies within a month of the UMLS release.&lt;br /&gt;
&lt;br /&gt;
Permanent Subtractions&lt;br /&gt;
* Programmatic and browse access to classes in non-current versions of ontologies is removed. We still retain metadata about older versions of ontologies and we still allow you to download the source files for old versions.&lt;br /&gt;
* We no longer support Protégé Frames format ontologies. Owners of these ontologies will need to convert them to OWL or OBO to load them.&lt;br /&gt;
* We now use the owlAPI (http://owlapi.sourceforge.net/) to load OWL and OBO ontologies. This API supports OWL version 2.0. For almost all features, OWL 2.0 is a superset of OWL 1.0. There are some edge cases though where ontologies that marginally parsed with an OWL 1.0 parser will not parse at all with the OWL 2.0 parser. We leave it to OWL ontology owners to provide valid OWL 2.0 ontologies.&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.12 ==&lt;br /&gt;
* Implemented the display of the OBO part-of relationship in the term neighborhood visualization.&lt;br /&gt;
* Improved some default layouts in the visualization system.&lt;br /&gt;
* Updated automated mappings for all ontologies.&lt;br /&gt;
* Regenerated the annotator hierarchy database. The versions of ontologies in this database are now much more current.&lt;br /&gt;
* Implemented support for federated queries in the [http://sparql.bioontology.org BioPortal SPARQL endpoint].&lt;br /&gt;
* Moved the mappings from the BioPortal endpoint into a separate public endpoint. This change allows us to update automated mappings more cleanly.&lt;br /&gt;
* Added the following resources to the Resource Index. All of these resources are the results of our collaboration with the [http://www.neuinfo.org/ Neuroscience Information Framework] (NIF) group.&lt;br /&gt;
** NIF PubMed Health: Tests&lt;br /&gt;
** NIF Drug Related Gene Database&lt;br /&gt;
** NIF Gemma&lt;br /&gt;
** NIF Integrated Disease View&lt;br /&gt;
* Fixed “Maximum Depth” metric for a number of ontologies. Was incorrectly displaying “1” in some cases.&lt;br /&gt;
* Fixed web service failure when attempting to retrieve all concepts from several ontologies.&lt;br /&gt;
* Fixed annotator to return all ancestor terms. Was missing some ancestors for some ontologies.&lt;br /&gt;
* Fixed Search to work correctly in MeSH.&lt;br /&gt;
* Fixed problem with SPARQL query to BioPortal endpoint on queries that include ORDER and LIMIT clauses&lt;br /&gt;
&lt;br /&gt;
(Release February 2013)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.10 ==&lt;br /&gt;
* Revised UI for the Resource Index. This new UI supports the BioPortal slice mechanism. The new UI is also much faster than the previous one.&lt;br /&gt;
* Updated ontologies available for use with the Annotator which includes newer ontologies and more recent versions of existing ontologies.&lt;br /&gt;
* Fixed a longstanding bug in the Annotator that caused paths from a term to root nodes to occasionally be truncated.&lt;br /&gt;
* Allow submission of Notes on ontology terms by anonymous users. Previously a user had to be logged in to submit a note.&lt;br /&gt;
&lt;br /&gt;
(Release July 2012)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.9 ==&lt;br /&gt;
* We have revised the search interface, both for specifying a search and in the format of the returned results. The new “advanced search” capability allows users to specify more clearly exactly what terms they would like to find. This capability also allows us to choose better (more commonly desired) defaults for the “basic search”. The returned search results are now grouped by ontology and the results are ranked so that terms from “better”  ontologies are returned first. We also show definitions for terms that have them. In general this response format was inspired by the Google search response interface so we hope that it looks familiar. We are specifically soliciting feedback from users on this revision. Please send any comments to support@bioontology.org.  *&lt;br /&gt;
 &lt;br /&gt;
* We include the first version of the BioMixer visualization software (available through the “Visualize” links). This software replaces the older FlexViz system. There are a number of technology improvements (i.e. the removal of Flash technology) over the older system and the newer system is more powerful as well (i.e. you can now navigate mappings from the basic interface). More complete versions of BioMixer will be introduced in subsequent releases. Please provide any feedback you can on this new system. *&lt;br /&gt;
 &lt;br /&gt;
* We have regenerated all automatically generated mappings in the system. These include lexical mappings, UMLS CUI mappings, identical identifier mappings, and OBO-xref mappings. We have also loaded mappings between selected UMLS ontologies as specified in the UMLS database (MRMAP).&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;  This item was requested via the User Support mailing list. Thank you for your comments and suggestions!&lt;br /&gt;
&lt;br /&gt;
(Release June 2012)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.8 == &lt;br /&gt;
* We have regenerated all mappings based on UMLS CUIs. Thus terms in different UMLS ontologies which share the same CUI are now mapped to each other.  The mapping created is of type skos:closeMatch. There are now 3,000,000 of these UMLS CUI mappings in the system.*&lt;br /&gt;
 &lt;br /&gt;
* We have regenerated all mappings based on xrefs (OBO cross-reference) in OBO ontologies.  A mapping is now generated when a term in an OBO ontology has an xref to a term in another ontology. The mapping created is of type skos:relatedMatch. There are 35,000 of these xref mappings in the system.*&lt;br /&gt;
 &lt;br /&gt;
* We have regenerated all mappings based on terms which have identical unique identifiers (IRIs).  A mapping is now generated when term in an ontology has a unique identifier that is identical to the identifier of a term in another ontology. The mapping created is of type skos:exactMatch. There are 700,000 of these identical IRI mappings in the system.*&lt;br /&gt;
 &lt;br /&gt;
We also fixed a number of bugs which were causing performance, stability, and ontology upload problems.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;This item was requested via the User Support mailing list and the NCBO User Group. Thank you for your comments and suggestions!&lt;br /&gt;
&lt;br /&gt;
(Release May 2012)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.7 ==&lt;br /&gt;
* Updated term mappings generated by LOOM &lt;br /&gt;
* Added boolean functionality to Search Web service and UI&lt;br /&gt;
* Updated ontology content for the Resource Index&lt;br /&gt;
* BioPortal SPARQL endpoint beta release, http://sparql.bioontology.org &lt;br /&gt;
* Modified response of Annotator UI to not fail if input text contains returns or results do not have any term matches*&lt;br /&gt;
* Bug fix for Term Autocomplete widget to remove namespace collision with jQuery widgets*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; This item was requested via the User Support mailing list and the NCBO User Group. Thank you for your comments and suggestions!&lt;br /&gt;
&lt;br /&gt;
(Release April 2012)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.6 ==&lt;br /&gt;
* Created “alternate entry points” for BioPortal. These URL’s limit the ontologies that are visible in BioPortal, allowing users to focus on a shared, smaller set of ontologies. The entry points which are currently available are:&lt;br /&gt;
** OBO-Foundry: http://obo-foundry.bioportal.bioontology.org&lt;br /&gt;
** Unified Medical Language Systems: http://umls.bioportal.bioontology.org&lt;br /&gt;
** Cancer Biomedical Informatics Grid: http://cabig.bioportal.bioontology.org&lt;br /&gt;
** Clinical and Translational Science Awards: http://ctsa.bioportal.bioontology.org&lt;br /&gt;
** CTSA Health Ontology Mapper: http://ctsa-hom.bioportal.bioontology.org&lt;br /&gt;
** Proteomics Standards Initiative: http://psi.bioportal.bioontology.org&lt;br /&gt;
** WHO Family of International Classifications: http://who-fic.bioportal.bioontology.org&lt;br /&gt;
** Consultative Group on Intl Agricultural Research: http://cgiar.bioportal.bioontology.org&lt;br /&gt;
** Please contact us on the support mailing list if you would like us to configure an entry point for another set of ontologies.&lt;br /&gt;
* Major Updates and Fixes&lt;br /&gt;
** Updated the ontologies used by the Annotator Web Services*&lt;br /&gt;
** Improved the reliability and robustness of the parsing of OWL 2 ontologies*&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; This item was requested via the User Support mailing list and the NCBO User Group. Thank you for your comments and suggestions!&lt;br /&gt;
&lt;br /&gt;
(Release January 2012) &lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.5 ==&lt;br /&gt;
* Added ability for logged-in users to filter which ontologies appear in their BioPortal display&lt;br /&gt;
* Updated Annotator page to simplify the selection of options, to clarify the annotation results, and to remove Flash from the implementation&lt;br /&gt;
* Improved Annotator Web service response performance by 5-10x* &lt;br /&gt;
* Added ability for the ontology Web services API to optionally return JSON (rather than XML)* &lt;br /&gt;
* Updated Ontology Recommender algorithm to provide better recommendations*&lt;br /&gt;
* Added display of matched terms for Ontology Recommender*&lt;br /&gt;
* Added Web service to get all namespaces for an ontology*&lt;br /&gt;
* Bug Fixes &lt;br /&gt;
** Display user-friendly names for RxNorm ontology properties&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; This item was requested via the User Support mailing list and the NCBO User Group. Thank you for your comments and suggestions! &lt;br /&gt;
&lt;br /&gt;
(Release December 2011)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.4 ==&lt;br /&gt;
* Revised the Term Mappings tab to ease the creation of term-to-term mappings*&lt;br /&gt;
* Limited access to “Private” ontologies via the Browse and Search pages&lt;br /&gt;
* Added backend support to allow multiple administrators for a single ontology*&lt;br /&gt;
* Added ability to copy to the clipboard a permanent link to any BioPortal term*  &lt;br /&gt;
* Bug Fixes &lt;br /&gt;
** Resolved issue causing search to not display all matching terms* &lt;br /&gt;
** Fixed Term Mappings tab display for IE 7 &amp;amp; 8* &lt;br /&gt;
** Fixed RDF Ontology Download Web service&lt;br /&gt;
** Fixed link to the list of resources included in the Resource Index* &lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt; This item was requested via the User Support mailing list and the NCBO User Group. Thank you for your comments and suggestions! &lt;br /&gt;
&lt;br /&gt;
(Release October 2011) &lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.3 == &lt;br /&gt;
New features include updates to the Web interface and Web services:&lt;br /&gt;
* Added Get Properties Web service, http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Property_Services &lt;br /&gt;
* Updated Search page to remove Flash&lt;br /&gt;
* Handling of obsolete terms, part 2 – term name is grayed out and &amp;lt;is_obsolete&amp;gt; element is returned in Web service response for obsolete terms from OWL ontologies. &lt;br /&gt;
* Added Help documentation &lt;br /&gt;
* Implemented a feature to allow ontology submitters to flag their ontology as “licensed”. This feature allows the ontology submitter to require users to provide license information before they are allowed to access the ontology.&lt;br /&gt;
* Bug Fix&lt;br /&gt;
** Fixed the Filter by Account on the Mappings tab&lt;br /&gt;
&lt;br /&gt;
(Release date September 2011)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.2 ==&lt;br /&gt;
New features include updates to the Web interface and Web services:&lt;br /&gt;
* Added Ontology Recommender feature, http://bioportal.bioontology.org/recommender  &lt;br /&gt;
** Web service documentation: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service&lt;br /&gt;
** Sample client information: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Client_Examples&lt;br /&gt;
* Added support for access control for viewing ontologies &lt;br /&gt;
* Added link to subscribe to BioPortal Notes emails  &lt;br /&gt;
* Synchronized “Jump To” feature with ontology parsing and display &lt;br /&gt;
* Added documentation on Ontology Groups&lt;br /&gt;
* Annotator Web service – disabled use of “longest only” parameter when also selecting “ontologies to expand” parameter &lt;br /&gt;
* Removed the metric &amp;quot;Number of classes without an author&amp;quot; &lt;br /&gt;
* Handling of obsolete terms, part 1 – term name is grayed out and &amp;lt;is_obsolete&amp;gt; element is returned in Web service response for obsolete terms from OBO and RRF ontologies. This feature will be extended to cover OWL ontologies in a subsequent release.   &lt;br /&gt;
* Bug Fix&lt;br /&gt;
** Fixed calculation of “Classes with no definition” metric&lt;br /&gt;
** Added re-direct from old BioPortal URL format to new URL format to provide working links from archived search results &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''''Firefox Extension for NCBO API Key''''':&lt;br /&gt;
To make it easier to test Web service calls from your browser, we have released the NCBO API Key Firefox Extension. This extension will automatically add your API Key to NCBO REST URLs any time you visit them in Firefox. The extension is available at Mozilla's Add-On site. To use the extension, follow the installation directions, restart Firefox, and add your API Key into the “Options” dialog menu on the Add-Ons management screen. After that, the extension will automatically append your stored API Key any time you visit http://rest.bioontology.org. &lt;br /&gt;
&lt;br /&gt;
'''''Upcoming software license change''''':&lt;br /&gt;
The next release of NCBO software will be under the two-clause BSD license rather than under the currently used three-clause BSD license. This change should not affect anyone’s use of NCBO software and this change is to a less restrictive license. More information about these licenses is available at the site: http://www.opensource.org/licenses. Please contact support@bioontology.org with any questions concerning this change.&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.1 ==&lt;br /&gt;
New features include updates to the Web interface and Web services:&lt;br /&gt;
* Support for loading OWL 2 ontologies&lt;br /&gt;
* Security Framework, part 2 - The apikey parameter is now required for all Web services. Login to BioPortal to get your API Key. &lt;br /&gt;
* Browsing of ontologies that contain large numbers of sibling terms&lt;br /&gt;
* Icons for is_a and part_of  are displayed for OBO format ontologies &lt;br /&gt;
* Display of the “occurs_in” relationship used in the Extended version of the Gene Ontology &lt;br /&gt;
Bug Fix&lt;br /&gt;
* Added informative error message when incompatible parameter values are used in the Annotator Web service and updated Perl client to capture this error response&lt;br /&gt;
&lt;br /&gt;
(Release date July 8, 2011)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 3.0 ==&lt;br /&gt;
New features include updates to the Web interface and Web services:&lt;br /&gt;
* Web interface updates&lt;br /&gt;
* Browse page now displays ontology features, e.g. size of the ontology, number of notes added to the ontology, number of projects that use the ontology, and number of reviews of the ontology&lt;br /&gt;
* New ontology summary details page highlights the ontology metrics, reviews, projects, and derived views of the ontology&lt;br /&gt;
* Security Framework, part 1 - Added apikey parameter to all Web services. The apikey parameter is optional until June 15, 2011, after this time the apikey parameter will be required for usage of the Web services. Login to BioPortal to get your API key.&lt;br /&gt;
* Provisional Term Web service - New term proposals now receive a provisional term id. Additional Web services are now available for submitting provisional terms. For more details, see: http://www.bioontology.org/wiki/index.php/BioPortal_Provisional_Terms&lt;br /&gt;
* Form auto-complete Widget - Option to include term definition in display&lt;br /&gt;
* Resource Index&lt;br /&gt;
** Data indexed with new ontologies from BioPortal&lt;br /&gt;
** PubMed data now available for abstracts published in 2010 &lt;br /&gt;
&lt;br /&gt;
(Release date May 19, 2011)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 2.6.4 ==&lt;br /&gt;
New features include additional Web services and Web interface enhancements:&lt;br /&gt;
* Mapping Web services - Access to ontology term mappings, including UMLS, OBO DbXref, and LOOM mappings ( http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service ) ''Please note, the prototype Mapping Web service will be removed March 23'' &lt;br /&gt;
* RDF Download Web service - Access any BioPortal ontology in RDF ( http://www.bioontology.org/wiki/index.php/NCBO_REST_services#RDF_Term_Service and http://www.bioontology.org/wiki/index.php/NCBO_REST_services#RDF_Download_Service )&lt;br /&gt;
* Notes - Ability to archive Notes, e.g. accepted term proposals, and filter from display&lt;br /&gt;
* Annotator&lt;br /&gt;
** Updated ontology content&lt;br /&gt;
** Offsets corrected for non-ASCII characters&lt;br /&gt;
** Link to Annotator Web interface using parameters&lt;br /&gt;
** Web interface enhancements&lt;br /&gt;
* Display of ontology development status&lt;br /&gt;
* Hyperlinks on term details page&lt;br /&gt;
* Ability to add comments on Mappings&lt;br /&gt;
&lt;br /&gt;
(Release date February 2011)&lt;br /&gt;
&lt;br /&gt;
== BioPortal Release 2.5 ==&lt;br /&gt;
New features in this release include the following:&lt;br /&gt;
* Support for structured notes and term requests: Users can now use BioPortal to request that content developers add new terms or update other ontology content. BioPortal provides a structured template for making such requests,  allowing users to suggest preferred names, synonyms, and definitions for the requested terms. BioPortal stores the requests as structured notes that are attached to the ontology and that other ontology tools, such as Protégé, will be able to use.&lt;br /&gt;
&lt;br /&gt;
* Support for email notifications to interested parties whenever a BioPortal user creates new notes for an ontology of interest. (If  you would like to subscribe to notifications about a particular ontology, please send email to support at bioontology.org.  We will have an interactive form to sign-up for notifications shortly.)&lt;br /&gt;
&lt;br /&gt;
* Prototype Web services to generate RDF representation for terms in ontologies in BioPortal (see documentation [1] for details).&lt;br /&gt;
&lt;br /&gt;
* Prototype end-point for SPARQL access to all ontologies in BioPortal: http://sparql.bioontology.org&lt;br /&gt;
&lt;br /&gt;
* Web services for retrieving instance information for OWL ontologies [1]. We are planning to release a user interface for  viewing instances shortly.&lt;br /&gt;
&lt;br /&gt;
* New ontology widgets that developers can embed on their Web sites, including an ontology tree widget that allows Web-site authors to present a display of an ontology or an ontology subtree for any BioPortal ontology in any Web page.&lt;br /&gt;
&lt;br /&gt;
* Preview release of Bio-Mixer, a mashup tool that provides extremely flexible browsing and exploration of ontologies and their mappings&lt;br /&gt;
&lt;br /&gt;
[1] http://www.bioontology.org/wiki/index.php/NCBO_REST_services&lt;br /&gt;
&lt;br /&gt;
(Release date June 9, 2010)&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12691</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=12691"/>
		<updated>2014-07-07T17:50:07Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How can I process a UMLS ontology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
UMLS ontologies can be processed to work with our system by converting them to RDF. There is no automated way to do this and you must have your own UMLS MySQL installation and a OSX/Linux/Unix machine with 8GB+ of RAM in order for the conversion process to work. The scripts to convert UMLS to RDF are available on [https://github.com/ncbo/umls2rdf Github].&lt;br /&gt;
&lt;br /&gt;
Once you have converted UMLS to RDF, you will get Turtle (.ttl) files that can be uploaded using the BioPortal Web UI. Please select UMLS as the format for these ontologies.&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12685</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=12685"/>
		<updated>2014-06-27T18:46:07Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_term_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12680</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=12680"/>
		<updated>2014-05-10T00:04:23Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I delete an ontology? ==&lt;br /&gt;
Deleting can be done using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ONTOLOGY_ACRONYM&amp;quot;).first&lt;br /&gt;
ontology.delete&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12674</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=12674"/>
		<updated>2014-03-11T22:43:11Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How can I use the Appliance on Amazon EC2? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Importing_UMLS_To_Virtual_Appliance&amp;diff=12673</id>
		<title>Importing UMLS To Virtual Appliance</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Importing_UMLS_To_Virtual_Appliance&amp;diff=12673"/>
		<updated>2014-03-05T19:05:22Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Created page with &amp;quot;Category:NCBO Virtual Appliance  &amp;lt;p&amp;gt;The NCBO Virtual Appliance supports [http://www.geneontology.org/GO.format.obo-1_2.shtml OBO] and [http://www.w3.org/TR/owl-features/ O...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The NCBO Virtual Appliance supports [http://www.geneontology.org/GO.format.obo-1_2.shtml OBO] and [http://www.w3.org/TR/owl-features/ OWL] ontology formats but not UMLS in its native form. To bridge this gap, we have developed a project called [https://github.com/ncbo/umls2rdf/ UMLS2RDF] that transforms UMLS ontologies into OWL/RDF.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;UMLS2RDF is a Python script that connects to a UMLS MySQL installation and extracts the UMLS ontologies in a format that the Appliance can work with.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Install UMLS MySQL&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To import UMLS ontologies, a local installation of the [http://www.nlm.nih.gov/research/umls/implementation_resources/scripts/index.html UMLS MySQL release] needs to be available.  Please refer to the [http://www.nlm.nih.gov/research/umls/new_users/index.html UMLS documentation] for instructions on how to install the UMLS MySQL distribution.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Install UMLS2RDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;First clone the github project:&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;git clone https://github.com/ncbo/umls2rdf/&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Install the MySQL Python driver. We recommend to use &amp;lt;code&amp;gt;pip&amp;lt;/code&amp;gt; for this:&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;pip install MySQL-python&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Configure UMLS2RDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;UMLS2RDF has two configuration files:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;conf.py&amp;lt;/strong&amp;gt; where the database configuration (host,name,user and password) needs to be specified. Also the output folder.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;umls.conf&amp;lt;/strong&amp;gt; where one can specified the UMLS ontologies to be extracted. This is a comma separated file with the following 4 fields:&lt;br /&gt;
&amp;lt;ol type=&amp;quot;a&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;SAB&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;This is legacy. Any value works.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Output file name.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Conversion strategy. Accepted values (load_on_codes, load_on_cuis).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;With &amp;lt;em&amp;gt;load_on_codes&amp;lt;/em&amp;gt; the original source of the ontology will be used as strategy. The Class IDs will be constructed with the MRCONSO.CODE field. If &amp;lt;em&amp;gt;load_on_cuis&amp;lt;/em&amp;gt; is selected then the strategy to transform the ontology will use CUIs to construct the Class IDs.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;In our [https://github.com/ncbo/umls2rdf/blob/master/umls.conf configuration file], you can see the settings used by our production system. These are all the UMLS ontologies that are publicly available in BioPortal.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Run UMLS2RDF&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Once the configuration files have the settings run the command:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;python umls2rdf.py&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Depending on how many ontologies are extracted the run time can range from a few minutes to four hours. This process is memory intensive and to transform the largest UMLS ontologies (i.e: SNOMED) one needs at least 16G RAM available.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Upload files to the NCBO Virtual Appliance&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The output files will be located in the folder specified in &amp;lt;strong&amp;gt;conf.py&amp;lt;/strong&amp;gt;. Use the BioPortal Web form available in your appliance to submit the extracted ontologies. &amp;lt;strong&amp;gt;IMPORTANT:&amp;lt;/strong&amp;gt; The ontology format in the submission form should be UMLS.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Hardware Considerations&amp;lt;/h3&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;NCBO dedicates a fair amount of resources (powerful servers) to handle a good portion of UMLS ontologies. Some of the UMLS ontologies contain millions of classes. To import the largest UMLS ontologies (i.e: RXNORM or SNOMEDCT) Users will have to run the Appliance in a powerful dedicated environment with 8GB RAM and 5GB hard disk space available.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12672</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12672"/>
		<updated>2014-03-05T01:53:55Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* NCBO Ontology Tree Widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''startingRoot''': Start with this class as the only root displayed in the tree. This allows you to display a sub-tree or branch of your choosing.&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12670</id>
		<title>Category:NCBO Virtual Appliance</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12670"/>
		<updated>2014-02-06T19:02:53Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Basic System Administration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NCBO VIRTUAL APPLIANCE v2.0 IS NOW AVAILABLE ==&lt;br /&gt;
The NCBO Virtual Appliance has been updated to use NCBO's new v4.0 software infrastructure, including the use of an RDF triplestore as the primary data storage mechanism. Please read below as much of the Appliance workflow has changed.&lt;br /&gt;
&lt;br /&gt;
For documentation of v1.0 Virtual Appliances, please see our [http://www.bioontology.org/wiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;amp;oldid=12610 archive].&lt;br /&gt;
&lt;br /&gt;
== Virtual Appliance Basics ==&lt;br /&gt;
&lt;br /&gt;
The NCBO Virtual Appliance image contains a pre-installed, pre-configured version of commonly-used open source NCBO software running on a Linux operating system. The image was created using VMWare and is available for download by contacting support@bioontology.org.&lt;br /&gt;
&lt;br /&gt;
The following software is included on the image as of v2:&lt;br /&gt;
* Ontologies API (REST service)&lt;br /&gt;
* Annotator&lt;br /&gt;
* Recommender&lt;br /&gt;
* BioPortal Web User Interface (including ontology visualization, widgets, and Annotator UI)&lt;br /&gt;
&lt;br /&gt;
Please see below for how-to documentation for managing the software and running data population for Annotator.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* To obtain the Virtual Appliance, contact [mailto:support@bioontology.org NCBO Support] and include your BioPortal account username. You can create a BioPortal account at: http://bit.ly/bioportal-account&lt;br /&gt;
* The download is provided as a tar archive containing several files. One of these is an Open Virtualization Format (OVF) file that may need to be [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#How_can_I_use_the_OVF_image_with_my_virtualization_software.3F_.28VMWare.2C_VirtualBox.2C_KVM.2C_Xen.2C_etc.29 converted to work in your virtualization environment].&lt;br /&gt;
* You can supply the hostname (machine name) for the virtual machine during the deployment process. Documentation will refer to this hostname as 'example'.&lt;br /&gt;
* '''Change default passwords'''&lt;br /&gt;
** Operating System&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: password is prompted on the first boot&lt;br /&gt;
** BioPortal Admin User&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: &amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add an ontology using the BioPortal Admin User here: http://{YourDomainName}/ontologies/new&lt;br /&gt;
** The ncbo_cron project is configured to automatically process new ontologies every 5 minutes (see [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#When_are_new_ontologies_parsed.3F documentation for enabling the scheduler]). This processing includes:&lt;br /&gt;
*** Parsing any new, unparsed ontologies&lt;br /&gt;
*** Calculating a set of metrics for these ontologies&lt;br /&gt;
*** Indexing these ontologies for use with search&lt;br /&gt;
*** Processing the ontology for use with the annotator&lt;br /&gt;
* REST services are available at the following location:&lt;br /&gt;
** http://example:8082&lt;br /&gt;
** http://example:8082/documentation&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
The following requirements are for the resources that you devote to your Appliance instance, not for the machine running your host environment. For example, if you are using a system with 4GB of RAM, then you will need to devote all of that RAM to your guest Appliance.&lt;br /&gt;
&lt;br /&gt;
'''Note: these requirements are for basic usage'''. System requirements will vary greatly depending on the size of the ontologies you work with, the number of ontologies in the system, and the number of concurrent requests that the system needs to respond to. It can also vary depending on how the ontologies are used. For example, the search index can be RAM-intensive but parsing ontologies can be CPU-intensive. You will need to experiment with your Appliance resource settings to find what works for your scenario.&lt;br /&gt;
&lt;br /&gt;
* Minimum&lt;br /&gt;
** 2 CPU (2 GHz)&lt;br /&gt;
** 4GB RAM&lt;br /&gt;
** Hard disk space: 20GB&lt;br /&gt;
&lt;br /&gt;
* Recommended for heavier usage&lt;br /&gt;
** 4 CPU (3 GHz) &lt;br /&gt;
** 8GB RAM &lt;br /&gt;
** Hard disk space: 20GB (or more depending on number/size of ontologies)&lt;br /&gt;
&lt;br /&gt;
== Image Format and Operating System Details ==&lt;br /&gt;
The NCBO Appliance image was created using the [http://www.vmware.com/appliances/getting-started/learn/ovf.html Open Virtualization Format], which should allow the machine to be used in a variety of environments.&lt;br /&gt;
&lt;br /&gt;
The operating system is CentOS 6.5 64-bit running:&lt;br /&gt;
*Tomcat 6.0.26 &lt;br /&gt;
*Solr 4.5.1 &lt;br /&gt;
*Java 6&lt;br /&gt;
*MySQL 5.1.x&lt;br /&gt;
*Rails 2.3.x&lt;br /&gt;
*Ruby 2.0.0p247&lt;br /&gt;
*memcached &lt;br /&gt;
*redis 2.6.14&lt;br /&gt;
*4store&lt;br /&gt;
*Passenger/Apache&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The following applications use these services/runtime environments:&lt;br /&gt;
* Sinatra, Ruby, 4store, redis&lt;br /&gt;
** Ontologies API&lt;br /&gt;
** Annotator&lt;br /&gt;
** Recommender&lt;br /&gt;
* Rails, Ruby, memcached, mysql&lt;br /&gt;
** BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* Tomcat, Solr&lt;br /&gt;
** Search index&lt;br /&gt;
&lt;br /&gt;
== Basic System Administration ==&lt;br /&gt;
* Most of our administration scripts and build environment assume that you will be running as the root user.&lt;br /&gt;
* Helper commands:&lt;br /&gt;
** &amp;lt;code&amp;gt;bpstart&amp;lt;/code&amp;gt;: the required services are started on boot automatically, but if they need to be started automatically&lt;br /&gt;
** &amp;lt;code&amp;gt;bpstop&amp;lt;/code&amp;gt;: manually stop services&lt;br /&gt;
** &amp;lt;code&amp;gt;bprestart&amp;lt;/code&amp;gt;: manually start/stop services&lt;br /&gt;
* Start individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4s-httpd-ontologies_api start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service unicorn start&amp;lt;/code&amp;gt;&lt;br /&gt;
* Stop individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4s-httpd-ontologies_api stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service unicorn stop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
All NCBO software is released with the 2-clause BSD license. Source code is included on the Virtual Appliance.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12659</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=12659"/>
		<updated>2014-01-29T21:41:00Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Ontology Parsing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, submission)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-f7e8c7b2''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2013.03&lt;br /&gt;
* https://aws.amazon.com/amis/ncbo-bioportal-appliance-v1-1&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12658</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=12658"/>
		<updated>2014-01-29T21:39:07Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Ontology Parsing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, sub)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
# make available in annotator&lt;br /&gt;
annotator = Annotator::Models::NcboAnnotator.new&lt;br /&gt;
annotator.create_cache_for_submission(logger, sub)&lt;br /&gt;
annotator.generate_dictionary_file()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-f7e8c7b2''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2013.03&lt;br /&gt;
* https://aws.amazon.com/amis/ncbo-bioportal-appliance-v1-1&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12657</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=12657"/>
		<updated>2014-01-28T18:29:08Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How do I manually parse an ontology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How can I process a UMLS ontology? ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal UI currently lacks the ability to select UMLS as a format. To get around this, add the ontology as OWL, then do the following from the command line after logging into the Appliance:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.bring_remaining&lt;br /&gt;
umls = LinkedData::Models::OntologyFormat.find(&amp;quot;UMLS&amp;quot;).first&lt;br /&gt;
submission.hasOntologyLanguage = umls&lt;br /&gt;
submission.save&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-f7e8c7b2''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2013.03&lt;br /&gt;
* https://aws.amazon.com/amis/ncbo-bioportal-appliance-v1-1&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console, go to EC2 and select US West (Oregon) region from the top right corner: https://console.aws.amazon.com/ec2/home?region=us-west-2&lt;br /&gt;
&lt;br /&gt;
* Click on Launch Instances which will bring up Launch Instance Wizard with multiple tabs.&lt;br /&gt;
&lt;br /&gt;
* 1. Choose AMI:&lt;br /&gt;
** Select Community AMIs and search of “NCBO Appliance” and choose the latest version&lt;br /&gt;
* 2. Choose Instance Type Tab&lt;br /&gt;
** Instance Type = General Purpose  m1.xlarge (or any other type with at least 4 vCPUs and ~8 GB of RAM)&lt;br /&gt;
* 3. Configure Instance Tab&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
* 5. Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
* 6. Configure Security Group&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8082 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
Click &amp;quot;Launch&amp;quot;&lt;br /&gt;
You will have to create or choose an existing Key Pairs or Create a Key Pair.&lt;br /&gt;
&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12656</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12656"/>
		<updated>2014-01-17T18:19:55Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Methods */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12655</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12655"/>
		<updated>2014-01-17T18:17:50Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Location */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12654</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12654"/>
		<updated>2014-01-17T17:53:23Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* NCBO Ontology Tree Widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
===Location===&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
===Callbacks and Event Triggers===&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
=== Methods ===&lt;br /&gt;
There are a variety of methods you can call on the object returned when calling NCBOTree(). They can be used to get information about the state of the tree or to programmatically interact with it.&lt;br /&gt;
&lt;br /&gt;
* '''tree.selectClass(classId)''': Activates the class in the tree with the matching URI (classId). This will only work if the class is already visible.&lt;br /&gt;
* '''tree.selectedClass()''': Returns an object that represents the currently-selected class. The object includes attributes for `id`, `prefLabel`, and `URL`. URL is the REST location of the class, and performing and HTTP GET on that URL will provide a JSON representation of the class.&lt;br /&gt;
* '''tree.jumpToClass(classId)''': Replaces the current tree with a version that is expanded with a path from the root to the given class. This method is triggered when selecting a class from the search field. The provided class will be selected in the tree when the tree returns.&lt;br /&gt;
* '''tree.changeOntology(ontologyAcronym)''': Replaces the current tree with the roots from the given ontology.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12653</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12653"/>
		<updated>2014-01-15T00:52:01Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Term-selection field on a form */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_acronym_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-NCIT-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology acronym is NCIT) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-NCIT,BIRNLEX-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{class_id}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {class_id} with the class id for the term to use as the &lt;br /&gt;
				branch root). For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-NCIT-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-AERO-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
'''Callbacks and Event Triggers'''&amp;lt;br&amp;gt;&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12652</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12652"/>
		<updated>2014-01-15T00:49:23Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Ontology search widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_search_branch = &amp;quot;{class_id}&amp;quot;;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;pre&amp;gt;var BP_include_definitions = true;&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
'''Callbacks and Event Triggers'''&amp;lt;br&amp;gt;&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12651</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12651"/>
		<updated>2014-01-15T00:48:49Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Ontology search widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;FB-DV&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;NCIT,BIRNLEX&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;NCIT&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_search_branch = &amp;quot;{conceptid}&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_include_definitions = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
'''Callbacks and Event Triggers'''&amp;lt;br&amp;gt;&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12650</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12650"/>
		<updated>2014-01-15T00:47:15Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Referencing your ontology of interest in the widgets */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1016&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;1032,1089&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1032&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_search_branch = &amp;quot;{conceptid}&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_include_definitions = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
'''Callbacks and Event Triggers'''&amp;lt;br&amp;gt;&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12649</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12649"/>
		<updated>2014-01-15T00:42:14Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* NCBO Ontology Tree Widget */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1016&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;1032,1089&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1032&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_search_branch = &amp;quot;{conceptid}&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_include_definitions = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
Add the following files to use the widget:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/jquery.ncbo.tree.js&lt;br /&gt;
Or the minified versions:&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.css&lt;br /&gt;
* http://bioportal.bioontology.org/widgets/minified/jquery.ncbo.tree.min.js&lt;br /&gt;
&lt;br /&gt;
'''Setup'''&lt;br /&gt;
* You will need to use jQuery to utilize the Tree Widget. If you aren't using jQuery already, you can add it as follows: &amp;lt;pre&amp;gt;&amp;lt;script src=&amp;quot;//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a div element to store the tree: &amp;lt;pre&amp;gt;&amp;lt;div id=&amp;quot;tree&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Initialize the tree:&amp;lt;pre&amp;gt;var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&amp;amp;#10;  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&amp;amp;#10;  ontology: &amp;quot;NCIT&amp;quot;&amp;amp;#10;});&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The div you created should now contain a tree showing the roots of the NCIT ontology&lt;br /&gt;
* Additional setup options:&lt;br /&gt;
** '''autoclose''': Close other branches of the tree when expanding a new one&lt;br /&gt;
** '''treeClass''': Class to identify the tree with&lt;br /&gt;
** '''autocompleteClass''': Class to identify the autocomplete (search) input with&lt;br /&gt;
** '''width''': Set the width of the tree and autocomplete input&lt;br /&gt;
** '''startingClass''': Start with this class selected (and expanded to) in the tree&lt;br /&gt;
** '''ncboAPIURL''': Use a different NCBO REST instance (not normally used)&lt;br /&gt;
** '''ncboUIURL''': Use a different NCBO UI instance (not normally used)&lt;br /&gt;
&lt;br /&gt;
'''Callbacks and Event Triggers'''&amp;lt;br&amp;gt;&lt;br /&gt;
You can interact programmatically with the tree using JavaScript and jQuery. Callbacks can be passed when setting up the tree:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
var tree = $(&amp;quot;#tree&amp;quot;).NCBOTree({&lt;br /&gt;
  apikey: &amp;quot;YOUR_API_KEY&amp;quot;,&lt;br /&gt;
  ontology: &amp;quot;NCIT&amp;quot;,&lt;br /&gt;
  afterSelect: function(event, classId, prefLabel, selectedNode){&lt;br /&gt;
    console.log(classId);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The following are the available callbacks with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': classId&lt;br /&gt;
&lt;br /&gt;
You can also listen to these as jQuery events:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tree.on(&amp;quot;afterSelect&amp;quot;, function(event, classId, prefLabel, selectedNode) {&lt;br /&gt;
  console.log(classId);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here are the events with their arguments:&lt;br /&gt;
* '''beforeExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpand''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterExpandError''', ''arg'': event, expandedNode&lt;br /&gt;
* '''afterSelect''', ''arg'': event, classId, prefLabel, selectedNode&lt;br /&gt;
* '''afterJumpToClass''', ''arg'': event, classId&lt;br /&gt;
&lt;br /&gt;
= Referencing your ontology of interest in the widgets = &lt;br /&gt;
&lt;br /&gt;
Most of the time you would want your widget to use the latest version of your ontology of interest that is available in BioPortal. Thus, you would want to use the ontology id and not the version is in your widget. To find the ontology id, go to the &amp;quot;Ontology Details&amp;quot; page for your ontology of interest in BioPortal (e.g., the page for [http://bioportal.bioontology.org/ontologies/39478 NCI Thesaurus]). You will find the ontology id on the Metadata tab there (e.g., the ontology id for NCI Thesaurus is 1032).&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12648</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12648"/>
		<updated>2014-01-15T00:11:24Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#NCBO Ontology Tree Widget|NCBO Ontology Tree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1016&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;1032,1089&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1032&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_search_branch = &amp;quot;{conceptid}&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_include_definitions = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
http://keg.cs.uvic.ca/ncbo/ontologytree/OntologyTree.swf&lt;br /&gt;
&lt;br /&gt;
'''Parameters'''&lt;br /&gt;
* '''ontology''' = The id of the ontology to use, by default it assumes this value is the ontology version id&lt;br /&gt;
* '''virtual''' [true|false] - If true then the above ontology parameter is assumed to be a virtual ontology id&lt;br /&gt;
* '''canchangeontology''' [true|false] = If false then users can't change the current ontology&lt;br /&gt;
* '''canchangeroot''' [true|false] = If true the the user can specify a root concept (using the context menu)&lt;br /&gt;
* '''rootconceptid''' = The id of the root concept to show in the tree, leave out to show the ontology roots&lt;br /&gt;
* '''server''' = The rest server to use. Defaults to &amp;quot;http://rest.bioontology.org/bioportal/&amp;quot;.&lt;br /&gt;
* '''redirecturl''' = The url to redirect to for terms and ontologies (in BioPortal). Defaults to &amp;quot;http://bioportal.bioontology.org/&amp;quot;.&lt;br /&gt;
* '''alerterrors''' [true|false] = If true then errors will be displayed in an annoying popup box.&lt;br /&gt;
* '''title''' = The title for the browser window&lt;br /&gt;
&lt;br /&gt;
'''Embed Example'''&amp;lt;br&amp;gt;&lt;br /&gt;
Using Javascript (preferred):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/AC_OETags.js&amp;quot; language=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Globals&lt;br /&gt;
// Major version of Flash required&lt;br /&gt;
var requiredMajorVersion = 9;&lt;br /&gt;
// Minor version of Flash required&lt;br /&gt;
var requiredMinorVersion = 0;&lt;br /&gt;
// Minor version of Flash required&lt;br /&gt;
var requiredRevision = 124;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)&lt;br /&gt;
var hasProductInstall = DetectFlashVer(6, 0, 65);&lt;br /&gt;
&lt;br /&gt;
// Version check based upon the values defined in globals&lt;br /&gt;
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);&lt;br /&gt;
&lt;br /&gt;
if (hasProductInstall &amp;amp;&amp;amp; !hasRequestedVersion) {&lt;br /&gt;
    // DO NOT MODIFY THE FOLLOWING FOUR LINES&lt;br /&gt;
    // Location visited after installation is complete if installation is required&lt;br /&gt;
    var MMPlayerType = (isIE == true) ? &amp;quot;ActiveX&amp;quot;: &amp;quot;PlugIn&amp;quot;;&lt;br /&gt;
    var MMredirectURL = window.location;&lt;br /&gt;
    document.title = document.title.slice(0, 47) + &amp;quot; - Flash Player Installation&amp;quot;;&lt;br /&gt;
    var MMdoctitle = document.title;&lt;br /&gt;
&lt;br /&gt;
    AC_FL_RunContent(&lt;br /&gt;
    &amp;quot;src&amp;quot;, &amp;quot;playerProductInstall&amp;quot;,&lt;br /&gt;
    &amp;quot;FlashVars&amp;quot;, &amp;quot;MMredirectURL=&amp;quot; + MMredirectURL + '&amp;amp;MMplayerType=' + MMPlayerType + '&amp;amp;MMdoctitle=' + MMdoctitle + &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;width&amp;quot;, &amp;quot;300&amp;quot;,&lt;br /&gt;
    &amp;quot;height&amp;quot;, &amp;quot;100%&amp;quot;,&lt;br /&gt;
    &amp;quot;align&amp;quot;, &amp;quot;middle&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;, &amp;quot;high&amp;quot;,&lt;br /&gt;
    &amp;quot;bgcolor&amp;quot;, &amp;quot;#ffffff&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;allowScriptAccess&amp;quot;, &amp;quot;always&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;, &amp;quot;application/x-shockwave-flash&amp;quot;,&lt;br /&gt;
    &amp;quot;pluginspage&amp;quot;, &amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
} else if (hasRequestedVersion) {&lt;br /&gt;
    // if we've detected an acceptable version&lt;br /&gt;
    // embed the Flash Content SWF when all tests are passed&lt;br /&gt;
    AC_FL_RunContent(&lt;br /&gt;
    &amp;quot;src&amp;quot;, &amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/OntologyTree.swf&amp;quot;,&lt;br /&gt;
    &amp;quot;width&amp;quot;, &amp;quot;300&amp;quot;,&lt;br /&gt;
    &amp;quot;height&amp;quot;, &amp;quot;100%&amp;quot;,&lt;br /&gt;
    &amp;quot;align&amp;quot;, &amp;quot;middle&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;, &amp;quot;high&amp;quot;,&lt;br /&gt;
    &amp;quot;bgcolor&amp;quot;, &amp;quot;#ffffff&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;allowScriptAccess&amp;quot;, &amp;quot;always&amp;quot;,&lt;br /&gt;
    &amp;quot;flashVars&amp;quot;, &amp;quot;ontology=&amp;amp;virtual=false&amp;amp;alerterrors=false&amp;amp;canchangeontology=true&amp;amp;rootconceptid=&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;, &amp;quot;application/x-shockwave-flash&amp;quot;,&lt;br /&gt;
    &amp;quot;pluginspage&amp;quot;, &amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
} else {&lt;br /&gt;
    // flash is too old or we can't detect the plugin&lt;br /&gt;
    var alternateContent = 'Alternate HTML content should be placed here. '&lt;br /&gt;
    + 'This content requires the Adobe Flash Player. '&lt;br /&gt;
    + '&amp;lt;a href=http://www.adobe.com/go/getflash/&amp;gt;Get Flash&amp;lt;/a&amp;gt;';&lt;br /&gt;
    document.write(alternateContent);&lt;br /&gt;
    // insert non-flash content&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using HTML:&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://keg.cs.uvic.ca/ncbo/ontologytree/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;amp;alerterrors=false&amp;amp;canchangeontology=true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;embed src=&amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/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=&amp;amp;alerterrors=false&amp;amp;canchangeontology=true&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;
Using GWT:&lt;br /&gt;
* See http://code.google.com/p/gwt2swf/ for information on how to embed SWF in GWT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Javascript API Calls'''&amp;lt;br&amp;gt;&lt;br /&gt;
You will need to copy/paste this code to a Javascript file or embed directly in the HTML for usage in your page.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * The following JavaScript functions allow you to interact with the Flash BioPortal Ontology Tree.  &lt;br /&gt;
 * You can load an ontology by id, and get the current ontology id or name.&lt;br /&gt;
 * Once an ontology is loaded then you can get the currently selected concept by id or name,&lt;br /&gt;
 * and you can also select a concept by id or name.  &lt;br /&gt;
 * You can also listen for one of these events by implementing the following functions (see the stubs below):&lt;br /&gt;
 * appComplete, treeSelectionChanged, treeNodeDoubleClicked, or errorLoadingOntology&lt;br /&gt;
 *&lt;br /&gt;
 * These are the parameters that you can pass into the application using the &amp;quot;flashVars&amp;quot; parameter:&lt;br /&gt;
 * (see the examples below):&lt;br /&gt;
 * - ontology: the id of the ontology (version or virtual)&lt;br /&gt;
 * - virtual: if false (default) then the ontology id above is the version id&lt;br /&gt;
 * 			  if true then the above ontology id is assumed to be the virtual id &lt;br /&gt;
 * - alerterrors: (true/false) determines whether the application will display errors (default is false)&lt;br /&gt;
 * - server: defines the URL of the rest server (null by default)&lt;br /&gt;
 * - title: changes the default title for the page &lt;br /&gt;
 * - canchangeontology: if true then the ontology can be changed&lt;br /&gt;
 * - rootconceptid: sets the optional root node of the tree&lt;br /&gt;
 * - canchangeroot: if false then the root of the tree cannot be changed by the user (using context menu items)&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// get a handle for the flash application&lt;br /&gt;
function getApp() {&lt;br /&gt;
	if (navigator.appName.indexOf (&amp;quot;Microsoft&amp;quot;) != -1) {&lt;br /&gt;
		app = window[&amp;quot;OntologyTree&amp;quot;];&lt;br /&gt;
	} else {&lt;br /&gt;
		app = document[&amp;quot;OntologyTree&amp;quot;];&lt;br /&gt;
	}&lt;br /&gt;
	if (app == null) {&lt;br /&gt;
		app = document.getElementById(&amp;quot;OntologyTree&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if (app == null) {&lt;br /&gt;
		alert(&amp;quot;Could not get Flash object, JavaScript/Flex communication failed.&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	return app;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// these are the available functions that you can call ONCE the &lt;br /&gt;
// flash SWF has finished loading&lt;br /&gt;
&lt;br /&gt;
/** Loads a new ontology by id. */&lt;br /&gt;
function loadOntology(ontologyID) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadOntology) {&lt;br /&gt;
		app.loadOntology(ontologyID);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the id of the current ontology, will be null if no ontology is loaded. */&lt;br /&gt;
function getOntologyID() {&lt;br /&gt;
	var ontologyID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getOntologyID) {&lt;br /&gt;
		ontologyID = app.getOntologyID();&lt;br /&gt;
	}&lt;br /&gt;
	return ontologyID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the name of the current ontology, will be null if no ontology is loaded. */&lt;br /&gt;
function getOntologyName() {&lt;br /&gt;
	var ontologyName = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getOntologyName) {&lt;br /&gt;
		ontologyName = app.getOntologyName();&lt;br /&gt;
	}&lt;br /&gt;
	return ontologyName;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the id of the currently selected concept, will be null if nothing is selected. */&lt;br /&gt;
function getSelectedConceptID() {&lt;br /&gt;
	var conceptID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptID) {&lt;br /&gt;
		conceptID = app.getSelectedConceptID();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
 * Gets the full id (not all ontologies support this) of the currently selected concept. &lt;br /&gt;
 * Will be null if nothing is selected, will be the same as the conceptID if no fullID exists. &lt;br /&gt;
 */&lt;br /&gt;
function getSelectedConceptFullID() {&lt;br /&gt;
	var conceptID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptFullID) {&lt;br /&gt;
		conceptID = app.getSelectedConceptFullID();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the name of the currently selected concept, will be null if nothing is selected. */&lt;br /&gt;
function getSelectedConceptName() {&lt;br /&gt;
	var conceptName = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptName) {&lt;br /&gt;
		conceptName = app.getSelectedConceptName();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptName;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Loads and selects a concept (by id) in the current ontology. */&lt;br /&gt;
function loadConceptByID(conceptID) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadConceptByID) {&lt;br /&gt;
		app.loadConceptByID(conceptID);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Attempts to load and select a concept (by name) in the current ontology. */&lt;br /&gt;
function loadConceptByName(conceptName) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadConceptByName) {&lt;br /&gt;
		app.loadConceptByName(conceptName);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** This function gets call by flash when the swf has finished loading. */&lt;br /&gt;
function appComplete(swfID) {&lt;br /&gt;
//	alert(&amp;quot;flash app finished loading: &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for tree selection changes */&lt;br /&gt;
function treeSelectionChanged(nodeID, nodeName, swfID) {&lt;br /&gt;
//	alert(&amp;quot;tree selection: &amp;quot; + nodeID + &amp;quot; - &amp;quot; + nodeName + &amp;quot; - &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for tree double click events */&lt;br /&gt;
function treeNodeDoubleClicked(nodeID, nodeName, swfID) {&lt;br /&gt;
	alert(&amp;quot;tree node double clicked: &amp;quot; + nodeID + &amp;quot; - &amp;quot; + nodeName + &amp;quot; - &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for error messages when loading an ontology */&lt;br /&gt;
function errorLoadingOntology(errorMsg, swfID) {&lt;br /&gt;
//	alert(&amp;quot;Error: &amp;quot; + errorMsg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencing your ontology of interest in the widgets = &lt;br /&gt;
&lt;br /&gt;
Most of the time you would want your widget to use the latest version of your ontology of interest that is available in BioPortal. Thus, you would want to use the ontology id and not the version is in your widget. To find the ontology id, go to the &amp;quot;Ontology Details&amp;quot; page for your ontology of interest in BioPortal (e.g., the page for [http://bioportal.bioontology.org/ontologies/39478 NCI Thesaurus]). You will find the ontology id on the Metadata tab there (e.g., the ontology id for NCI Thesaurus is 1032).&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12647</id>
		<title>NCBO Widgets</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=NCBO_Widgets&amp;diff=12647"/>
		<updated>2014-01-15T00:10:12Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Modify visualization widget instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NCBO widgets are the HTML or Javascript code that you can put on your Web site or Web form to use BioPortal functionality there. Using NCBO Widgets is just one of [[Using_NCBO_Technology_In_Your_Project|the ways in which you can use the NCBO technology directly on your Web site or in your application]].&lt;br /&gt;
&lt;br /&gt;
= Types of NCBO Widgets and use cases = &lt;br /&gt;
* '''[[#Term-selection field on a form|Term-selection field on a form]]''':   You can add a text field to your Web form that will let users enter a term from a controlled vocabulary (e.g., terms from a single ontology)&lt;br /&gt;
** ''Example use case'': Suppose you are running a tissue microarray database and users upload sample descriptions to your database using a web form. There is usually a field for the user to enter the diagnosis for the tissue sample that she is entering. Usually, this field is a text-box or a drop down menu populated with a list of controlled terms. The free text-box is prone to errors, the drop-down gets too unwieldy with large terminologies. Using the NCBO term-selection widget to have users easily select a term from an ontology or controlled vocabulary (such as the NCI Thesaurus) to fill in the field. For example, when the user starts typing &amp;quot;cutaneous me&amp;quot;, the term &amp;quot;cutaneous melanoma&amp;quot; pops up.&lt;br /&gt;
** ''What does the term-selection field get you'': &lt;br /&gt;
*** Look-ahead so that you don't need to type the whole term&lt;br /&gt;
*** Controlled vocabulary provides consistency of the way different users use the term (If you want to put &amp;quot;Malignant melanoma&amp;quot;, it will always be the same term from NCIT, regardless of how a user started typing it&lt;br /&gt;
*** When a new version of your controlled vocabulary becomes available in BioPortal, the widget will automatically use that new version.&lt;br /&gt;
*'''[[#Ontology search widget|Ontology search widget]]''': You can add to your Web site a search box that searches a specific BioPortal ontology. When the user selects the term of interest (with the help of the look-ahead feature), he can jump to the BioPortal page for the corresponding concept in BioPortal.&lt;br /&gt;
*'''[[#Ontology visualization widget|Ontology visualization widget]]''': You can put a widget on your Web site that visualizes your entire ontology of interest, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
*'''[[#OntologyTree Widget|OntologyTree Widget]]''': You can put a widget on your Web site that displays the ontology tree, or some part of it, as on the [http://bioportal.bioontology.org/visualize/39478#t_tab1: &amp;quot;Visualize&amp;quot; tab in BioPortal].&lt;br /&gt;
&lt;br /&gt;
= How to use NCBO Widgets=&lt;br /&gt;
&lt;br /&gt;
The easiest way to add any NCBO widget to your HTML page or Web form is by following these steps:&lt;br /&gt;
* Find your ontology of interest in the [http://bioportal.bioontology.org/ontologies list of BioPortal ontologies] (e.g., NCI Thesaurus)&lt;br /&gt;
* Click on the ontology name to get to the page with '''Details''' for that ontology (e.g., the [http://bioportal.bioontology.org/ontologies/39478 Details for NCI Thesaurus])&lt;br /&gt;
* On the Ontology Details page, go to '''Ontology Widgets''' tab&lt;br /&gt;
* Select the widget you want&lt;br /&gt;
* Click the button below the widgets to get instructions for the specific widget&lt;br /&gt;
&lt;br /&gt;
== Term-selection field on a form ==&lt;br /&gt;
&lt;br /&gt;
To add a field to your form that lets the user fetch a term from your ontology of interest, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/form_complete.js &amp;lt;b&amp;gt;form_complete.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the header for the page where you want the form field, include the &amp;lt;b&amp;gt;form_complete.js&amp;lt;/b&amp;gt; file&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;On your form, for the fields where you want to use the term-selection widget, specify the field's class in the following format: &amp;lt;code&amp;gt;bp_form_complete-{ontology_id_list}-{value}&amp;lt;/code&amp;gt;&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, &amp;lt;code&amp;gt;bp_form_complete-1032-uri&amp;lt;/code&amp;gt; will use NCI Thesaurus (ontology id is 1032) and will put the term URI in the field after the user selects the term from the pull-down list.&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; In addition to single ontology ids, you can use a list:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-1032,1089-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;b&amp;gt;OR&amp;lt;/b&amp;gt; use 'all' to search across all BioPortal ontologies:&amp;lt;br&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;bp_form_complete-all-uri&amp;lt;/code&amp;gt;&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can use the following parameters to select which value will be placed into the user-visible input field:&lt;br /&gt;
        &amp;lt;ul&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;uri&amp;lt;/code&amp;gt; : put the complete URI of the term (e.g., &amp;quot;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;shortid&amp;lt;/code&amp;gt; : put the short id of the term, as used in BioPortal (e.g., &amp;quot;Common_Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
          &amp;lt;li&amp;gt;&lt;br /&gt;
            &amp;lt;code&amp;gt;name&amp;lt;/code&amp;gt; : put the preferred name of the term (e.g., &amp;quot;Common Neoplasm&amp;quot;);&lt;br /&gt;
          &amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Hidden form elements auto-generated ====&lt;br /&gt;
In addition to the input element you defined, there are four hidden form elements that are created and then set when a user selects a term from the list. For example, if you create a field with this code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;a&amp;quot; class=&amp;quot;bp_form_complete-all-uri&amp;quot; size=&amp;quot;100&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The 'name' attribute is used to create the four following fields (note how the 'a' from the name attribute is appended to the id attribute):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_preferred_name&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_concept_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_ontology_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;a_bioportal_full_id&amp;quot;&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Optional attributes ====&lt;br /&gt;
		&amp;lt;ul&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Include term definitions.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_include_definitions=&amp;quot;true&amp;quot;&amp;lt;/code&amp;gt;.&lt;br /&gt;
				This will display definitions with the list of terms that are returned.  For example, use this code to display search results for 'heart' terms, with&lt;br /&gt;
				definitions, in the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;m&amp;quot; data-bp_include_definitions=&amp;quot;true&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Limit lookup to terms below a root term.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_search_branch=&amp;quot;{conceptid}&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
				(replace {conceptid} with the term id for the term to use as the &lt;br /&gt;
				branch root).  For example, use this code to limit the search for 'heart' to terms &lt;br /&gt;
				within the 'Anatomic_Structure_System_or_Substance'&lt;br /&gt;
				branch of the NCI Thesaurus.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;n&amp;quot; data-bp_search_branch=&amp;quot;Anatomic_Structure_System_or_Substance&amp;quot; class=&amp;quot;bp_form_complete-1032-name&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;Object types&amp;lt;/strong&amp;gt;&lt;br /&gt;
			  &amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among both 'class' and&lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;o&amp;quot; data-bp_objecttypes=&amp;quot;class,property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search only 'property' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;property&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'function' among only &lt;br /&gt;
				'property' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;p&amp;quot; data-bp_objecttypes=&amp;quot;property&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Search 'class' and 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;class,individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to search for 'seizure' among 'class' and&lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;q&amp;quot; data-bp_objecttypes=&amp;quot;class,individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
			  &amp;lt;li&amp;gt;&lt;br /&gt;
				&amp;lt;strong&amp;gt;Only search 'individual' objects.&amp;lt;/strong&amp;gt;&lt;br /&gt;
				Use &amp;lt;code&amp;gt;data-bp_objecttypes=&amp;quot;individual&amp;quot;.&amp;lt;/code&amp;gt;&lt;br /&gt;
				For example, use this code to this search for 'seizure' only among &lt;br /&gt;
				'individual' objects from the &amp;quot;Adverse Event Reporting Ontology&amp;quot;.&lt;br /&gt;
				&amp;lt;br/&amp;gt;&lt;br /&gt;
				&amp;lt;code&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;r&amp;quot; data-bp_objecttypes=&amp;quot;individual&amp;quot; class=&amp;quot;bp_form_complete-1580-uri&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
			  &amp;lt;/li&amp;gt;&lt;br /&gt;
		      &amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology search widget ==&lt;br /&gt;
&lt;br /&gt;
To add a search widget to your HTML page that searches a specific ontology, do the following:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Download the [http://bioportal.bioontology.org/javascripts/widgets/quick_jump.js &amp;lt;b&amp;gt;quick_jump.js file&amp;lt;/b&amp;gt;] and put it on your server&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;Copy the code below and paste it to your HTML page. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;div id=&amp;quot;bp_quick_jump&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1016&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
  &amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    &amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; If you would like to use Quick Jump across multiple ontologies:&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You can enter a comma-separated list of ontology ids:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;1032,1089&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;You cans set the variable to 'all' to search all ontologies in BioPortal:&amp;lt;br&amp;gt;&lt;br /&gt;
        var BP_ontology_id = &amp;quot;all&amp;quot;;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;In the code that you just pasted, make sure to change the path to the quick_jump.js file to point to the location where you put the file (relative to your HTML file)&lt;br /&gt;
    &amp;lt;ul&amp;gt;&lt;br /&gt;
      &amp;lt;li&amp;gt;For example, if you put the quick_jump.js file in the same directory as your HTML file, this is the code you would use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
    var BP_ontology_id = &amp;quot;1032&amp;quot;;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;quick_jump.js&amp;quot; type=&amp;quot;text/javascript&amp;quot; charset=&amp;quot;utf-8&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;/ul&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To limit the term lookup to a particular branch of an ontology, include the following Javascript in your page (replace conceptid with the id for the term which you would like to use as the root of your branch): &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_search_branch = &amp;quot;{conceptid}&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
  &amp;lt;li&amp;gt;&lt;br /&gt;
    To display definitions with the list of terms that are returned, include the following Javascript in your page: &lt;br /&gt;
    &amp;lt;code&amp;gt;var BP_include_definitions = true;&amp;lt;/code&amp;gt;&lt;br /&gt;
  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontology visualization widget ==&lt;br /&gt;
To add a widget visualizing your ontology to your HTML page, simple copy the code from the Ontology Widget page for your ontology of interest. Here is a sample:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://bioportal.bioontology.org/widgets/visualization?&lt;br /&gt;
  ontology=NCIT&lt;br /&gt;
  &amp;amp;class=http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C38999&lt;br /&gt;
  &amp;amp;apikey=YOUR_API_KEY&amp;quot;&lt;br /&gt;
  frameborder=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== NCBO Ontology Tree Widget ==&lt;br /&gt;
&lt;br /&gt;
'''Description'''&amp;lt;br&amp;gt;&lt;br /&gt;
The OntologyTree widget is an embeddable Flex application that allows a user to interact with a tree browser for ontologies. The widget can be configured to display a list of all the ontologies in BioPortal, allowing the user to select which one to view, or can be setup to view a particular ontology. Additionally, there are several Javascript helper functions for the widget, allowing it to be utilized as a fully functional component in other applications.&lt;br /&gt;
&lt;br /&gt;
'''Location'''&amp;lt;br&amp;gt;&lt;br /&gt;
http://keg.cs.uvic.ca/ncbo/ontologytree/OntologyTree.swf&lt;br /&gt;
&lt;br /&gt;
'''Parameters'''&lt;br /&gt;
* '''ontology''' = The id of the ontology to use, by default it assumes this value is the ontology version id&lt;br /&gt;
* '''virtual''' [true|false] - If true then the above ontology parameter is assumed to be a virtual ontology id&lt;br /&gt;
* '''canchangeontology''' [true|false] = If false then users can't change the current ontology&lt;br /&gt;
* '''canchangeroot''' [true|false] = If true the the user can specify a root concept (using the context menu)&lt;br /&gt;
* '''rootconceptid''' = The id of the root concept to show in the tree, leave out to show the ontology roots&lt;br /&gt;
* '''server''' = The rest server to use. Defaults to &amp;quot;http://rest.bioontology.org/bioportal/&amp;quot;.&lt;br /&gt;
* '''redirecturl''' = The url to redirect to for terms and ontologies (in BioPortal). Defaults to &amp;quot;http://bioportal.bioontology.org/&amp;quot;.&lt;br /&gt;
* '''alerterrors''' [true|false] = If true then errors will be displayed in an annoying popup box.&lt;br /&gt;
* '''title''' = The title for the browser window&lt;br /&gt;
&lt;br /&gt;
'''Embed Example'''&amp;lt;br&amp;gt;&lt;br /&gt;
Using Javascript (preferred):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/AC_OETags.js&amp;quot; language=&amp;quot;javascript&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// Globals&lt;br /&gt;
// Major version of Flash required&lt;br /&gt;
var requiredMajorVersion = 9;&lt;br /&gt;
// Minor version of Flash required&lt;br /&gt;
var requiredMinorVersion = 0;&lt;br /&gt;
// Minor version of Flash required&lt;br /&gt;
var requiredRevision = 124;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)&lt;br /&gt;
var hasProductInstall = DetectFlashVer(6, 0, 65);&lt;br /&gt;
&lt;br /&gt;
// Version check based upon the values defined in globals&lt;br /&gt;
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);&lt;br /&gt;
&lt;br /&gt;
if (hasProductInstall &amp;amp;&amp;amp; !hasRequestedVersion) {&lt;br /&gt;
    // DO NOT MODIFY THE FOLLOWING FOUR LINES&lt;br /&gt;
    // Location visited after installation is complete if installation is required&lt;br /&gt;
    var MMPlayerType = (isIE == true) ? &amp;quot;ActiveX&amp;quot;: &amp;quot;PlugIn&amp;quot;;&lt;br /&gt;
    var MMredirectURL = window.location;&lt;br /&gt;
    document.title = document.title.slice(0, 47) + &amp;quot; - Flash Player Installation&amp;quot;;&lt;br /&gt;
    var MMdoctitle = document.title;&lt;br /&gt;
&lt;br /&gt;
    AC_FL_RunContent(&lt;br /&gt;
    &amp;quot;src&amp;quot;, &amp;quot;playerProductInstall&amp;quot;,&lt;br /&gt;
    &amp;quot;FlashVars&amp;quot;, &amp;quot;MMredirectURL=&amp;quot; + MMredirectURL + '&amp;amp;MMplayerType=' + MMPlayerType + '&amp;amp;MMdoctitle=' + MMdoctitle + &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;width&amp;quot;, &amp;quot;300&amp;quot;,&lt;br /&gt;
    &amp;quot;height&amp;quot;, &amp;quot;100%&amp;quot;,&lt;br /&gt;
    &amp;quot;align&amp;quot;, &amp;quot;middle&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;, &amp;quot;high&amp;quot;,&lt;br /&gt;
    &amp;quot;bgcolor&amp;quot;, &amp;quot;#ffffff&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;allowScriptAccess&amp;quot;, &amp;quot;always&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;, &amp;quot;application/x-shockwave-flash&amp;quot;,&lt;br /&gt;
    &amp;quot;pluginspage&amp;quot;, &amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
} else if (hasRequestedVersion) {&lt;br /&gt;
    // if we've detected an acceptable version&lt;br /&gt;
    // embed the Flash Content SWF when all tests are passed&lt;br /&gt;
    AC_FL_RunContent(&lt;br /&gt;
    &amp;quot;src&amp;quot;, &amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/OntologyTree.swf&amp;quot;,&lt;br /&gt;
    &amp;quot;width&amp;quot;, &amp;quot;300&amp;quot;,&lt;br /&gt;
    &amp;quot;height&amp;quot;, &amp;quot;100%&amp;quot;,&lt;br /&gt;
    &amp;quot;align&amp;quot;, &amp;quot;middle&amp;quot;,&lt;br /&gt;
    &amp;quot;id&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;quality&amp;quot;, &amp;quot;high&amp;quot;,&lt;br /&gt;
    &amp;quot;bgcolor&amp;quot;, &amp;quot;#ffffff&amp;quot;,&lt;br /&gt;
    &amp;quot;name&amp;quot;, &amp;quot;OntologyTree&amp;quot;,&lt;br /&gt;
    &amp;quot;allowScriptAccess&amp;quot;, &amp;quot;always&amp;quot;,&lt;br /&gt;
    &amp;quot;flashVars&amp;quot;, &amp;quot;ontology=&amp;amp;virtual=false&amp;amp;alerterrors=false&amp;amp;canchangeontology=true&amp;amp;rootconceptid=&amp;quot;,&lt;br /&gt;
    &amp;quot;type&amp;quot;, &amp;quot;application/x-shockwave-flash&amp;quot;,&lt;br /&gt;
    &amp;quot;pluginspage&amp;quot;, &amp;quot;http://www.adobe.com/go/getflashplayer&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
} else {&lt;br /&gt;
    // flash is too old or we can't detect the plugin&lt;br /&gt;
    var alternateContent = 'Alternate HTML content should be placed here. '&lt;br /&gt;
    + 'This content requires the Adobe Flash Player. '&lt;br /&gt;
    + '&amp;lt;a href=http://www.adobe.com/go/getflash/&amp;gt;Get Flash&amp;lt;/a&amp;gt;';&lt;br /&gt;
    document.write(alternateContent);&lt;br /&gt;
    // insert non-flash content&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using HTML:&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://keg.cs.uvic.ca/ncbo/ontologytree/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;amp;alerterrors=false&amp;amp;canchangeontology=true&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;embed src=&amp;quot;http://keg.cs.uvic.ca/ncbo/ontologytree/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=&amp;amp;alerterrors=false&amp;amp;canchangeontology=true&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;
Using GWT:&lt;br /&gt;
* See http://code.google.com/p/gwt2swf/ for information on how to embed SWF in GWT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Javascript API Calls'''&amp;lt;br&amp;gt;&lt;br /&gt;
You will need to copy/paste this code to a Javascript file or embed directly in the HTML for usage in your page.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * The following JavaScript functions allow you to interact with the Flash BioPortal Ontology Tree.  &lt;br /&gt;
 * You can load an ontology by id, and get the current ontology id or name.&lt;br /&gt;
 * Once an ontology is loaded then you can get the currently selected concept by id or name,&lt;br /&gt;
 * and you can also select a concept by id or name.  &lt;br /&gt;
 * You can also listen for one of these events by implementing the following functions (see the stubs below):&lt;br /&gt;
 * appComplete, treeSelectionChanged, treeNodeDoubleClicked, or errorLoadingOntology&lt;br /&gt;
 *&lt;br /&gt;
 * These are the parameters that you can pass into the application using the &amp;quot;flashVars&amp;quot; parameter:&lt;br /&gt;
 * (see the examples below):&lt;br /&gt;
 * - ontology: the id of the ontology (version or virtual)&lt;br /&gt;
 * - virtual: if false (default) then the ontology id above is the version id&lt;br /&gt;
 * 			  if true then the above ontology id is assumed to be the virtual id &lt;br /&gt;
 * - alerterrors: (true/false) determines whether the application will display errors (default is false)&lt;br /&gt;
 * - server: defines the URL of the rest server (null by default)&lt;br /&gt;
 * - title: changes the default title for the page &lt;br /&gt;
 * - canchangeontology: if true then the ontology can be changed&lt;br /&gt;
 * - rootconceptid: sets the optional root node of the tree&lt;br /&gt;
 * - canchangeroot: if false then the root of the tree cannot be changed by the user (using context menu items)&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// get a handle for the flash application&lt;br /&gt;
function getApp() {&lt;br /&gt;
	if (navigator.appName.indexOf (&amp;quot;Microsoft&amp;quot;) != -1) {&lt;br /&gt;
		app = window[&amp;quot;OntologyTree&amp;quot;];&lt;br /&gt;
	} else {&lt;br /&gt;
		app = document[&amp;quot;OntologyTree&amp;quot;];&lt;br /&gt;
	}&lt;br /&gt;
	if (app == null) {&lt;br /&gt;
		app = document.getElementById(&amp;quot;OntologyTree&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	if (app == null) {&lt;br /&gt;
		alert(&amp;quot;Could not get Flash object, JavaScript/Flex communication failed.&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	return app;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// these are the available functions that you can call ONCE the &lt;br /&gt;
// flash SWF has finished loading&lt;br /&gt;
&lt;br /&gt;
/** Loads a new ontology by id. */&lt;br /&gt;
function loadOntology(ontologyID) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadOntology) {&lt;br /&gt;
		app.loadOntology(ontologyID);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the id of the current ontology, will be null if no ontology is loaded. */&lt;br /&gt;
function getOntologyID() {&lt;br /&gt;
	var ontologyID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getOntologyID) {&lt;br /&gt;
		ontologyID = app.getOntologyID();&lt;br /&gt;
	}&lt;br /&gt;
	return ontologyID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the name of the current ontology, will be null if no ontology is loaded. */&lt;br /&gt;
function getOntologyName() {&lt;br /&gt;
	var ontologyName = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getOntologyName) {&lt;br /&gt;
		ontologyName = app.getOntologyName();&lt;br /&gt;
	}&lt;br /&gt;
	return ontologyName;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the id of the currently selected concept, will be null if nothing is selected. */&lt;br /&gt;
function getSelectedConceptID() {&lt;br /&gt;
	var conceptID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptID) {&lt;br /&gt;
		conceptID = app.getSelectedConceptID();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** &lt;br /&gt;
 * Gets the full id (not all ontologies support this) of the currently selected concept. &lt;br /&gt;
 * Will be null if nothing is selected, will be the same as the conceptID if no fullID exists. &lt;br /&gt;
 */&lt;br /&gt;
function getSelectedConceptFullID() {&lt;br /&gt;
	var conceptID = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptFullID) {&lt;br /&gt;
		conceptID = app.getSelectedConceptFullID();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptID;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Gets the name of the currently selected concept, will be null if nothing is selected. */&lt;br /&gt;
function getSelectedConceptName() {&lt;br /&gt;
	var conceptName = null;&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.getSelectedConceptName) {&lt;br /&gt;
		conceptName = app.getSelectedConceptName();&lt;br /&gt;
	}&lt;br /&gt;
	return conceptName;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Loads and selects a concept (by id) in the current ontology. */&lt;br /&gt;
function loadConceptByID(conceptID) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadConceptByID) {&lt;br /&gt;
		app.loadConceptByID(conceptID);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Attempts to load and select a concept (by name) in the current ontology. */&lt;br /&gt;
function loadConceptByName(conceptName) {&lt;br /&gt;
	var app = getApp();&lt;br /&gt;
	if (app &amp;amp;&amp;amp; app.loadConceptByName) {&lt;br /&gt;
		app.loadConceptByName(conceptName);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** This function gets call by flash when the swf has finished loading. */&lt;br /&gt;
function appComplete(swfID) {&lt;br /&gt;
//	alert(&amp;quot;flash app finished loading: &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for tree selection changes */&lt;br /&gt;
function treeSelectionChanged(nodeID, nodeName, swfID) {&lt;br /&gt;
//	alert(&amp;quot;tree selection: &amp;quot; + nodeID + &amp;quot; - &amp;quot; + nodeName + &amp;quot; - &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for tree double click events */&lt;br /&gt;
function treeNodeDoubleClicked(nodeID, nodeName, swfID) {&lt;br /&gt;
	alert(&amp;quot;tree node double clicked: &amp;quot; + nodeID + &amp;quot; - &amp;quot; + nodeName + &amp;quot; - &amp;quot; + swfID);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/** Implement this function to listen for error messages when loading an ontology */&lt;br /&gt;
function errorLoadingOntology(errorMsg, swfID) {&lt;br /&gt;
//	alert(&amp;quot;Error: &amp;quot; + errorMsg);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Referencing your ontology of interest in the widgets = &lt;br /&gt;
&lt;br /&gt;
Most of the time you would want your widget to use the latest version of your ontology of interest that is available in BioPortal. Thus, you would want to use the ontology id and not the version is in your widget. To find the ontology id, go to the &amp;quot;Ontology Details&amp;quot; page for your ontology of interest in BioPortal (e.g., the page for [http://bioportal.bioontology.org/ontologies/39478 NCI Thesaurus]). You will find the ontology id on the Metadata tab there (e.g., the ontology id for NCI Thesaurus is 1032).&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12644</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=12644"/>
		<updated>2014-01-08T18:02:49Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* How do I manually parse an ontology? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
logger = Logger.new(STDOUT)&lt;br /&gt;
submission.process_submission(logger)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-f7e8c7b2''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2013.03&lt;br /&gt;
* https://aws.amazon.com/amis/ncbo-bioportal-appliance-v1-1&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console: https://console.aws.amazon.com/ec2/home?region=us-west-1&lt;br /&gt;
* Click on Instances → Launch Instance → Classic Wizard → Community AMIs → Choose an AMI:&lt;br /&gt;
** Search for “NCBO Appliance” and choose the latest version&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Details:&lt;br /&gt;
** Instance Type = m1.large (or any other type with at least 2 cores and ~8 GB of RAM)&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Advanced Instance Options:&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Key Pairs:&lt;br /&gt;
** Choose from your Existing Key Pairs or Create a Key Pair&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Configure Firewall:&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8080 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Review Instance Details:&lt;br /&gt;
** Make sure your settings are correct&lt;br /&gt;
** Click '''Launch'''&lt;br /&gt;
** Click '''Close'''&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12635</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=12635"/>
		<updated>2013-12-03T20:56:13Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Update documentation to Appliance v2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= NCBO VIRTUAL APPLIANCE v2.0 FAQ =&lt;br /&gt;
This FAQ now covers the NCBO Virtual Appliance v2.0. The FAQ for v1.0 is available in the [http://www.bioontology.org/wiki/index.php?title=Virtual_Appliance_FAQ&amp;amp;oldid=12621 archive]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ontology Management =&lt;br /&gt;
&lt;br /&gt;
== How do I add or change categories or groups? ==&lt;br /&gt;
There is currently no UI administrator interface (though this will likely be added in future versions). Categories and groups can be added using a console after logging into the Appliance as the root user.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
category = LinkedData::Models::Category.new&lt;br /&gt;
category.name = &amp;quot;My Category&amp;quot;&lt;br /&gt;
category.acronym = &amp;quot;MY_CAT&amp;quot;&lt;br /&gt;
category.save&lt;br /&gt;
group = LinkedData::Models::Group.new&lt;br /&gt;
group.name = &amp;quot;My Group&amp;quot;&lt;br /&gt;
group.acronym = &amp;quot;MY_GRP&amp;quot;&lt;br /&gt;
group.save&lt;br /&gt;
&amp;lt;/pre&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;
Programmatic migrations are currently unsupported. Ontologies can be manually downloaded and added using the Web UI.&lt;br /&gt;
&lt;br /&gt;
= Ontology Parsing =&lt;br /&gt;
== When are new ontologies parsed? ==&lt;br /&gt;
The ncbo_cron project uses a scheduler to run a process that collects new ontology submissions and parses them, adds them to the search index, calculates metrics, and processes them for use with the annotator. You can also parse ontologies manually.&lt;br /&gt;
&lt;br /&gt;
== How do I manually parse an ontology? ==&lt;br /&gt;
To manually parse an ontology, you will need to interact with the code using the console:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# from the bash shell:&lt;br /&gt;
cd /srv/ncbo/ncbo_cron&lt;br /&gt;
bin/ncbo_cron --console&lt;br /&gt;
# once in the ruby console:&lt;br /&gt;
ontology = LinkedData::Models::Ontology.find(&amp;quot;MY_ACRONYM&amp;quot;).first&lt;br /&gt;
submission = ontology.latest_submission(status: :any)&lt;br /&gt;
submission.process_submission&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How do I know if an ontology has parsed? ==&lt;br /&gt;
The BioPortal Web UI will cache information about ontologies for 60 seconds. After parsing is complete, just refresh the ontology summary page to see the status for the most recent submission listed under the &amp;quot;Submissions&amp;quot; table.&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/ontologies/{ontology_acronym}/latest_submission?include=all&lt;br /&gt;
* You can look for the submissionStatus attribute to get the status&lt;br /&gt;
&lt;br /&gt;
== Is there a log file for parsing? ==&lt;br /&gt;
Parsing progress is logged in the ontology submission repository folder:&lt;br /&gt;
/srv/ncbo/repository/{ontology acronym}/{submission id}&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;
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;
= Virtualization Environments =&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;br /&gt;
&lt;br /&gt;
== How can I use the Appliance on Amazon EC2? ==&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-f7e8c7b2''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2013.03&lt;br /&gt;
* https://aws.amazon.com/amis/ncbo-bioportal-appliance-v1-1&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console: https://console.aws.amazon.com/ec2/home?region=us-west-1&lt;br /&gt;
* Click on Instances → Launch Instance → Classic Wizard → Community AMIs → Choose an AMI:&lt;br /&gt;
** Search for “NCBO Appliance” and choose the latest version&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Details:&lt;br /&gt;
** Instance Type = m1.large (or any other type with at least 2 cores and ~8 GB of RAM)&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Advanced Instance Options:&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Key Pairs:&lt;br /&gt;
** Choose from your Existing Key Pairs or Create a Key Pair&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Configure Firewall:&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8080 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Review Instance Details:&lt;br /&gt;
** Make sure your settings are correct&lt;br /&gt;
** Click '''Launch'''&lt;br /&gt;
** Click '''Close'''&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12634</id>
		<title>Category:NCBO Virtual Appliance</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12634"/>
		<updated>2013-12-03T20:26:42Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Update documentation to Appliance v2.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== NCBO VIRTUAL APPLIANCE v2.0 IS NOW AVAILABLE ==&lt;br /&gt;
The NCBO Virtual Appliance has been updated to use NCBO's new v4.0 software infrastructure, including the use of an RDF triplestore as the primary data storage mechanism. Please read below as much of the Appliance workflow has changed.&lt;br /&gt;
&lt;br /&gt;
For documentation of v1.0 Virtual Appliances, please see our [http://www.bioontology.org/wiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;amp;oldid=12610 archive].&lt;br /&gt;
&lt;br /&gt;
== Virtual Appliance Basics ==&lt;br /&gt;
&lt;br /&gt;
The NCBO Virtual Appliance image contains a pre-installed, pre-configured version of commonly-used open source NCBO software running on a Linux operating system. The image was created using VMWare and is available for download by contacting support@bioontology.org.&lt;br /&gt;
&lt;br /&gt;
The following software is included on the image as of v2:&lt;br /&gt;
* Ontologies API (REST service)&lt;br /&gt;
* Annotator&lt;br /&gt;
* Recommender&lt;br /&gt;
* BioPortal Web User Interface (including ontology visualization, widgets, and Annotator UI)&lt;br /&gt;
&lt;br /&gt;
Please see below for how-to documentation for managing the software and running data population for Annotator.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* To obtain the Virtual Appliance, contact [mailto:support@bioontology.org NCBO Support] and include your BioPortal account username. You can create a BioPortal account at: http://bit.ly/bioportal-account&lt;br /&gt;
* The download is provided as a tar archive containing several files. One of these is an Open Virtualization Format (OVF) file that may need to be [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#How_can_I_use_the_OVF_image_with_my_virtualization_software.3F_.28VMWare.2C_VirtualBox.2C_KVM.2C_Xen.2C_etc.29 converted to work in your virtualization environment].&lt;br /&gt;
* You can supply the hostname (machine name) for the virtual machine during the deployment process. Documentation will refer to this hostname as 'example'.&lt;br /&gt;
* '''Change default passwords'''&lt;br /&gt;
** Operating System&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: password is prompted on the first boot&lt;br /&gt;
** BioPortal Admin User&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: &amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add an ontology using the BioPortal Admin User here: http://{YourDomainName}/ontologies/new&lt;br /&gt;
** The ncbo_cron project is configured to automatically process new ontologies every 5 minutes (see [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#When_are_new_ontologies_parsed.3F documentation for enabling the scheduler]). This processing includes:&lt;br /&gt;
*** Parsing any new, unparsed ontologies&lt;br /&gt;
*** Calculating a set of metrics for these ontologies&lt;br /&gt;
*** Indexing these ontologies for use with search&lt;br /&gt;
*** Processing the ontology for use with the annotator&lt;br /&gt;
* REST services are available at the following location:&lt;br /&gt;
** http://example:8080&lt;br /&gt;
** http://example:8080/documentation&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
The following requirements are for the resources that you devote to your Appliance instance, not for the machine running your host environment. For example, if you are using a system with 4GB of RAM, then you will need to devote all of that RAM to your guest Appliance.&lt;br /&gt;
&lt;br /&gt;
'''Note: these requirements are for basic usage'''. System requirements will vary greatly depending on the size of the ontologies you work with, the number of ontologies in the system, and the number of concurrent requests that the system needs to respond to. It can also vary depending on how the ontologies are used. For example, the search index can be RAM-intensive but parsing ontologies can be CPU-intensive. You will need to experiment with your Appliance resource settings to find what works for your scenario.&lt;br /&gt;
&lt;br /&gt;
* Minimum&lt;br /&gt;
** 1 CPU (2 GHz)&lt;br /&gt;
** 4GB RAM&lt;br /&gt;
** Hard disk space: 3GB&lt;br /&gt;
&lt;br /&gt;
* Recommended for heavier usage&lt;br /&gt;
** 2 CPU (3 GHz)&lt;br /&gt;
** 6GB RAM (When using more than 4GB RAM, you should configure Tomcat to use the additional memory)&lt;br /&gt;
** Hard disk space: 10GB (or more depending on number/size of ontologies)&lt;br /&gt;
&lt;br /&gt;
== Image Format and Operating System Details ==&lt;br /&gt;
The NCBO Appliance image was created using the [http://www.vmware.com/appliances/getting-started/learn/ovf.html Open Virtualization Format], which should allow the machine to be used in a variety of environments.&lt;br /&gt;
&lt;br /&gt;
The operating system is CentOS 5.7 64-bit running Tomcat 6.0.26, Java 6, MySQL 5.1.x, PHP 5.1.6, Rails 2.3.x, and Ruby Enterprise Edition 1.8.7, and memcached.&lt;br /&gt;
&lt;br /&gt;
The following applications use these services/runtime environments:&lt;br /&gt;
* Sinatra, Ruby, 4store, redis&lt;br /&gt;
** Ontologies API&lt;br /&gt;
** Annotator&lt;br /&gt;
** Recommender&lt;br /&gt;
* Rails, Ruby, memcached, mysql&lt;br /&gt;
** BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* Tomcat, Solr&lt;br /&gt;
** Search index&lt;br /&gt;
&lt;br /&gt;
== Basic System Administration ==&lt;br /&gt;
* Most of our administration scripts and build environment assume that you will be running as the root user.&lt;br /&gt;
* Helper commands:&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostart&amp;lt;/code&amp;gt;: the required services are started on boot automatically, but if they need to be started automatically&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostop&amp;lt;/code&amp;gt;: manually stop services&lt;br /&gt;
** &amp;lt;code&amp;gt;ncborestart&amp;lt;/code&amp;gt;: manually start/stop services&lt;br /&gt;
* Start individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4store start&amp;lt;/code&amp;gt;&lt;br /&gt;
* Stop individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4store stop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
All NCBO software is released with the 2-clause BSD license. Source code is included on the Virtual Appliance.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12631</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12631"/>
		<updated>2013-10-15T19:02:34Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FA6B6B; color: white; clear: both; padding: 2em; margin: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;WARNING&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;The REST endpoints documented here are &amp;lt;b&amp;gt;DEPRECATED&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;New NCBO BioPortal v4.0 REST services are documented here: http://data.bioontology.org/documentation&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Data in REST services located at rest.bioontology.org will not be updated and eventually these services will be disabled&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.  See also work on wrapping Bioportal REST services as a [[CTS2_BioPortal_wrapper]].&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
Ontology files that were successfully parsed have a value of 3 for the &amp;lt;statusId&amp;gt; attribute in the XML response.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}/{concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}?conceptid={uri-encoded concept id}&lt;br /&gt;
** To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Signature&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Virtual Signature (uses ontology id and uri-encoded concept id)&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=http%3A%2F%2Fpurl.bioontology.org%2Fontology%2FICD10%2FO80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FBiomedicalResourceOntology.owl%23Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/C3224?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3262?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3224?apikey=YourAPIKey &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12630</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12630"/>
		<updated>2013-10-15T19:01:59Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FA6B6B; color: white; clear: both; padding: 2em; margin: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;WARNING&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;The REST endpoints documented here are &amp;lt;b&amp;gt;DEPRECATED&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;New NCBO BioPortal v4.0 REST services are documented here: http://data.bioontology.org/documentation&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Data in REST services located at rest.bioontology.org is not being updated and eventually these services will be disabled&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.  See also work on wrapping Bioportal REST services as a [[CTS2_BioPortal_wrapper]].&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
Ontology files that were successfully parsed have a value of 3 for the &amp;lt;statusId&amp;gt; attribute in the XML response.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}/{concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}?conceptid={uri-encoded concept id}&lt;br /&gt;
** To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Signature&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Virtual Signature (uses ontology id and uri-encoded concept id)&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=http%3A%2F%2Fpurl.bioontology.org%2Fontology%2FICD10%2FO80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FBiomedicalResourceOntology.owl%23Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/C3224?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3262?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3224?apikey=YourAPIKey &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12629</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12629"/>
		<updated>2013-10-15T19:00:18Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FA6B6B; color: white; clear: both; padding: 2em; float: right;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;h1&amp;gt;WARNING&amp;lt;/h1&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;The REST endpoints documented here are &amp;lt;b&amp;gt;DEPRECATED&amp;lt;/b&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;New NCBO BioPortal v4.0 REST services are documented here: http://data.bioontology.org/documentation&amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;p&amp;gt;Data in REST services located at rest.bioontology.org is not being updated and eventually these services will be disabled&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.  See also work on wrapping Bioportal REST services as a [[CTS2_BioPortal_wrapper]].&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
Ontology files that were successfully parsed have a value of 3 for the &amp;lt;statusId&amp;gt; attribute in the XML response.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}/{concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology id}?conceptid={uri-encoded concept id}&lt;br /&gt;
** To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Signature&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
Examples using Alt Virtual Signature (uses ontology id and uri-encoded concept id)&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=http%3A%2F%2Fpurl.bioontology.org%2Fontology%2FICD10%2FO80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=http%3A%2F%2Fbioontology.org%2Fontologies%2FBiomedicalResourceOntology.owl%23Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/C3224?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3262?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/C3224?apikey=YourAPIKey &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12619</id>
		<title>Modifying BioPortal Web UI</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12619"/>
		<updated>2013-05-21T01:31:18Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI is primarily built using Ruby on Rails, which is an MVC framework built for the web. There are a variety of template types that are compatible with Rails, we use both ERB and HAML (and are trying to switch as we can to just HAML).&lt;br /&gt;
&lt;br /&gt;
== Getting the Code ==&lt;br /&gt;
&lt;br /&gt;
Code is available on GitHub: https://github.com/ncbo/bioportal_web_ui&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI uses international localizations to handle much of the text that is seen, which means that you can change the text on many parts of your BioPortal install without actually modifying the template code. And since it's all in one file and that file isn't under version control, upgrading between versions should be a snap. In addition, this will allow us to support locale-based translations. While we don't have any translation yet -- and we don't have plans to create any -- we would gladly take contributions from the community.&lt;br /&gt;
&lt;br /&gt;
There may be some areas of the site that haven't been split out into the translation file yet. If you have specific requests we can look at adding some more. This is another area where we would gladly take some community contribution.&lt;br /&gt;
&lt;br /&gt;
=== Adding and Changing Text ===&lt;br /&gt;
&lt;br /&gt;
The crux of the translation functionality can be found in a new folder: /config/locales&lt;br /&gt;
&lt;br /&gt;
In here you will find a file, en.rb.sample, that contains sample code that you can use as a base. It's Ruby code so you can have access to variables that are assigned in the bioportal_config.rb file. To get started, do the following:&lt;br /&gt;
&lt;br /&gt;
# Rename the en.rb.sample file to en.rb&lt;br /&gt;
# Modify the text in the file as you like&lt;br /&gt;
# In the Rails ERB templates, we do translation lookups like this:&lt;br /&gt;
# &amp;amp;lt;%= t('home.intro') %&amp;amp;gt;&lt;br /&gt;
# Each dot reflects a nested element in the Ruby hash&lt;br /&gt;
# To support things like the site and organization names, we've added some new options in the bioportal_config.rb file. If you're doing a new installation, use the provided bioportal_config.rb.sample file. Otherwise, see below.&lt;br /&gt;
# Once you start the BioPortal Rails app (using Mongrel, Passenger, or your favorite app server), the translation file will be read in and used in the template files.&lt;br /&gt;
# For more on Rails internationalization, see the [http://guides.rubyonrails.org/i18n.html i18n Guide]&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a new section to BioPortal ===&lt;br /&gt;
&lt;br /&gt;
We'll walk through a quick tutorial that will enable you to add your own sections of content on top of the existing Web UI. For our example, we'll add a section that will list tools that can be used to work with the ontologies in BioPortal. The Tools section will be a simple list that includes a tool's name, a web address, and a description. This list will be stored in a database and entries can be added, edited, and deleted.&lt;br /&gt;
&lt;br /&gt;
For more guides on working with Rails, see http://guides.rubyonrails.org/v2.3.10.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have version .4 or higher of the [http://www.bioontology.org/wiki/index.php/Category:NCBO_Virtual_Appliance NCBO Virtual Appliance] running in your virtualization environment.&lt;br /&gt;
&lt;br /&gt;
# Log into Virtual Appliance with the root user&lt;br /&gt;
# Run cd /srv/ncbo/rails/BioPortal/current&lt;br /&gt;
# Run script/generate scaffold Tool name:string website:string description:string&lt;br /&gt;
# For more information on scaffolding, see the [http://guides.rubyonrails.org/v2.3.10/getting_started.html#getting-up-and-running-quickly-with-scaffolding Ruby on Rails Guides]&lt;br /&gt;
# You will see some output that indicates that Rails is creating files for you. Rails scaffolding will create a default set of views templates, a controller, and a model. It will also create a migration for the corresponding database table. Our example will have three columns, 'name', 'website', and 'content', all of which have string values.&lt;br /&gt;
# To actually create the database table, you'll have to run the migration using rake db:migrate RAILS_ENV=production&lt;br /&gt;
# Now that we have setup our new content area, we can restart the server to get the changes to show up. To do that, run ncborestart&lt;br /&gt;
# Visiting http://yourappliance/tools will show an empty default page with options to create a new tool. However, it doesn't look like BioPortal and it's missing all of the links to other parts of the site. We'll need to change the layout that the section is using.&lt;br /&gt;
# If we open the newly-created 'tools_controller.rb' file under app/controllers we can change the layout used by adding layout &amp;quot;ontology&amp;quot; directly under the 'class ToolsController &amp;amp;lt; ApplicationController' line. If you refresh the page you can see it now shows the usual BioPortal layout. You can also read [http://guides.rubyonrails.org/v2.3.10/getting_started.html#customizing-the-layout more about Rails layouts].&lt;br /&gt;
# Note: You may need to run ncborestart again for these changes to take effect. To avoid this, you can run Passenger in the [http://modrails.com/documentation/Users guide Apache.html#rails_env development environment], which will reload all controllers and templates on each request.&lt;br /&gt;
# The Tools section is fully functional at this point, you can add and remove tools using the generated code. The final piece is adding a link at the top of the page for your new section.&lt;br /&gt;
# You can add the code for the new navigation button in the 'app/views/layouts/_topnav.html.erb' file after the main project logo (line 5) as follows:&lt;br /&gt;
#* &amp;lt;code&amp;gt;&amp;amp;lt;%=top_tab(&amp;quot;Tools&amp;quot;, &amp;quot;/tools&amp;quot;, &amp;quot;tools&amp;quot;)%&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* This code is calling the &amp;lt;code&amp;gt;top_tab&amp;lt;/code&amp;gt; method. The first argument is the name to use for the button. The second is the URL. The third is the corresponding controller (or controllers). The controller names are used to indicate when the link should appear 'active'.&lt;br /&gt;
# Refreshing the page should show your changes, including the link in the top navigation&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12618</id>
		<title>Modifying BioPortal Web UI</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12618"/>
		<updated>2013-05-21T01:31:02Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Modifying BioPortal Web UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI is primarily built using Ruby on Rails, which is an MVC framework built for the web. There are a variety of template types that are compatible with Rails, we use both ERB and HAML (and are trying to switch as we can to just HAML).&lt;br /&gt;
&lt;br /&gt;
== Getting the Code ==&lt;br /&gt;
&lt;br /&gt;
Code is available on GitHub: https://github.com/ncbo/bioportal_web_ui&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI uses international localizations to handle much of the text that is seen, which means that you can change the text on many parts of your BioPortal install without actually modifying the template code. And since it's all in one file and that file isn't under version control, upgrading between versions should be a snap. In addition, this will allow us to support locale-based translations. While we don't have any translation yet -- and we don't have plans to create any -- we would gladly take contributions from the community.&lt;br /&gt;
&lt;br /&gt;
There may be some areas of the site that haven't been split out into the translation file yet. If you have specific requests we can look at adding some more. This is another area where we would gladly take some community contribution.&lt;br /&gt;
&lt;br /&gt;
=== Adding and Changing Text ===&lt;br /&gt;
&lt;br /&gt;
The crux of the translation functionality can be found in a new folder: /config/locales&lt;br /&gt;
&lt;br /&gt;
In here you will find a file, en.rb.sample, that contains sample code that you can use as a base. It's Ruby code so you can have access to variables that are assigned in the bioportal_config.rb file. To get started, do the following:&lt;br /&gt;
&lt;br /&gt;
# Rename the en.rb.sample file to en.rb&lt;br /&gt;
# Modify the text in the file as you like&lt;br /&gt;
# In the Rails ERB templates, we do translation lookups like this:&lt;br /&gt;
# &amp;amp;lt;%= t('home.intro') %&amp;amp;gt;&lt;br /&gt;
# Each dot reflects a nested element in the Ruby hash&lt;br /&gt;
# To support things like the site and organization names, we've added some new options in the bioportal_config.rb file. If you're doing a new installation, use the provided bioportal_config.rb.sample file. Otherwise, see below.&lt;br /&gt;
# Once you start the BioPortal Rails app (using Mongrel, Passenger, or your favorite app server), the translation file will be read in and used in the template files.&lt;br /&gt;
# For more on Rails internationalization, see the [http://guides.rubyonrails.org/i18n.html i18n Guide]&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a new section to BioPortal ===&lt;br /&gt;
&lt;br /&gt;
We'll walk through a quick tutorial that will enable you to add your own sections of content on top of the existing Web UI. For our example, we'll add a section that will list tools that can be used to work with the ontologies in BioPortal. The Tools section will be a simple list that includes a tool's name, a web address, and a description. This list will be stored in a database and entries can be added, edited, and deleted.&lt;br /&gt;
&lt;br /&gt;
For more guides on working with Rails, see http://guides.rubyonrails.org/v2.3.10.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have version .4 or higher of the [http://www.bioontology.org/wiki/index.php/Category:NCBO_Virtual_Appliance NCBO Virtual Appliance] running in your virtualization environment.&lt;br /&gt;
&lt;br /&gt;
# Log into Virtual Appliance with the root user&lt;br /&gt;
# Run cd /srv/ncbo/rails/BioPortal/current&lt;br /&gt;
# Run script/generate scaffold Tool name:string website:string description:string&lt;br /&gt;
# For more information on scaffolding, see the [http://guides.rubyonrails.org/v2.3.10/getting_started.html#getting-up-and-running-quickly-with-scaffolding Ruby on Rails Guides]&lt;br /&gt;
# You will see some output that indicates that Rails is creating files for you. Rails scaffolding will create a default set of views templates, a controller, and a model. It will also create a migration for the corresponding database table. Our example will have three columns, 'name', 'website', and 'content', all of which have string values.&lt;br /&gt;
# To actually create the database table, you'll have to run the migration using rake db:migrate RAILS_ENV=production&lt;br /&gt;
# Now that we have setup our new content area, we can restart the server to get the changes to show up. To do that, run ncborestart&lt;br /&gt;
# Visiting http://yourappliance/tools will show an empty default page with options to create a new tool. However, it doesn't look like BioPortal and it's missing all of the links to other parts of the site. We'll need to change the layout that the section is using.&lt;br /&gt;
# If we open the newly-created 'tools_controller.rb' file under app/controllers we can change the layout used by adding layout &amp;quot;ontology&amp;quot; directly under the 'class ToolsController &amp;amp;lt; ApplicationController' line. If you refresh the page you can see it now shows the usual BioPortal layout. You can also read [http://guides.rubyonrails.org/v2.3.10/getting_started.html#customizing-the-layout more about Rails layouts].&lt;br /&gt;
# Note: You may need to run ncborestart again for these changes to take effect. To avoid this, you can run Passenger in the [http://modrails.com/documentation/Users guide Apache.html#rails_env development environment], which will reload all controllers and templates on each request.&lt;br /&gt;
# The Tools section is fully functional at this point, you can add and remove tools using the generated code. The final piece is adding a link at the top of the page for your new section.&lt;br /&gt;
# You can add the code for the new navigation button in the 'app/views/layouts/_topnav.html.erb' file after the main project logo (line 5) as follows:&lt;br /&gt;
#* &amp;lt;code&amp;gt;&amp;amp;lt;%=top_tab(&amp;quot;Tools&amp;quot;, &amp;quot;/tools&amp;quot;, &amp;quot;tools&amp;quot;)%&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* This code is calling the &amp;lt;code&amp;gt;top_tab&amp;lt;/code&amp;gt; method. The first argument is the name to use for the button. The second is the URL. The third is the corresponding controller (or controllers). The controller names are used to indicate when the link should appear 'active'.&lt;br /&gt;
# Refreshing the page should show your changes, including the link in the top navigation&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12617</id>
		<title>Modifying BioPortal Web UI</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Modifying_BioPortal_Web_UI&amp;diff=12617"/>
		<updated>2013-05-20T23:09:44Z</updated>

		<summary type="html">&lt;p&gt;Palexand: Created page with &amp;quot;Category:NCBO Virtual Appliance  = Modifying BioPortal Web UI =  The BioPortal Web UI is primarily built using Ruby on Rails, which is an MVC framework built for the web. ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&gt;
= Modifying BioPortal Web UI =&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI is primarily built using Ruby on Rails, which is an MVC framework built for the web. There are a variety of template types that are compatible with Rails, we use both ERB and HAML (and are trying to switch as we can to just HAML).&lt;br /&gt;
&lt;br /&gt;
== Getting the Code ==&lt;br /&gt;
&lt;br /&gt;
Code is available on GitHub: https://github.com/ncbo/bioportal_web_ui&lt;br /&gt;
&lt;br /&gt;
== Translations ==&lt;br /&gt;
&lt;br /&gt;
The BioPortal Web UI uses international localizations to handle much of the text that is seen, which means that you can change the text on many parts of your BioPortal install without actually modifying the template code. And since it's all in one file and that file isn't under version control, upgrading between versions should be a snap. In addition, this will allow us to support locale-based translations. While we don't have any translation yet -- and we don't have plans to create any -- we would gladly take contributions from the community.&lt;br /&gt;
&lt;br /&gt;
There may be some areas of the site that haven't been split out into the translation file yet. If you have specific requests we can look at adding some more. This is another area where we would gladly take some community contribution.&lt;br /&gt;
&lt;br /&gt;
=== Adding and Changing Text ===&lt;br /&gt;
&lt;br /&gt;
The crux of the translation functionality can be found in a new folder: /config/locales&lt;br /&gt;
&lt;br /&gt;
In here you will find a file, en.rb.sample, that contains sample code that you can use as a base. It's Ruby code so you can have access to variables that are assigned in the bioportal_config.rb file. To get started, do the following:&lt;br /&gt;
&lt;br /&gt;
# Rename the en.rb.sample file to en.rb&lt;br /&gt;
# Modify the text in the file as you like&lt;br /&gt;
# In the Rails ERB templates, we do translation lookups like this:&lt;br /&gt;
# &amp;amp;lt;%= t('home.intro') %&amp;amp;gt;&lt;br /&gt;
# Each dot reflects a nested element in the Ruby hash&lt;br /&gt;
# To support things like the site and organization names, we've added some new options in the bioportal_config.rb file. If you're doing a new installation, use the provided bioportal_config.rb.sample file. Otherwise, see below.&lt;br /&gt;
# Once you start the BioPortal Rails app (using Mongrel, Passenger, or your favorite app server), the translation file will be read in and used in the template files.&lt;br /&gt;
# For more on Rails internationalization, see the [http://guides.rubyonrails.org/i18n.html i18n Guide]&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== Adding a new section to BioPortal ===&lt;br /&gt;
&lt;br /&gt;
We'll walk through a quick tutorial that will enable you to add your own sections of content on top of the existing Web UI. For our example, we'll add a section that will list tools that can be used to work with the ontologies in BioPortal. The Tools section will be a simple list that includes a tool's name, a web address, and a description. This list will be stored in a database and entries can be added, edited, and deleted.&lt;br /&gt;
&lt;br /&gt;
For more guides on working with Rails, see http://guides.rubyonrails.org/v2.3.10.&lt;br /&gt;
&lt;br /&gt;
This tutorial assumes that you have version .4 or higher of the [http://www.bioontology.org/wiki/index.php/Category:NCBO_Virtual_Appliance NCBO Virtual Appliance] running in your virtualization environment.&lt;br /&gt;
&lt;br /&gt;
# Log into Virtual Appliance with the root user&lt;br /&gt;
# Run cd /srv/ncbo/rails/BioPortal/current&lt;br /&gt;
# Run script/generate scaffold Tool name:string website:string description:string&lt;br /&gt;
# For more information on scaffolding, see the [http://guides.rubyonrails.org/v2.3.10/getting_started.html#getting-up-and-running-quickly-with-scaffolding Ruby on Rails Guides]&lt;br /&gt;
# You will see some output that indicates that Rails is creating files for you. Rails scaffolding will create a default set of views templates, a controller, and a model. It will also create a migration for the corresponding database table. Our example will have three columns, 'name', 'website', and 'content', all of which have string values.&lt;br /&gt;
# To actually create the database table, you'll have to run the migration using rake db:migrate RAILS_ENV=production&lt;br /&gt;
# Now that we have setup our new content area, we can restart the server to get the changes to show up. To do that, run ncborestart&lt;br /&gt;
# Visiting http://yourappliance/tools will show an empty default page with options to create a new tool. However, it doesn't look like BioPortal and it's missing all of the links to other parts of the site. We'll need to change the layout that the section is using.&lt;br /&gt;
# If we open the newly-created 'tools_controller.rb' file under app/controllers we can change the layout used by adding layout &amp;quot;ontology&amp;quot; directly under the 'class ToolsController &amp;amp;lt; ApplicationController' line. If you refresh the page you can see it now shows the usual BioPortal layout. You can also read [http://guides.rubyonrails.org/v2.3.10/getting_started.html#customizing-the-layout more about Rails layouts].&lt;br /&gt;
# Note: You may need to run ncborestart again for these changes to take effect. To avoid this, you can run Passenger in the [http://modrails.com/documentation/Users guide Apache.html#rails_env development environment], which will reload all controllers and templates on each request.&lt;br /&gt;
# The Tools section is fully functional at this point, you can add and remove tools using the generated code. The final piece is adding a link at the top of the page for your new section.&lt;br /&gt;
# You can add the code for the new navigation button in the 'app/views/layouts/_topnav.html.erb' file after the main project logo (line 5) as follows:&lt;br /&gt;
#* &amp;lt;code&amp;gt;&amp;amp;lt;%=top_tab(&amp;quot;Tools&amp;quot;, &amp;quot;/tools&amp;quot;, &amp;quot;tools&amp;quot;)%&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
#* This code is calling the &amp;lt;code&amp;gt;top_tab&amp;lt;/code&amp;gt; method. The first argument is the name to use for the button. The second is the URL. The third is the corresponding controller (or controllers). The controller names are used to indicate when the link should appear 'active'.&lt;br /&gt;
# Refreshing the page should show your changes, including the link in the top navigation&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12616</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=12616"/>
		<updated>2013-05-20T22:25:50Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:NCBO Virtual Appliance]]&lt;br /&gt;
&lt;br /&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 the MySQL connector jar [http://smi-protege.stanford.edu/repos/protege/protege-core/trunk/dbdrivers/ here]. You will need to rename this file to 'driver.jar' and place it in the Protégé installation directory.&amp;lt;/li&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;
&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How can I use the Appliance on Amazon EC2? =&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-5187dd14''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2012.03&lt;br /&gt;
&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console: https://console.aws.amazon.com/ec2/home?region=us-west-1&lt;br /&gt;
* Click on Instances → Launch Instance → Classic Wizard → Community AMIs → Choose an AMI:&lt;br /&gt;
** Search for “NCBO Appliance” and choose the latest version&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Details:&lt;br /&gt;
** Instance Type = m1.large (or any other type with at least 2 cores and ~8 GB of RAM)&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Advanced Instance Options:&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Key Pairs:&lt;br /&gt;
** Choose from your Existing Key Pairs or Create a Key Pair&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Configure Firewall:&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8080 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Review Instance Details:&lt;br /&gt;
** Make sure your settings are correct&lt;br /&gt;
** Click '''Launch'''&lt;br /&gt;
** Click '''Close'''&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Annotator_Dataset_Workflow_Howto&amp;diff=12598</id>
		<title>Annotator Dataset Workflow Howto</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Annotator_Dataset_Workflow_Howto&amp;diff=12598"/>
		<updated>2013-04-03T19:12:27Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Create Dictionary File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Once you have submitted some ontologies into the BioPortal Ontology Services (BioPortal Core), you can use these to populate the backend data sets required by the Annotator Web Service. These datasets are collectively referred to as the Annotator datasets and comprise: The hierarchy database (formerly known as &amp;quot;OBS&amp;quot;), a dictionary file, and (optionally) a mapping database. The population process uses classes, terms, relations, and semantic types from the ontologies. The population is done in two major steps: 1) Synchronize the hierarchy database with BioPortal Core and 2) Create the dictionary file for use with MGREP. A third step, populating mapping information, should be done if there are mappings available.&lt;br /&gt;
&lt;br /&gt;
== Synchronize Hierarchy Database with Ontology Services ==&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt; All NCBO REST Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. As a result, the &amp;quot;ObsApiKey&amp;quot; parameter should now be appended to all the OBS worklflow execution urls.&amp;lt;/p&amp;gt;&lt;br /&gt;
The ontologies and related data that will be used by the Annotator are gathered from the Ontology Services (part of BioPortal Core). This process should be run any time a new ontology (or a new version of an existing ontology) is added to the Ontology Services, though it could theoretically be run from a cron script or scheduled job.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Remove out-dated ontologies from hierarchy database (e.g. older version of ontologies that does not in BioPortal anymore). By invoking this restlet, it will remove all the outdated ontology data and the associated entities such as concepts, terms, relations, semantic types and hierarchy information.&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
See the list of ontologies/versions to be removed:&lt;br /&gt;
http://example/obs/admin/ontologies/list/old?apikey=ObsApiKey&amp;lt;br/&amp;gt;&lt;br /&gt;
Remove old ontologies:&lt;br /&gt;
http://example/obs/admin/ontologies/remove?apikey=ObsApiKey&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Add new ontologies from BioPortal to the hierarchy database. By invoking this restlet, it will add all the new ontology data and the associated entities such as concepts, terms, relations, semantic types and hierarchy information.&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
See the list of ontologies/versions to be added:&lt;br /&gt;
http://example/obs/admin/ontologies/list/new?apikey=ObsApiKey&amp;lt;br/&amp;gt;&lt;br /&gt;
Add new ontologies:&lt;br /&gt;
http://example/obs/admin/ontologies/add?apikey=ObsApiKey&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;Populate Concepts (For details, please refer to Chapter 2.1)&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;http://example/obs/loaderBigConcepts/all?apikey=ObsApiKey&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Populate Hierarchy (For details, please refer to Chapter 2.2)&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;http://example/obs/loaderBigPaths/all?apikey=ObsApiKey&amp;lt;/code&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;To monitor the progress and view any errors, refer to:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The &amp;quot;status&amp;quot; field in the table obs_ontology in Annotator DB (obs_hibernate database).&lt;br /&gt;
&amp;lt;li&amp;gt;Check the Tomcat log (/var/logs/tomcat6/catalina.out)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Dictionary File ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;All the terms will be created as dictionary file. (Data is coming from the obs_term table)&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Location : The directory location is specified in build.properties&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Dictionary File path&lt;br /&gt;
obs.dictionary.path=/srv/ncbo/bioportal_resources/annotator/dictionary/dict&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;The dictionary file is generated in several chunks to avoid memory problems. There is a 1,000,000 term limit per file.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Generate the dictionary file:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://example/obs/createDictionary/0?apikey=ObsApiKey&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;After the files are generated, you can run the command &amp;lt;code&amp;gt;ncborestart&amp;lt;/code&amp;gt; to concatenate the resulting dictionary files and to restart the MGREP server.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mapping Data Population ==&lt;br /&gt;
&amp;lt;p&amp;gt;Mappings between ontologies can be used in the Annotator Web Service to find related terms. Loading the mapping information is currently a manual process, though this will be automated in the future. If you have mapping data you would like to include in annotator, please [mailto:support@bioontology.org contact NCBO].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Appendix ==&lt;br /&gt;
&lt;br /&gt;
=== Data Population - Concepts and Hierarchy ===&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;lt;b&amp;gt;Introduction:&amp;lt;/b&amp;gt; the Annotator hierarchy database population application pulls the ontology and the concept data from BioPortal Core via the REST services, then extracts and computes the hierarchy information, and finally stores the information in the hierarchy database. Then this computed data is accessible via the Annotator REST services.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Data population is divided into two parts: 1) Concepts and 2) Hierarchy. Please see below for details on these two population procedures.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Concepts and Direct Relation (level == 1) ====&lt;br /&gt;
===== Pre-requisite in &amp;quot;status&amp;quot;: ===== &lt;br /&gt;
&amp;lt;p&amp;gt;The ontology should be in valid status (&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;quot;status = 3&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;) in the obs_ontology table in Hierarchy Database to start this process (i.e. This is the initial status from BioPortal Core when ontology is successfully parsed). This is also serves as a safety lock to avoid launching population again for ontologies that are already in the process of population or already populated.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== REST calls available =====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For all ontologies: populate all ontologies with valid status (&amp;quot;status = 3&amp;quot;) currently stored in Hierarchy DB (ontologies are added during the synchronization process).&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;http://example/obs/loaderBigConcepts/all?apikey=ObsApiKey&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For a specific ontology: populate the given ontology if &amp;quot;status = 3&amp;quot;. Otherwise the data population process will complain that the status is invalid in the Tomcat log and exit.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;http://example/obs/loaderBigConcepts/{ontology_versoin_id}?apikey=ObsApiKey&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Troubleshooting =====&lt;br /&gt;
&amp;lt;p&amp;gt;Errors are logged both in Tomcat catalina.out and DB (obs_error_queue table).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Case 1: BioPortal REST Service is Down&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When you kick off the process using the Annotator REST call - either via web browser or shell script - it checks first if BioPortal REST service is alive. If the BioPortal REST service is down – the tomcat log will generate an error message about BioPortal REST service being down (But it does not change the ontology &amp;quot;status&amp;quot; field. Just simply kick off the process again when BioPortal REST service is back up. If BioPortal REST service is down, no change in Annotator database, therefore no need to clean up. See &amp;quot;Error Handling&amp;quot; for the &amp;quot;status&amp;quot; change scenario).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Case 2: Critical Error&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the error is critical – RunTimeException and etc – the &amp;quot;status&amp;quot; the ontology in obs_ontology table becomes &amp;quot;99&amp;quot; and the data population process halts.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;b&amp;gt;Case 3: Non-critical Error&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;If the error is not critical, the &amp;quot;status&amp;quot; the ontology in obs_ontology table becomes &amp;quot;99&amp;quot; but the data population process still continues to populate the rest of the data.  An example for a non-critical error is a discrepancy between the data from two different BioPortal REST calls – i.e. Some of the root concepts from getRootConcepts call are missing in BioPortal (The list of concepts from getAllConcepts does not have some of the root concepts).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In the case of case 2 &amp;amp; 3, data clean up may be necessary. Please see &amp;quot;Data Clean-Up&amp;quot;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Indirect Relation Hierarchy (level &amp;gt; 1) ====&lt;br /&gt;
===== Pre-requisite in &amp;quot;status&amp;quot;: =====&lt;br /&gt;
&amp;lt;p&amp;gt;The ontology should be in valid status (&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;&amp;quot;status = 14&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;) in obs_ontology table in Hierarchy Database to start this process (i.e. &amp;quot;loaderBigConcepts&amp;quot; should have been completed for the given ontology). This is a safety lock to avoid launching population again for the ontologies already in the process of population or already populated.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== REST calls available: =====&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For all ontologies: populate all ontologies with &amp;quot;status = 14&amp;quot;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;http://example/obs/loaderBigPaths/all?apikey=ObsApiKey&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;For a specific ontology: populate the given ontology if &amp;quot;status = 14&amp;quot;. Otherwise the data population process will complain that the status is invalid in the Tomcat log and exit.&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;http://example/obs/loaderBigPaths/{ontology_version_id}?apikey=ObsApiKey&amp;lt;br/&amp;gt;&lt;br /&gt;
e.g. http://example/obs/loaderBigPaths/40671?apikey=ObsApiKey&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Monitoring the Progress ====&lt;br /&gt;
&amp;lt;p&amp;gt;To monitor the progress, please see &amp;quot;status&amp;quot; field in obs_ontology table.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;table cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&amp;quot;#aaaaaa&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Restlets&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Status Required (valid status required to begin the process)&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;Status Start -&amp;gt; Finish&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&amp;quot;#eeeeee&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;loaderBigConcepts&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;11 -&amp;gt; 14&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&amp;quot;#eeeeee&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;loaderBigPaths&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;14&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;21 -&amp;gt; 28&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr bgcolor=&amp;quot;#eeeeee&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt; &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;(status value in obs_ontology table changes as progress continues)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Error Handling: =====&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If there is any &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;error&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;, the status will be set to &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;&amp;lt;b&amp;gt;99&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If critical error (e.g. BioPortal REST services down) occurs, the population process will stop and exit. But if it is NOT a critical error (e.g. if the semantic type description is not found from semantic look up table etc), it will mark the status to 99, log the error (both Tomcat log and DB obs_error_queue), but continue with the population.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;To restart the process, just run the script to clean up. The script will reset the status either to &amp;quot;3&amp;quot; or &amp;quot;14&amp;quot; depending on Concept clean up or Hierarchy clean up. (See Section II. Data Clean up)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Data Clean-Up ===&lt;br /&gt;
&amp;lt;p&amp;gt;The source for several SQL commands that can be used to clean up data after an aborted population attempt is located in &amp;lt;b&amp;gt;/ncbo/sources/annotator/2004/db/sql/obs_db_cleanup.sql&amp;lt;/b&amp;gt; – &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;DO NOT RUN&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; the entire script since this is just compiled list of commands.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
	----------------------------------------------------------------------- &lt;br /&gt;
 	to clean up or undo everything on one ontology, just run #1 and #2	&lt;br /&gt;
 	-----------------------------------------------------------------------&lt;br /&gt;
 	1. Rollback BPConceptManager. 											&lt;br /&gt;
 	Run this to rollback to initial state - to undo 'loaderConcepts' restlet	&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
set @var_ontology_version_id := '39545'; &lt;br /&gt;
&lt;br /&gt;
delete a.* from obs_relation a, obs_concept b, obs_ontology c &lt;br /&gt;
where a.level = 1 and a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
&lt;br /&gt;
delete a.* from obs_term a, obs_concept b, obs_ontology c &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
	&lt;br /&gt;
delete a.* from obs_semantic_type a, obs_concept b, obs_ontology c   &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
&lt;br /&gt;
delete a.* from obs_concept a, obs_ontology b&lt;br /&gt;
where a.ontology_id = b.id &lt;br /&gt;
and b.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
	&lt;br /&gt;
UPDATE obs_ontology set status = 3 &lt;br /&gt;
where local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
&lt;br /&gt;
/* &lt;br /&gt;
	----------------------------------------------------------------------- 	&lt;br /&gt;
 	2. Rollback BPPathManager. 											&lt;br /&gt;
 	Run this to rollback - to undo 'loaderPaths' restlet  		 			&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
set @var_ontology_version_id := '39545'; &lt;br /&gt;
&lt;br /&gt;
delete a.* from obs_relation a, obs_concept b, obs_ontology c &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id and a.level &amp;gt; 1;&lt;br /&gt;
	&lt;br /&gt;
delete a.* from obs_path_to_root a, obs_concept b, obs_ontology c &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
	&lt;br /&gt;
delete a.* from obs_path_to_leaf a, obs_concept b, obs_ontology c &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = @var_ontology_version_id;&lt;br /&gt;
	&lt;br /&gt;
UPDATE obs_ontology set status = 14 &lt;br /&gt;
where local_ontology_id = @var_ontology_version_id;		&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Useful SQL Queries for Monitoring and Validation ===&lt;br /&gt;
The source for several queries that can be used for monitoring and data validation is located in &amp;lt;b&amp;gt;/ncbo/sources/annotator/2004/db/sql/obs_db_cleanup.sql&amp;lt;/b&amp;gt; (In the same file as the Data Clean-Up)&lt;br /&gt;
&lt;br /&gt;
== To check if there are multiple entries for an Ontology ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select name, virtual_ontology_id, local_ontology_id&lt;br /&gt;
from obs_ontology &lt;br /&gt;
group by virtual_ontology_id &lt;br /&gt;
having count(virtual_ontology_id)&amp;gt;1; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Number of concepts for a specific Ontology ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select OT.name, OT.local_ontology_id AS local_ontology_id,&lt;br /&gt;
count(CT.id) AS concepts, OT.status  from obs_ontology OT &lt;br /&gt;
left join obs_concept CT ON CT.ontology_id=OT.id &lt;br /&gt;
WHERE OT.local_ontology_id in ('40133')&lt;br /&gt;
GROUP BY OT.local_ontology_id;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Number of paths to roots for a specific Ontology ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select OO.local_ontology_id, OO.name, &lt;br /&gt;
count(OPR.id) as path_to_roots, OO.status &lt;br /&gt;
from obs_ontology OO, obs_concept OC, obs_path_to_root OPR&lt;br /&gt;
where OO.id=OC.ontology_id&lt;br /&gt;
and OC.id = OPR.concept_id&lt;br /&gt;
and OO.local_ontology_id =&amp;quot;40133&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Number of total relations or path_to_root/leaf for a specific ontology (to see the progress) – by looking at how fast the number is growing ==&lt;br /&gt;
&amp;lt;pre&amp;gt;	&lt;br /&gt;
select count(*) from obs_relation a, obs_concept b, obs_ontology c&lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = '40133' and a.level &amp;gt; 1;&lt;br /&gt;
&lt;br /&gt;
select a.*, b.local_concept_id from obs_path_to_root a, &lt;br /&gt;
obs_concept b, obs_ontology c &lt;br /&gt;
where a.concept_id = b.id and b.ontology_id = c.id &lt;br /&gt;
and c.local_ontology_id = '40483';&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ontologies that have the status &amp;quot;Ready&amp;quot; (28) but have no concepts in obs_concept table ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SELECT o.*, c.ontology_id&lt;br /&gt;
FROM obs_ontology o&lt;br /&gt;
LEFT OUTER JOIN (&lt;br /&gt;
    SELECT DISTINCT ontology_id FROM obs_concept&lt;br /&gt;
) c ON o.id = c.ontology_id&lt;br /&gt;
WHERE o.status = 28 AND c.ontology_id IS NULL;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:NCBO Virtual Appliance]]&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12464</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12464"/>
		<updated>2012-09-24T22:39:30Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Download a specific ontology view based on the ontology view version id */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}/{concept id}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}?conceptid={uri-encoded concept id}&lt;br /&gt;
**To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/Melanoma?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Neoplasm?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Melanoma?apikey=YourAPIKey (returns an empty list since the term Melanoma is a leaf node)&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12463</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12463"/>
		<updated>2012-09-24T22:39:21Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Get all versions of an ontology from a virtual ontology id */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}/{concept id}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}?conceptid={uri-encoded concept id}&lt;br /&gt;
**To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/Melanoma?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Neoplasm?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Melanoma?apikey=YourAPIKey (returns an empty list since the term Melanoma is a leaf node)&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12462</id>
		<title>BioPortal REST services</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_REST_services&amp;diff=12462"/>
		<updated>2012-09-24T22:39:03Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Download an ontology file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The list below documents the NCBO Web services. For questions on how to use these Web services or to request features, contact [mailto:support@bioontology.org Support]. &lt;br /&gt;
&lt;br /&gt;
The '''prefix''' for all production service URLs in the table below is http://rest.bioontology.org/&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, [http://bioportal.bioontology.org/login login to BioPortal] and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
&lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
* '''Note''': ''Signatures for BioPortal services have changed in BioPortal 2.0.4 release on January 13th, 2009. This page has the new service URLs. &lt;br /&gt;
&lt;br /&gt;
= Overview - Using NCBO Technology in Your Project =&lt;br /&gt;
See [http://www.bioontology.org/wiki/index.php/Using_NCBO_Technology_In_Your_Project Using NCBO Technology in your Project] for general information and widgets available for use.&lt;br /&gt;
&lt;br /&gt;
= Sample Code Cookbook = &lt;br /&gt;
*Examples of using the Web services in sample code can be found [http://www.bioontology.org/wiki/index.php/Sample_Code_Cookbook here]&lt;br /&gt;
**Sample code is located within the [https://bmir-gforge.stanford.edu/gf/project/client_examples/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2F NCBO Gforge repository] and can be checked out via anonymous SVN access&lt;br /&gt;
&lt;br /&gt;
*Code examples for the [http://bioontology.org/wiki/index.php/Annotator_Web_service Annotator] and [http://www.bioontology.org/wiki/index.php/Resource_Index Resource Index] are located on the pages documenting these Web services&lt;br /&gt;
&lt;br /&gt;
*Code examples for the ontology web services, developed in FlexViz, is available at: https://bmir-gforge.stanford.edu/gf/project/flexviz/frs/?action=index. To see the code in action, visit the [http://keg.cs.uvic.ca/ncbo/restservicestest/TestUI.html Test User Interface] that has been set-up using the FlexViz code.&lt;br /&gt;
&lt;br /&gt;
= BioPortal Announce Mailing List =&lt;br /&gt;
To receive notices of new BioPortal releases, changes to web services, or planned downtime subscribe to the [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-annouce] list.&lt;br /&gt;
&lt;br /&gt;
= Service Output Formats =&lt;br /&gt;
''JSON output scheduled for mid-December release''&lt;br /&gt;
Currently, BioPortal services allow for two output formats: &amp;lt;strong&amp;gt;XML&amp;lt;/strong&amp;gt; (default) and &amp;lt;strong&amp;gt;JSON&amp;lt;/strong&amp;gt; (currently works only for ontology and concept services).&lt;br /&gt;
&lt;br /&gt;
* '''XML''': no special parameters required. This is the default REST services output format. It assumes the media type as &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt;.&lt;br /&gt;
* '''JSON''': requires an &amp;quot;Accept&amp;quot; request-header with the following value: &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
If both &amp;lt;strong&amp;gt;application/xml&amp;lt;/strong&amp;gt; and &amp;lt;strong&amp;gt;application/json&amp;lt;/strong&amp;gt; media types are present in the Accept header, the output format will be determined based on the higher &amp;quot;q&amp;quot; parameter indicating a relative quality factor of each media type. For more info, please refer to: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' JSON output is currently not available for Annotator Service.&lt;br /&gt;
&lt;br /&gt;
= Services to access ontologies and ontology versions =&lt;br /&gt;
&lt;br /&gt;
== List all the latest version of ontologies ==&lt;br /&gt;
&lt;br /&gt;
* '''Description''': Return a list of ontologies in BioPortal. To get information on Ontology Views, use the &amp;quot;List the latest version of all Views&amp;quot; Web service call. &lt;br /&gt;
* '''Signature''': ./ontologies?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies?apikey=YourAPIKey&lt;br /&gt;
** NOTE: The element &amp;lt;id&amp;gt; contains the value for the ontology version identifier.&lt;br /&gt;
&lt;br /&gt;
==  Get a specific ontology based on a version id ==&lt;br /&gt;
* '''Signature''':  ./ontologies/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/39002?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Download an ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given ontology version id.&lt;br /&gt;
* '''Signature''':   ./ontologies/download/{ontology version id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/39002?apikey=YourAPIKey&lt;br /&gt;
* '''Note''': File downloads can include zip archives. Where multiple files are included in the archive, BioPortal uses the following algorithm to determine the primary file: 1) look for a file named the same as the archive with a different extension (IE .owl instead of .zip) and 2) if no similarly-named file exists, use the first file in the list when sorted alphabetically.&lt;br /&gt;
&lt;br /&gt;
==  Download the latest ontology file ==&lt;br /&gt;
* '''Description''': Download the file (.obo, .owl) corresponding to the given virtual ontology id.&lt;br /&gt;
* '''Signature''':   ./virtual/download/{ontology id}?email={email_address}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/download/1090?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get all versions of an ontology from a virtual ontology id ==&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  Get latest version of an ontology id ==&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology_id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get Metrics for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/metrics/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/metrics/40133?apikey=YourAPIKey&lt;br /&gt;
* More documentation: http://www.bioontology.org/wiki/index.php/Ontology_Metrics&lt;br /&gt;
&lt;br /&gt;
== Get all the namespace prefixes for an ontology version ==&lt;br /&gt;
* '''Signature''': ./ontologies/namespaces/{ontology version id}?apikey=YourAPIKey&lt;br /&gt;
* '''Example''':  http://rest.bioontology.org/bioportal/ontologies/namespaces/44450?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology categories == &lt;br /&gt;
* '''Signature''':   ./categories?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/categories?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
==  List all ontology groups ==&lt;br /&gt;
* '''Signature''':   ./groups?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/groups?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Services to access ontology views and ontology view versions =&lt;br /&gt;
&lt;br /&gt;
Since all the views on ontologies are ontologies themselves all the services that work on ontologies do work for ontology views also with the same signature.&lt;br /&gt;
&lt;br /&gt;
== Download a specific ontology view based on the ontology view version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/download/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/download/43072?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all view versions of a virtual view == &lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontologies/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/versions/2070?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
However, there are a few Web services that are distinct for views. &lt;br /&gt;
&lt;br /&gt;
== List the latest version of all Views == &lt;br /&gt;
* '''Signature''': ./views?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get all versions of views from a virtual ontology id == &lt;br /&gt;
* '''Description''': Returns all versions of views defined on the latest version a virtual ontology, grouped by virtual view ids.&lt;br /&gt;
* '''Signature''': ./views/versions/{ontology id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/views/versions/1104?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Search services =&lt;br /&gt;
&lt;br /&gt;
==  Search BioPortal ==&lt;br /&gt;
* '''Signature''': ./search/?query={uri-encoded query}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Deprecated Signature''': ./search/{query}[?{optional args}]&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Boolean Search Options:'''&lt;br /&gt;
** () parentheses allow to enclose multiple terms joined by OR&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;(foo bar)&amp;quot; will expand to &amp;quot;foo* OR bar*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** - the minus sign preceding a term indicates NOT&lt;br /&gt;
*** &amp;lt;pre&amp;gt;Example: &amp;quot;foo bar -baz&amp;quot; will expand to &amp;quot;foo* AND bar* AND NOT baz*&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
** No prefix means MUST (required).&lt;br /&gt;
&lt;br /&gt;
* '''Optional Arguments:''' &lt;br /&gt;
** ontologyids=&amp;lt;ontologyid&amp;gt;,&amp;lt;ontologyid&amp;gt;… - limits the search to specific ontologies (default: all ontologies)&lt;br /&gt;
** isexactmatch=[1/0] – match the entire concept name (default: 0)&lt;br /&gt;
** includeproperties=[1/0] – include attributes in the search (default: 0 and includes the preferred name, term identifier, and synonym properties)&lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
** maxnumhits=&amp;lt;maxnumhits&amp;gt; - the maximum number of top matching results to return (default: 1000)&lt;br /&gt;
** subtreerootconceptid=&amp;lt;uri-encoded conceptid&amp;gt; - narrow the search to concepts residing in a sub-tree, where the &amp;quot;subtreerootconceptid&amp;quot; is the root node. This feature requires a SINGLE &amp;lt;ontologyid&amp;gt; passed in using the &amp;quot;onotlogyids&amp;quot; parameter.&lt;br /&gt;
** objecttypes=&amp;lt;class,individual,property&amp;gt; - limits the results returned to these types, multitple types can be included in the parameter, e.g. class,individual.&lt;br /&gt;
** includedefinitions={true} - if a search result is a hit for a term, adding this parameter will include the definition in the search result xml. '''Note''': Including the definition results in a slight performance hit.&lt;br /&gt;
* '''Description:''' &lt;br /&gt;
The search attempts to match both partial and exact queries, giving more weight to exact matches. In single-word searches, the wildcard character (*) is automatically appended to the end of the word. For example, searching for &amp;quot;lun&amp;quot; would return all concepts whose name contains a word that begins with &amp;quot;lun&amp;quot; (i.e. &amp;quot;Lung&amp;quot;, &amp;quot;Murine Lunate Bone&amp;quot;, &amp;quot;Base of the Lung&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
In phrase searches (multiple words), the wildcard character is appended to the end of each word. For example, searching for &amp;quot;cut mela&amp;quot; would return all concepts whose name contains a word starting with &amp;quot;cut&amp;quot;, followed by any word that begins with &amp;quot;mela&amp;quot; (i.e. &amp;quot;Cutaneous Melanoma&amp;quot;, &amp;quot;Metastatic Non-Cutaneous Melanoma&amp;quot;, &amp;quot;Cutaneous Melanoma Clinical TNM Finding&amp;quot;, etc).&lt;br /&gt;
&lt;br /&gt;
* '''Field Values'''&lt;br /&gt;
** The '&amp;lt;recordType&amp;gt;&amp;lt;/recordType&amp;gt;' entries can be: PREFERRED_NAME = &amp;quot;apreferredname&amp;quot;, CONCEPT_ID = &amp;quot;bconceptid&amp;quot;, SYNONYM = &amp;quot;csynonym&amp;quot;, and PROPERTY = &amp;quot;dproperty&amp;quot;.&lt;br /&gt;
** The '&amp;lt;objectType&amp;gt;&amp;lt;/objectType&amp;gt;' entries are concept types, which can be: &amp;quot;class&amp;quot;, &amp;quot;property&amp;quot;, or &amp;quot;individual&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/search/?query=Gene&amp;amp;ontologyids=1032&amp;amp;isexactmatch=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/search/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2012-07-06 10:31:44.413 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;page&amp;gt;&lt;br /&gt;
      &amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
      &amp;lt;numPages&amp;gt;1&amp;lt;/numPages&amp;gt;&lt;br /&gt;
      &amp;lt;pageSize&amp;gt;2&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsPage&amp;gt;2&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
      &amp;lt;numResultsTotal&amp;gt;2&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.search.SearchResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;searchResultList&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;apreferredname&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
          &amp;lt;searchBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;recordType&amp;gt;csynonym&amp;lt;/recordType&amp;gt;&lt;br /&gt;
            &amp;lt;objectType&amp;gt;class&amp;lt;/objectType&amp;gt;&lt;br /&gt;
            &amp;lt;conceptId&amp;gt;http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#Gene_Object&amp;lt;/conceptId&amp;gt;&lt;br /&gt;
            &amp;lt;conceptIdShort&amp;gt;Gene_Object&amp;lt;/conceptIdShort&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;Gene Object&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;contents&amp;gt;Gene&amp;lt;/contents&amp;gt;&lt;br /&gt;
            &amp;lt;isObsolete&amp;gt;1&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
          &amp;lt;/searchBean&amp;gt;&lt;br /&gt;
        &amp;lt;/searchResultList&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyHitList&amp;gt;&lt;br /&gt;
          &amp;lt;ontologyHitBean&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyVersionId&amp;gt;47638&amp;lt;/ontologyVersionId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1032&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyDisplayLabel&amp;gt;NCI Thesaurus&amp;lt;/ontologyDisplayLabel&amp;gt;&lt;br /&gt;
            &amp;lt;numHits&amp;gt;2&amp;lt;/numHits&amp;gt;&lt;br /&gt;
          &amp;lt;/ontologyHitBean&amp;gt;&lt;br /&gt;
        &amp;lt;/ontologyHitList&amp;gt;&lt;br /&gt;
        &amp;lt;numHitsTotal&amp;gt;3&amp;lt;/numHitsTotal&amp;gt;&lt;br /&gt;
      &amp;lt;/contents&amp;gt;&lt;br /&gt;
    &amp;lt;/page&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Term services =&lt;br /&gt;
(formerly referred to as Concept services)&lt;br /&gt;
&lt;br /&gt;
==  Get term, including its properties, subclasses, and superclasses ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/{concept id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Alt Signature''': ./concepts/{ontology version id}?conceptid={uri-encoded concept id}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}/{concept id}&lt;br /&gt;
* '''Alt Virtual Signature''' (always uses most recent version of the ontology): ./virtual/ontology/{ontology virtual id}?conceptid={uri-encoded concept id}&lt;br /&gt;
**To ensure that the Web service works within your application, use the Alt signature as some ontologies may contain terms where the concept id is a URI. &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** light=[1/0] - when set to 1, returns the &amp;quot;light&amp;quot; version of XML with only a basic info for the concept and its immediate children&lt;br /&gt;
** norelations=[1/0] - when set to 1, returns only the requested term information (id, label, fullid, type, synonyms, definitions) without the &amp;quot;relations&amp;quot; map. This is useful when you need to quickly retrieve just the base information about a term.&lt;br /&gt;
** maxnumchildren - an integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44103?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/44450?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1516?conceptid=O80-O84.9&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104?conceptid=BRO:Software&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* '''Sample Output''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/concepts/44103&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-12-08 16:57:43.763 PST&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;classBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;O80-O84.9&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80-O84.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;label&amp;gt;Delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;relations&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SubClass&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O84&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O84&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Multiple delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O83&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O83&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Other assisted single delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;7&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O82&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O82&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by caesarean section&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O81&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O81&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Single delivery by forceps and vacuum extractor&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;6&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O80&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O80&amp;lt;/fullId&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;label&amp;gt;Single spontaneous delivery&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;4&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;PAR&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;int&amp;gt;5&amp;lt;/int&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;Semantic_Type&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;Therapeutic or Preventive Procedure&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;TUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;T061&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;string&amp;gt;UMLS_CUI&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;C0011209&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;entry&amp;gt;&lt;br /&gt;
          &amp;lt;string&amp;gt;SuperClass&amp;lt;/string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
          &amp;lt;list&amp;gt;&lt;br /&gt;
            &amp;lt;classBean&amp;gt;&lt;br /&gt;
              &amp;lt;id&amp;gt;O00-O99.9&amp;lt;/id&amp;gt;&lt;br /&gt;
              &amp;lt;fullId&amp;gt;http://purl.bioontology.org/ontology/ICD10/O00-O99.9&amp;lt;/fullId&amp;gt;&lt;br /&gt;
              &amp;lt;label&amp;gt;Pregnancy, childbirth and the puerperium&amp;lt;/label&amp;gt;&lt;br /&gt;
              &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;relations&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                  &amp;lt;string&amp;gt;ChildCount&amp;lt;/string&amp;gt;&lt;br /&gt;
                  &amp;lt;int&amp;gt;8&amp;lt;/int&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
              &amp;lt;/relations&amp;gt;&lt;br /&gt;
            &amp;lt;/classBean&amp;gt;&lt;br /&gt;
          &amp;lt;/list&amp;gt;&lt;br /&gt;
        &amp;lt;/entry&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/relations&amp;gt;&lt;br /&gt;
    &amp;lt;/classBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==  Get all root terms for an ontology version id ==&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/root?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/39002/root?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
== Get a path between a term and the root ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./path/{ontology_version_id}/?source={concept1_id}&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/path/42838/?source=Transitional_Epithelium&amp;amp;target=root&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* Note: If there is no path between the specified term and the set of nodes designated as &amp;quot;roots&amp;quot; then this method just returns the root node. Note that &amp;quot;root&amp;quot; here is defined as a set of classes which have been designated as &amp;quot;roots&amp;quot;. It is not defined as a node which as no parents.&lt;br /&gt;
* Note: This service only returns a '''single path''' between a term and the root. There is a [[NCBO_REST_services#Get_paths_to_root.2Fleaves_from_a_concept_in_the_latest_version_of_a_given_ontology|service that returns '''all paths''' from a term to the root]] for most ontologies. Alternatively, all paths can be calculated by recursively calling [[NCBO_REST_services#Get_term.2C_including_its_properties.2C_subclasses.2C_and_superclasses|the term service]].&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the specific ontology version id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./concepts/{ontology version id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
==  Get all terms using the virtual ontology id ==&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' 'Get all terms' service has changed. The new signature and examples are reflected below. See [[#Changes_to_the_Get_all_terms_service]] for more information.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/ontology/{ontology id}/all?pagesize={pagesize}&amp;amp;pagenum={pagenum}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/ontology/1104/all?&amp;amp;pagesize=50&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Arguments:''' &lt;br /&gt;
** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
== Changes to the Get all terms service ==&lt;br /&gt;
&lt;br /&gt;
Starting in BioPortal 2.3.1 (released March 15, 2010), the 'Get all terms' service has changed to support speedier and more complete term retrieval. To support this, several changes to the response XML and service signature are being made. Please see the following notes to update your existing applications to support these changes.&lt;br /&gt;
&lt;br /&gt;
* '''Examples''': A preview of the new service can be seen on the NCBO staging site:&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/40644/all?pagesize=50&amp;amp;pagenum=1&lt;br /&gt;
** http://rest.bioontology.org/bioportal/concepts/42431/all?pagesize=50&amp;amp;pagenum=500&lt;br /&gt;
&lt;br /&gt;
* '''Signature'''&lt;br /&gt;
** '''New parameters:''' Previously, offset and limit were used to control pagination of results. These parameters have been replaced as follows:&lt;br /&gt;
*** '''pagesize:''' An integer limiting how many results will be returned on a single page (a 'page' is equivalent to a single call to the REST service)&lt;br /&gt;
*** '''pagenum:''' An integer indicating which page of results to return.&lt;br /&gt;
*** '''maxnumchildren:''' An integer that sets threshold on the number of children in the SubClass relation for a term. If a term contains more children than the &amp;quot;maxnumchildren&amp;quot;, the SubClass relation returns an empty list. The ChildCount relation still contains the correct number of children.&lt;br /&gt;
&lt;br /&gt;
* '''Response''': The structure of the new 'Get all terms' response XML has been brought into line with other BioPortal REST term services. In addition, to assist in paging through result sets, 'page' metadata is provided. A list of classBeans is provided in the classBeanResultList element, which includes each classes' set of relations (examples of relations include SuperClass, SubClass, and rdfs:label). Please see the example below for a full demonstration of the new response.&lt;br /&gt;
&lt;br /&gt;
= View Extraction Service = &lt;br /&gt;
* This web service can be used to extract a subtree from an ontology. See [http://www.bioontology.org/wiki/index.php/View_Extraction View Extraction] for usage details. &lt;br /&gt;
&lt;br /&gt;
= Property Services =&lt;br /&gt;
&lt;br /&gt;
== Get all available ontology properties using the specific ontology version id ==&lt;br /&gt;
* '''Signature''': ./ontologies/properties/{ontlogyVersionId}?apikey={YourAPIKey} &lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontologies/properties/38801?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all properties for a given ontology version.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/ontologies/properties/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2011-09-22 15:47:46.309 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_value&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_value&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_value&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_description&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_description&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_description&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations /&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
			&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
				&amp;lt;id&amp;gt;has_pages&amp;lt;/id&amp;gt;&lt;br /&gt;
				&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#has_pages&lt;br /&gt;
				&amp;lt;/fullId&amp;gt;&lt;br /&gt;
				&amp;lt;label&amp;gt;has_pages&amp;lt;/label&amp;gt;&lt;br /&gt;
				&amp;lt;type&amp;gt;property&amp;lt;/type&amp;gt;&lt;br /&gt;
				&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
				&amp;lt;relations&amp;gt;&lt;br /&gt;
					&amp;lt;entry&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;Domain&amp;lt;/string&amp;gt;&lt;br /&gt;
						&amp;lt;classBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;BibliographicReference&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;http://mged.sourceforge.net/ontologies/MGEDOntology.owl#BibliographicReference&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;BibliographicReference&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;type&amp;gt;class&amp;lt;/type&amp;gt;&lt;br /&gt;
							&amp;lt;isObsolete&amp;gt;0&amp;lt;/isObsolete&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
						&amp;lt;/classBean&amp;gt;&lt;br /&gt;
					&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Instance Services =&lt;br /&gt;
&lt;br /&gt;
== Get all direct instances for a given term ==&lt;br /&gt;
* '''Signature''': ./concepts/instances/{ontlogyVersionId}?conceptid={uri-encoded concept id}[&amp;amp;{optional args}]&amp;amp;apikey={YourAPIKey} &lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** pagesize=&amp;lt;pagesize&amp;gt; - the number of results to display in a single request (default: all)&lt;br /&gt;
** pagenum=&amp;lt;pagenum&amp;gt; - the page number to display (pages are calculated using &amp;lt;total results&amp;gt;/&amp;lt;pagesize&amp;gt;) (default: 1)&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/concepts/instances/38801?conceptid=SubstrateType&amp;amp;pagesize=10&amp;amp;pagenum=1&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all direct instances for a given term.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/concepts/instances/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:17:21.226 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;page&amp;gt;&lt;br /&gt;
			&amp;lt;pageNum&amp;gt;1&amp;lt;/pageNum&amp;gt;&lt;br /&gt;
			&amp;lt;numPages&amp;gt;5&amp;lt;/numPages&amp;gt;&lt;br /&gt;
			&amp;lt;pageSize&amp;gt;1&amp;lt;/pageSize&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsPage&amp;gt;1&amp;lt;/numResultsPage&amp;gt;&lt;br /&gt;
			&amp;lt;numResultsTotal&amp;gt;5&amp;lt;/numResultsTotal&amp;gt;&lt;br /&gt;
			&amp;lt;contents class=&amp;quot;org.ncbo.stanford.bean.concept.InstanceBeanResultListBean&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unknown_substrate_type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unknown_substrate_type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unknown_substrate_type&lt;br /&gt;
									&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;MO_484&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;&lt;br /&gt;
											http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
										&amp;lt;instanceType&amp;gt;&lt;br /&gt;
											&amp;lt;list&amp;gt;&lt;br /&gt;
												&amp;lt;classBean&amp;gt;&lt;br /&gt;
													&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
													&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
													&amp;lt;/fullId&amp;gt;&lt;br /&gt;
													&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
													&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
													&amp;lt;relations /&amp;gt;&lt;br /&gt;
												&amp;lt;/classBean&amp;gt;&lt;br /&gt;
											&amp;lt;/list&amp;gt;&lt;br /&gt;
										&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
									&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
							&amp;lt;entry&amp;gt;&lt;br /&gt;
								&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;string&amp;gt;SubstrateType of unknown type.&amp;lt;/string&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/entry&amp;gt;&lt;br /&gt;
						&amp;lt;/relations&amp;gt;&lt;br /&gt;
						&amp;lt;instanceType&amp;gt;&lt;br /&gt;
							&amp;lt;list&amp;gt;&lt;br /&gt;
								&amp;lt;classBean&amp;gt;&lt;br /&gt;
									&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
									&amp;lt;fullId&amp;gt;&lt;br /&gt;
										http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
									&amp;lt;/fullId&amp;gt;&lt;br /&gt;
									&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
									&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
									&amp;lt;relations /&amp;gt;&lt;br /&gt;
								&amp;lt;/classBean&amp;gt;&lt;br /&gt;
							&amp;lt;/list&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
					&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/contents&amp;gt;&lt;br /&gt;
		&amp;lt;/page&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Get an instance and its property/value pairs ==&lt;br /&gt;
* '''Signature''': ./instance/{ontlogyVersionId}?instanceid={instanceid}&amp;amp;apikey={YourAPIKey}&lt;br /&gt;
&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/instance/38801?instanceid=glass&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns information about an instance and a list of property/value pairs.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/instance/38801&lt;br /&gt;
	&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;20100408 18:10:48.760 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
			&amp;lt;id&amp;gt;glass&amp;lt;/id&amp;gt;&lt;br /&gt;
			&amp;lt;fullId&amp;gt;&lt;br /&gt;
				http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
			&amp;lt;/fullId&amp;gt;&lt;br /&gt;
			&amp;lt;label&amp;gt;glass&amp;lt;/label&amp;gt;&lt;br /&gt;
			&amp;lt;relations&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:NAME&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:NAME&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:NAME&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#glass&lt;br /&gt;
						&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;unique_identifier&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#unique_identifier&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;unique_identifier&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;MO_742&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdfs:comment&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/2000/01/rdfschema#comment&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdfs:comment&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;string&amp;gt;The array is made on a glass slide.&amp;lt;/string&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;:DIRECTTYPE&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;:DIRECTTYPE&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;:DIRECTTYPE&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;propertyBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;rdf:type&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;http://www.w3.org/1999/02/22rdfsyntaxns#type&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;rdf:type&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/propertyBean&amp;gt;&lt;br /&gt;
					&amp;lt;list&amp;gt;&lt;br /&gt;
						&amp;lt;instanceBean&amp;gt;&lt;br /&gt;
							&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
							&amp;lt;fullId&amp;gt;&lt;br /&gt;
								http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
							&amp;lt;/fullId&amp;gt;&lt;br /&gt;
							&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
							&amp;lt;relations /&amp;gt;&lt;br /&gt;
							&amp;lt;instanceType&amp;gt;&lt;br /&gt;
								&amp;lt;list&amp;gt;&lt;br /&gt;
									&amp;lt;classBean&amp;gt;&lt;br /&gt;
										&amp;lt;id&amp;gt;owl:Class&amp;lt;/id&amp;gt;&lt;br /&gt;
										&amp;lt;fullId&amp;gt;http://www.w3.org/2002/07/owl#Class&lt;br /&gt;
										&amp;lt;/fullId&amp;gt;&lt;br /&gt;
										&amp;lt;label&amp;gt;owl:Class&amp;lt;/label&amp;gt;&lt;br /&gt;
										&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
										&amp;lt;relations /&amp;gt;&lt;br /&gt;
									&amp;lt;/classBean&amp;gt;&lt;br /&gt;
								&amp;lt;/list&amp;gt;&lt;br /&gt;
							&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
						&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
					&amp;lt;/list&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/relations&amp;gt;&lt;br /&gt;
			&amp;lt;instanceType&amp;gt;&lt;br /&gt;
				&amp;lt;list&amp;gt;&lt;br /&gt;
					&amp;lt;classBean&amp;gt;&lt;br /&gt;
						&amp;lt;id&amp;gt;SubstrateType&amp;lt;/id&amp;gt;&lt;br /&gt;
						&amp;lt;fullId&amp;gt;&lt;br /&gt;
							http://mged.sourceforge.net/ontologies/MGEDOntology.owl#SubstrateType&lt;br /&gt;
						&amp;lt;/fullId&amp;gt;&lt;br /&gt;
						&amp;lt;label&amp;gt;SubstrateType&amp;lt;/label&amp;gt;&lt;br /&gt;
						&amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
						&amp;lt;relations /&amp;gt;&lt;br /&gt;
					&amp;lt;/classBean&amp;gt;&lt;br /&gt;
				&amp;lt;/list&amp;gt;&lt;br /&gt;
			&amp;lt;/instanceType&amp;gt;&lt;br /&gt;
		&amp;lt;/instanceBean&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=  Hierarchy Services =&lt;br /&gt;
&lt;br /&gt;
The Hierarchy Services provide access to pre-computed term hierarchy information via a single web service call. The pre-computed hierarchy data is generated for only one version of an ontology and is periodically updated. Therefore, if using the Hierarchy Web services, it is best to use the form of the call with the virtual ontology id. To get hierarchy information for any version of an ontology, use the Term Web service to traverse the ontology structure.  &lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;NOTE: &amp;lt;/font&amp;gt;To see which ontology versions have been processed for use with the Hierarchy Services, check http://rest.bioontology.org/obs/ontologies for ontologies with STATUS=28.'''&lt;br /&gt;
&lt;br /&gt;
==  Get paths to root/leaves from a concept in the latest version of a given ontology  ==&lt;br /&gt;
* '''Signature''': ./virtual/[rootpath|leafpath]/{ontologyId}/{conceptId}[?apikey={YourAPIKey}&amp;amp;{optional args}]&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/rootpath/1032/Melanoma?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Neoplasm?apikey=YourAPIKey&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/leafpath/1032/Melanoma?apikey=YourAPIKey (returns an empty list since the term Melanoma is a leaf node)&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** offset=&amp;lt;integer&amp;gt; – results offset (used for pagination)&lt;br /&gt;
** limit=&amp;lt;integer&amp;gt; – limits the number of results&lt;br /&gt;
** delim=&amp;lt;string&amp;gt; – use a custom delimiter between returned terms. Default is a period (.).&lt;br /&gt;
* '''Description''': The same as the previous services, but takes an ontology id and returns parents from the latest version of that ontology available via the Hierarchy web services. To see which ontology versions are available, see the '''&amp;lt;font color='red'&amp;gt;NOTE&amp;lt;/font&amp;gt;''' above for the [http://www.bioontology.org/wiki/index.php/BioPortal_REST_services#Hierarchy_Services Hierarchy web services].&lt;br /&gt;
&lt;br /&gt;
= Bio2RDF Dump Service =&lt;br /&gt;
&lt;br /&gt;
This service allows you to output a given ontology from BioPortal in the form of a N3 RDF file conforming to the requirements for integrating into the [http://sourceforge.net/projects/bio2rdf/ Bio2RDF] collection.&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./ontology/dump_n3/{ontlogyVersionId}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/ontology/dump_n3/40865?apikey=YourAPIKey&lt;br /&gt;
&lt;br /&gt;
= Annotator Service =&lt;br /&gt;
&lt;br /&gt;
The NCBO Annotator is a Web service that can be used to annotate text metadata with biomedical ontology concepts. The concepts are from ontologies in BioPortal and includes the Unified Medical Language System (UMLS) Metathesaurus, OBO Foundry candidate ontologies and many others. &lt;br /&gt;
&lt;br /&gt;
The Annotator can be tested via a Web interface available through [http://bioportal.bioontology.org/annotate BioPortal]. For more information on using the Annotator Web service, see: http://bioontology.org/wiki/index.php/Annotator_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Ontology Recommender =&lt;br /&gt;
The Ontology Recommender is a Web service that provides information on what ontology is best covered by your text metadata. An in-depth description and links to the Web service documentation and sample clients can be found at: http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service.&lt;br /&gt;
&lt;br /&gt;
= Resource Index Service =&lt;br /&gt;
&lt;br /&gt;
The Resource Index provides a mechanism to search for biomedical data based on ontology concepts. For more information on using the Resource Index service, see http://www.bioontology.org/wiki/index.php/Resource_Index.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= RDF Term Service =&lt;br /&gt;
 &lt;br /&gt;
* '''Signature''': ./bioportal/rdf/{ontology version id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Alt Signature''': ./bioportal/virtual/rdf/{ontology id}/?conceptid={concept id},{concept id},...,{concept id}&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** '''NOTE''': To ensure that the Web service works within your application, url-encode the concept id as some ontologies may contain terms where the concept id is a URI.&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/rdf/1321/?conceptid=NEMO_0000024&amp;amp;apikey=YourAPIKey&lt;br /&gt;
** http://rest.bioontology.org/bioportal/rdf/47799/?conceptid=NEMO_1398000&amp;amp;apikey=YourAPIKey&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
** concept id&lt;br /&gt;
* '''Description''': returns a BioPortal concept as RDF/XML ontology snippet. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': &amp;lt;nowiki&amp;gt;http://purl.bioontology.org/ontology/{ACRONYM}/{ID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*** '''OBO''': &amp;lt;nowiki&amp;gt;http://purl.obolibrary.org/{IDSPACE}_{LOCALID}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;rdf:RDF xmlns=&amp;quot;http://purl.bioontology.org/ontology/NEMO#&amp;quot;&lt;br /&gt;
     xml:base=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&lt;br /&gt;
     xmlns:rdfs=&amp;quot;http://www.w3.org/2000/01/rdf-schema#&amp;quot;&lt;br /&gt;
     xmlns:BPMetadata=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#&amp;quot;&lt;br /&gt;
     xmlns:owl=&amp;quot;http://www.w3.org/2002/07/owl#&amp;quot;&lt;br /&gt;
     xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema#&amp;quot;&lt;br /&gt;
     xmlns:rdf=&amp;quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#&amp;quot;&lt;br /&gt;
     xmlns:NEMO=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#&amp;quot;&lt;br /&gt;
     xmlns:ontology=&amp;quot;http://omv.ontoware.org/2005/05/ontology/&amp;quot;&lt;br /&gt;
     xmlns:skos=&amp;quot;http://www.w3.org/2004/02/skos/core#&amp;quot;&lt;br /&gt;
     xmlns:ontology2=&amp;quot;http://purl.bioontology.org/NEMO/ontology#&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;owl:Ontology rdf:about=&amp;quot;http://purl.bioontology.org/ontology/NEMO&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:name&amp;gt;Neural ElectroMagnetic Ontologies&amp;lt;/ontology:name&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:acronym&amp;gt;NEMO&amp;lt;/ontology:acronym&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:description&amp;gt;Neural ElectroMagnetic Ontologies (NEMO) describe classes of event-related brain potentials (ERP) and their properties, including spatial, temporal, functional (cognitive/behavioral) attributes, and data-level attributes (acquisition and analysis parameters).&amp;lt;/ontology:description&amp;gt;&lt;br /&gt;
        &amp;lt;BPMetadata:id&amp;gt;45141&amp;lt;/BPMetadata:id&amp;gt;&lt;br /&gt;
        &amp;lt;ontology:hasOntologyLanguage rdf:resource=&amp;quot;http://omv.ontoware.org/2005/05/ontology#owl&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Ontology&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Annotation properties&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/name&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_synonym&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_definition&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#label&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/ontology/BPMetadata#id&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#broader&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subClassOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology#NEMO_pref_label&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subPropertyOf rdf:resource=&amp;quot;http://www.w3.org/2004/02/skos/core#prefLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:AnnotationProperty&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/acronym&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#notation&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/description&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#definition&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://omv.ontoware.org/2005/05/ontology/hasOntologyLanguage&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2000/01/rdf-schema#subPropertyOf&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;owl:AnnotationProperty rdf:about=&amp;quot;http://www.w3.org/2004/02/skos/core#altLabel&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- &lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
    //&lt;br /&gt;
    // Classes&lt;br /&gt;
    //&lt;br /&gt;
    ///////////////////////////////////////////////////////////////////////////////////////&lt;br /&gt;
     --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;owl:Class rdf:about=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000024&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/rdfs:label&amp;gt;&lt;br /&gt;
        &amp;lt;rdfs:subClassOf rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
        &amp;lt;skos:prefLabel&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/skos:prefLabel&amp;gt;&lt;br /&gt;
        &amp;lt;skos:notation&amp;gt;NEMO_0000024&amp;lt;/skos:notation&amp;gt;&lt;br /&gt;
        &amp;lt;ontology2:NEMO_pref_label&amp;gt;left_posterotemporal_scalp_surface_region&amp;lt;/ontology2:NEMO_pref_label&amp;gt;&lt;br /&gt;
        &amp;lt;skos:broader rdf:resource=&amp;quot;http://purl.bioontology.org/NEMO/ontology/NEMO.owl#NEMO_0000010&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/owl:Class&amp;gt;&lt;br /&gt;
&amp;lt;/rdf:RDF&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Generated by the OWL API (version 3.0.0.1451) http://owlapi.sourceforge.net --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= RDF Download Service =&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./bioportal/virtual/ontology/rdf/download/{ontology id}?apikey=YourAPIKey&lt;br /&gt;
* '''Examples''': &lt;br /&gt;
** http://rest.bioontology.org/bioportal/virtual/ontology/rdf/download/1537?apikey=YourAPIKey&lt;br /&gt;
''NOTE:'' If using the Web service calls from Firefox, disable the Tabulator Add-on in order to download the files. &lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** ontology version id&lt;br /&gt;
* '''Description''': returns a BioPortal ontology as RDF/XML. This is a prototype web service, for updates subscribe to [https://mailman.stanford.edu/mailman/listinfo/bioportal-announce bioportal-announce]. &lt;br /&gt;
** The RDF dump will use URIs that are based on which format the ontology is in:&lt;br /&gt;
*** '''OWL/RDF(S)''': preserve original URIs&lt;br /&gt;
*** '''Protégé &amp;amp; RRF''': http://purl.bioontology.org/ontology/{abbreviation}/{concept_id}&lt;br /&gt;
*** '''OBO''': http://purl.obolibrary.org/{idspace}_{localid}&lt;br /&gt;
&lt;br /&gt;
= Notes Service (Term Proposals and Comments) =&lt;br /&gt;
* The Notes Web service is described here: http://www.bioontology.org/wiki/index.php/Ontology_Notes.&lt;br /&gt;
&lt;br /&gt;
= Mapping Service = &lt;br /&gt;
* The Mapping Web service is described here: http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
= Usage Logging =&lt;br /&gt;
* '''Signature''': ./usage?{args}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/usage?requesturl=ontologies&amp;amp;resourceparameters=13578&amp;amp;email=example@example.org&lt;br /&gt;
* '''Required arguments:''' &lt;br /&gt;
** none specifically, but at least one optional argument is required&lt;br /&gt;
* '''Optional arguments:''' &lt;br /&gt;
** requesturl=&amp;lt;string contained in request url&amp;gt; – limit results to a given string contained in REST service request url. Unique values for the requesturl are: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /categories&lt;br /&gt;
  /concepts/{ontology version id}/{concept id}&lt;br /&gt;
  /concepts/{children or leafpath or parents or siblings}/{ontology version id}/{concept id}&lt;br /&gt;
  /diffs/{virtual id}&lt;br /&gt;
  /ontologies/{ontology version id} &lt;br /&gt;
  /ontologies/download/{ontology version id}&lt;br /&gt;
  /ontologies/versions/{ontology virtual id}&lt;br /&gt;
  /path/{ontology version id}/{concept id}&lt;br /&gt;
  /search/{search terms}&lt;br /&gt;
  /virtual/{virtual id}&lt;br /&gt;
  /virtual/ontology/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/rootpath/{virtual id}/{concept id}&lt;br /&gt;
  /virtual/siblings/{virtual id}/{concept id}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
** resourceparameters=&amp;lt;string contained in resource parameters&amp;gt; – limit results to a given string contained in resource parameters. For example, in the URL http://rest.bioontology.org/bioportal/search/melanoma, the word &amp;quot;melanoma&amp;quot; is considered a &amp;quot;resource parameter&amp;quot;.&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given starting date (default: no starting date)&lt;br /&gt;
** startdateaccessed=&amp;lt;date in format mm/dd/yyyy&amp;gt; – limit results to the given ending date (default: today's date)&lt;br /&gt;
* '''Description''': returns BioPortal REST services usage data as XML.&lt;br /&gt;
* '''Sample Output:'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
	&amp;lt;accessedResource&amp;gt;/bioportal/usage&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
	&amp;lt;accessDate&amp;gt;2009-07-27 14:21:19.728 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
	&amp;lt;data&amp;gt;&lt;br /&gt;
		&amp;lt;list&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;&lt;br /&gt;
					/search/Certain infectious and parasitic diseases/&lt;br /&gt;
				&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Certain%20infectious%20and%20parasitic%20diseases&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;1&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Hypertension/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;&lt;br /&gt;
					query=Hypertension&lt;br /&gt;
				&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;2&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
			&amp;lt;usageLoggingBean&amp;gt;&lt;br /&gt;
				&amp;lt;requestUrl&amp;gt;/search/Melanoma/&amp;lt;/requestUrl&amp;gt;&lt;br /&gt;
				&amp;lt;httpMethod&amp;gt;GET&amp;lt;/httpMethod&amp;gt;&lt;br /&gt;
				&amp;lt;resourceParameters&amp;gt;query=Melanoma&amp;lt;/resourceParameters&amp;gt;&lt;br /&gt;
				&amp;lt;requestParameters&amp;gt;&lt;br /&gt;
					pagenum=1&amp;amp;ontologyids=1265&amp;amp;pagesize=20&lt;br /&gt;
				&amp;lt;/requestParameters&amp;gt;&lt;br /&gt;
				&amp;lt;hitCount&amp;gt;3&amp;lt;/hitCount&amp;gt;&lt;br /&gt;
				&amp;lt;dateAccessed class=&amp;quot;sql-timestamp&amp;quot;&amp;gt;&lt;br /&gt;
					2009-07-27 00:00:00.0&lt;br /&gt;
				&amp;lt;/dateAccessed&amp;gt;&lt;br /&gt;
			&amp;lt;/usageLoggingBean&amp;gt;&lt;br /&gt;
		&amp;lt;/list&amp;gt;&lt;br /&gt;
	&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= XML Schema Definitions for the REST services =&lt;br /&gt;
&lt;br /&gt;
XML Schema for [[#Term_services|Term]] and [[#Hierarchy_Services|Hierarchy]] services have been provided courtesy Eamonn Maguire. An updated XML Schema document will be posted shortly.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Virtual_Appliance_FAQ&amp;diff=12431</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=12431"/>
		<updated>2012-08-30T19:20:16Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Installation Instructions */&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 the MySQL connector jar [http://smi-protege.stanford.edu/repos/protege/protege-core/trunk/dbdrivers/ here]. You will need to rename this file to 'driver.jar' and place it in the Protégé installation directory.&amp;lt;/li&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;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= How can I use the Appliance on Amazon EC2? =&lt;br /&gt;
The NCBO Virtual Appliance can be deployed in Amazon EC2. The AMI is available in US West (Northern California) region, has the id '''ami-5187dd14''' and is built on the EBS-backed 64-bit Amazon Linux AMI 2012.03&lt;br /&gt;
&lt;br /&gt;
=== Installation Instructions ===&lt;br /&gt;
* Login to AWS Console: https://console.aws.amazon.com/ec2/home?region=us-west-1&lt;br /&gt;
* Click on Instances → Launch Instance → Classic Wizard → Community AMIs → Choose an AMI:&lt;br /&gt;
** Search for “NCBO Appliance” and choose the latest version&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Details:&lt;br /&gt;
** Instance Type = m1.large (or any other type with at least 2 cores and ~8 GB of RAM)&lt;br /&gt;
** Availability Zone = No preference&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Advanced Instance Options:&lt;br /&gt;
** Termination Protection = Prevention against accidental termination&lt;br /&gt;
** Shutdown Behavior = Stop&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Instance Tags:&lt;br /&gt;
** Name = Name this instance something meaningful&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Key Pairs:&lt;br /&gt;
** Choose from your Existing Key Pairs or Create a Key Pair&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Configure Firewall:&lt;br /&gt;
** Choose (you may need to create one first) a Security Group that has ports 22, 80, and 8080 open. It is recommended that you only allow the networks you need. We accept no responsibility/liability for machines getting compromised.&lt;br /&gt;
** Click '''Continue'''&lt;br /&gt;
* Review Instance Details:&lt;br /&gt;
** Make sure your settings are correct&lt;br /&gt;
** Click '''Launch'''&lt;br /&gt;
** Click '''Close'''&lt;br /&gt;
* Click on Instances (left hand side of the screen):&lt;br /&gt;
** Once the instance State has changed from Pending to Running and Status Checks is “2/2 checks passed”, login to the instance via the public hostname provided.&lt;br /&gt;
** Now you can SSH into the machine using your key-pair and '''ec2-user''' as the user name:&lt;br /&gt;
***  &amp;lt;code&amp;gt;ssh -i yourkey_pair ec2-user@{amazon public domain name}&amp;lt;/code&amp;gt;&lt;br /&gt;
** The domain name can be retrieved by clicking on the instance and looking at the details that appear at the bottom of the screen. It should look similar to this but with a different set of numbers in the subdomain: ec2-10-0-0-1.us-west-1.compute.amazonaws.com&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12430</id>
		<title>Category:NCBO Virtual Appliance</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12430"/>
		<updated>2012-08-30T19:19:44Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Basic System Administration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The NCBO Virtual Appliance image contains a pre-installed, pre-configured version of commonly-used open source NCBO software running on a Linux operating system. The image was created using VMWare and is available for download by contacting support@bioontology.org.&lt;br /&gt;
&lt;br /&gt;
The following software is included on the image:&lt;br /&gt;
* BioPortal Ontology Services (BioPortal Core)&lt;br /&gt;
* BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* BioPortal Admin (a UI for administering BioPortal Ontology Services)&lt;br /&gt;
* Annotator&lt;br /&gt;
* Resource Index&lt;br /&gt;
&lt;br /&gt;
Please see below for how-to documentation for managing the software and running data population for Annotator and Resource Index.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* To obtain the Virtual Appliance, contact [mailto:support@bioontology.org NCBO Support]&lt;br /&gt;
* The download is provided as a tar archive containing several files. One of these is an Open Virtualization Format (OVF) file that may need to be [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#How_can_I_use_the_OVF_image_with_my_virtualization_software.3F_.28VMWare.2C_VirtualBox.2C_KVM.2C_Xen.2C_etc.29 converted to work in your virtualization environment].&lt;br /&gt;
* You can supply the hostname (machine name) for the virtual machine during the deployment process. Documentation will refer as this hostname as 'example'.&lt;br /&gt;
* '''Change default passwords'''&lt;br /&gt;
** Operating System&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: password is prompted on the first boot&lt;br /&gt;
** BioPortal Admin User&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: &amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add an ontology using the BioPortal Admin User here: http://{YourDomainName}/ontologies/new&lt;br /&gt;
** BioPortal Ontology Services can be configured to automatically process new ontologies every hour at 30 minutes past the hour (see [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#When_are_new_ontologies_parsed.3F documentation for enabling the scheduler]). This processing includes:&lt;br /&gt;
*** Parsing any new, unparsed ontologies&lt;br /&gt;
*** Calculating a set of metrics for these ontologies&lt;br /&gt;
*** Indexing these ontologies for use with search&lt;br /&gt;
* Parsing, indexing, metrics calculation, and ontology deletion can all be manually triggered or re-triggered using the BioPortal Admin user interface, which is available here: http://example:8080/bioportal_admin&lt;br /&gt;
* REST services are available at the following locations. The URLs below are for the root of the REST service and generally will not return information. Please read the documentation for guidelines on how to interact with the services, including sample URLs:&lt;br /&gt;
** BioPortal Ontology Services - http://example:8080/bioportal ([http://www.bioontology.org/wiki/index.php/BioPortal_REST_services documentation])&lt;br /&gt;
** Annotator - http://example:8080/obs/annotator ([http://www.bioontology.org/wiki/index.php/Annotator_User_Guide documentation])&lt;br /&gt;
** Resource Index - http://example:8080/resource_index ([http://www.bioontology.org/wiki/index.php/Resource_Index_REST_Web_Service_User_Guide documentation])&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
The following requirements are for the resources that you devote to your Appliance instance, not for the machine running your host environment. For example, if you are using a system with 4GB of RAM, then you will need to devote all of that RAM to your guest Appliance.&lt;br /&gt;
&lt;br /&gt;
'''Note: these requirements are for basic usage'''. System requirements will vary greatly depending on the size of the ontologies you work with, the number of ontologies in the system, and the number of concurrent requests that the system needs to respond to. It can also vary depending on how the ontologies are used. For example, the search index can be RAM-intensive but parsing ontologies can be CPU-intensive. You will need to experiment with your Appliance resource settings to find what works for your scenario.&lt;br /&gt;
&lt;br /&gt;
* Minimum&lt;br /&gt;
** 1 CPU (2 GHz)&lt;br /&gt;
** 4GB RAM&lt;br /&gt;
** Hard disk space: 3GB&lt;br /&gt;
&lt;br /&gt;
* Recommended for heavier usage&lt;br /&gt;
** 2 CPU (3 GHz)&lt;br /&gt;
** 6GB RAM (When using more than 4GB RAM, you should configure Tomcat to use the additional memory)&lt;br /&gt;
** Hard disk space: 10GB (or more depending on number/size of ontologies)&lt;br /&gt;
&lt;br /&gt;
== Population Workflows ==&lt;br /&gt;
When storing an ontology using the BioPortal Ontology Services, some amount of processing is done automatically so that the ontologies can be visualized using the Web UI. However, the Annotator and Resource Index require separate, manual data population workflows in order to function with the provided ontologies. Details on running these populations can be found in the &amp;quot;Howto&amp;quot; sections located at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: Loading ontologies [1] developed using the NCI version of Protege will require an additional manual pre-processing step to remove XML tags added into the synonym and definition property values. This pre-processing step is especially important for populating the correct synonym value into the Annotator workflow. The code to pre-process ontologies developed using the NCI version of Protege is located at:&lt;br /&gt;
https://bmir-gforge.stanford.edu/gf/project/bp_helper_tools/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2FNCItProcessor%2F, the code can be checked out via anonymous SVN. &lt;br /&gt;
&lt;br /&gt;
[1] The NCI Thesaurus and the NanoParticle Ontology are developed using the NCI version of Protege&lt;br /&gt;
&lt;br /&gt;
== Image Format and Operating System Details ==&lt;br /&gt;
The NCBO Appliance image was created using the [http://www.vmware.com/appliances/getting-started/learn/ovf.html Open Virtualization Format], which should allow the machine to be used in a variety of environments.&lt;br /&gt;
&lt;br /&gt;
The operating system is CentOS 5.7 64-bit running Tomcat 6.0.26, Java 6, MySQL 5.1.x, PHP 5.1.6, Rails 2.3.x, and Ruby Enterprise Edition 1.8.7, and memcached.&lt;br /&gt;
&lt;br /&gt;
The following applications use these services/runtime environments:&lt;br /&gt;
* Tomcat, Java&lt;br /&gt;
** BioPortal Ontology Services (BioPortal Core)&lt;br /&gt;
** BioPortal Admin (a UI for administering BioPortal Ontology Services)&lt;br /&gt;
** Annotator and Recommender&lt;br /&gt;
** Resource Index&lt;br /&gt;
* Rails, Ruby, memcached&lt;br /&gt;
** BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* PHP&lt;br /&gt;
** Resource Index UI&lt;br /&gt;
* 4store&lt;br /&gt;
** Mappings&lt;br /&gt;
&lt;br /&gt;
== Basic System Administration ==&lt;br /&gt;
* Most of our administration scripts and build environment assume that you will be running as the root user.&lt;br /&gt;
* Helper commands:&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostart&amp;lt;/code&amp;gt;: the required services are started on boot automatically, but if they need to be started automatically&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostop&amp;lt;/code&amp;gt;: manually stop services&lt;br /&gt;
** &amp;lt;code&amp;gt;ncborestart&amp;lt;/code&amp;gt;: manually start/stop services&lt;br /&gt;
* Start individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4store start&amp;lt;/code&amp;gt;&lt;br /&gt;
* Stop individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service 4store stop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
All NCBO software is released with the 2-clause BSD license. Source code is included on the Virtual Appliance.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12429</id>
		<title>Category:NCBO Virtual Appliance</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Category:NCBO_Virtual_Appliance&amp;diff=12429"/>
		<updated>2012-08-30T19:18:35Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Image Format and Operating System Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The NCBO Virtual Appliance image contains a pre-installed, pre-configured version of commonly-used open source NCBO software running on a Linux operating system. The image was created using VMWare and is available for download by contacting support@bioontology.org.&lt;br /&gt;
&lt;br /&gt;
The following software is included on the image:&lt;br /&gt;
* BioPortal Ontology Services (BioPortal Core)&lt;br /&gt;
* BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* BioPortal Admin (a UI for administering BioPortal Ontology Services)&lt;br /&gt;
* Annotator&lt;br /&gt;
* Resource Index&lt;br /&gt;
&lt;br /&gt;
Please see below for how-to documentation for managing the software and running data population for Annotator and Resource Index.&lt;br /&gt;
&lt;br /&gt;
== Getting Started ==&lt;br /&gt;
* To obtain the Virtual Appliance, contact [mailto:support@bioontology.org NCBO Support]&lt;br /&gt;
* The download is provided as a tar archive containing several files. One of these is an Open Virtualization Format (OVF) file that may need to be [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#How_can_I_use_the_OVF_image_with_my_virtualization_software.3F_.28VMWare.2C_VirtualBox.2C_KVM.2C_Xen.2C_etc.29 converted to work in your virtualization environment].&lt;br /&gt;
* You can supply the hostname (machine name) for the virtual machine during the deployment process. Documentation will refer as this hostname as 'example'.&lt;br /&gt;
* '''Change default passwords'''&lt;br /&gt;
** Operating System&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: password is prompted on the first boot&lt;br /&gt;
** BioPortal Admin User&lt;br /&gt;
*** Username: &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt;&lt;br /&gt;
*** Password: &amp;lt;code&amp;gt;changeme&amp;lt;/code&amp;gt;&lt;br /&gt;
* Add an ontology using the BioPortal Admin User here: http://{YourDomainName}/ontologies/new&lt;br /&gt;
** BioPortal Ontology Services can be configured to automatically process new ontologies every hour at 30 minutes past the hour (see [http://www.bioontology.org/wiki/index.php/Virtual_Appliance_FAQ#When_are_new_ontologies_parsed.3F documentation for enabling the scheduler]). This processing includes:&lt;br /&gt;
*** Parsing any new, unparsed ontologies&lt;br /&gt;
*** Calculating a set of metrics for these ontologies&lt;br /&gt;
*** Indexing these ontologies for use with search&lt;br /&gt;
* Parsing, indexing, metrics calculation, and ontology deletion can all be manually triggered or re-triggered using the BioPortal Admin user interface, which is available here: http://example:8080/bioportal_admin&lt;br /&gt;
* REST services are available at the following locations. The URLs below are for the root of the REST service and generally will not return information. Please read the documentation for guidelines on how to interact with the services, including sample URLs:&lt;br /&gt;
** BioPortal Ontology Services - http://example:8080/bioportal ([http://www.bioontology.org/wiki/index.php/BioPortal_REST_services documentation])&lt;br /&gt;
** Annotator - http://example:8080/obs/annotator ([http://www.bioontology.org/wiki/index.php/Annotator_User_Guide documentation])&lt;br /&gt;
** Resource Index - http://example:8080/resource_index ([http://www.bioontology.org/wiki/index.php/Resource_Index_REST_Web_Service_User_Guide documentation])&lt;br /&gt;
&lt;br /&gt;
== System Requirements ==&lt;br /&gt;
The following requirements are for the resources that you devote to your Appliance instance, not for the machine running your host environment. For example, if you are using a system with 4GB of RAM, then you will need to devote all of that RAM to your guest Appliance.&lt;br /&gt;
&lt;br /&gt;
'''Note: these requirements are for basic usage'''. System requirements will vary greatly depending on the size of the ontologies you work with, the number of ontologies in the system, and the number of concurrent requests that the system needs to respond to. It can also vary depending on how the ontologies are used. For example, the search index can be RAM-intensive but parsing ontologies can be CPU-intensive. You will need to experiment with your Appliance resource settings to find what works for your scenario.&lt;br /&gt;
&lt;br /&gt;
* Minimum&lt;br /&gt;
** 1 CPU (2 GHz)&lt;br /&gt;
** 4GB RAM&lt;br /&gt;
** Hard disk space: 3GB&lt;br /&gt;
&lt;br /&gt;
* Recommended for heavier usage&lt;br /&gt;
** 2 CPU (3 GHz)&lt;br /&gt;
** 6GB RAM (When using more than 4GB RAM, you should configure Tomcat to use the additional memory)&lt;br /&gt;
** Hard disk space: 10GB (or more depending on number/size of ontologies)&lt;br /&gt;
&lt;br /&gt;
== Population Workflows ==&lt;br /&gt;
When storing an ontology using the BioPortal Ontology Services, some amount of processing is done automatically so that the ontologies can be visualized using the Web UI. However, the Annotator and Resource Index require separate, manual data population workflows in order to function with the provided ontologies. Details on running these populations can be found in the &amp;quot;Howto&amp;quot; sections located at the bottom of this page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NOTE: Loading ontologies [1] developed using the NCI version of Protege will require an additional manual pre-processing step to remove XML tags added into the synonym and definition property values. This pre-processing step is especially important for populating the correct synonym value into the Annotator workflow. The code to pre-process ontologies developed using the NCI version of Protege is located at:&lt;br /&gt;
https://bmir-gforge.stanford.edu/gf/project/bp_helper_tools/scmsvn/?action=browse&amp;amp;path=%2Ftrunk%2FNCItProcessor%2F, the code can be checked out via anonymous SVN. &lt;br /&gt;
&lt;br /&gt;
[1] The NCI Thesaurus and the NanoParticle Ontology are developed using the NCI version of Protege&lt;br /&gt;
&lt;br /&gt;
== Image Format and Operating System Details ==&lt;br /&gt;
The NCBO Appliance image was created using the [http://www.vmware.com/appliances/getting-started/learn/ovf.html Open Virtualization Format], which should allow the machine to be used in a variety of environments.&lt;br /&gt;
&lt;br /&gt;
The operating system is CentOS 5.7 64-bit running Tomcat 6.0.26, Java 6, MySQL 5.1.x, PHP 5.1.6, Rails 2.3.x, and Ruby Enterprise Edition 1.8.7, and memcached.&lt;br /&gt;
&lt;br /&gt;
The following applications use these services/runtime environments:&lt;br /&gt;
* Tomcat, Java&lt;br /&gt;
** BioPortal Ontology Services (BioPortal Core)&lt;br /&gt;
** BioPortal Admin (a UI for administering BioPortal Ontology Services)&lt;br /&gt;
** Annotator and Recommender&lt;br /&gt;
** Resource Index&lt;br /&gt;
* Rails, Ruby, memcached&lt;br /&gt;
** BioPortal Web User Interface (including ontology visualization, Flex widgets, Annotator and Resource Index UIs)&lt;br /&gt;
* PHP&lt;br /&gt;
** Resource Index UI&lt;br /&gt;
* 4store&lt;br /&gt;
** Mappings&lt;br /&gt;
&lt;br /&gt;
== Basic System Administration ==&lt;br /&gt;
* Most of our administration scripts and build environment assume that you will be running as the root user.&lt;br /&gt;
* Helper commands:&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostart&amp;lt;/code&amp;gt;: the required services are started on boot automatically, but if they need to be started automatically&lt;br /&gt;
** &amp;lt;code&amp;gt;ncbostop&amp;lt;/code&amp;gt;: manually stop services&lt;br /&gt;
** &amp;lt;code&amp;gt;ncborestart&amp;lt;/code&amp;gt;: manually start/stop services&lt;br /&gt;
* Start individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep start&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service virtuoso start&amp;lt;/code&amp;gt;&lt;br /&gt;
* Stop individual services:&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service httpd stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service memcached stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service tomcat6 stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service mgrep stop&amp;lt;/code&amp;gt;&lt;br /&gt;
** &amp;lt;code&amp;gt;/sbin/service virtuoso stop&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
All NCBO software is released with the 2-clause BSD license. Source code is included on the Virtual Appliance.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=BioPortal_Help&amp;diff=12387</id>
		<title>BioPortal Help</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=BioPortal_Help&amp;diff=12387"/>
		<updated>2012-07-11T00:19:39Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Glossary */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== User Interface ==&lt;br /&gt;
=== Home Page ===&lt;br /&gt;
&lt;br /&gt;
BioPortal provides access to commonly used biomedical ontologies and to tools for working with them. BioPortal allows you to &lt;br /&gt;
* [[#Browse Tab|browse the library]] of ontologies&lt;br /&gt;
* [[#Search Tab|search for a term]] across multiple ontologies&lt;br /&gt;
* [[#Mappings Tab|browse mappings]] between terms in different ontologies&lt;br /&gt;
* [[#Recommender Tab|receive recommendations]] on which ontologies are most relevant for a corpus&lt;br /&gt;
* [[#Annotator Tab|annotate text]] with terms from ontologies&lt;br /&gt;
* [[#Resource Index Tab|search biomedical resources]] for a term&lt;br /&gt;
* [[#Projects Tab|browse a selection of projects]] that use BioPortal resources&lt;br /&gt;
&lt;br /&gt;
All information available through the BioPortal Web site is also available through the NCBO Web service REST API. Please see [http://www.bioontology.org/wiki/index.php/NCBO_REST_services REST API documentation] for more information.&lt;br /&gt;
&lt;br /&gt;
=== Browse Tab ===&lt;br /&gt;
&lt;br /&gt;
Browse our library of Biomedical ontologies and submit your own ontology. This page displays some summary information about each ontology. More detailed summary information is available on the ontology summary page for each ontology. You can reach this page by clicking on the ontology name link.&lt;br /&gt;
&lt;br /&gt;
To '''find a particular ontology quickly''', begin typing the ontology name or abbreviation in the “Filter by Text” field.  You can also narrow the list of ontologies shown by selecting a specific “category” (a domain) or a “group” to which the ontology belongs. To '''submit an ontology''' press the “Submit New Ontology” button. You must be logged in to BioPortal to submit an ontology. You can subscribe to '''receive RSS updates''' when any ontology in the system changes by clicking the subscribe link. You can subscribe to updates for a particular ontology from the summary page for that ontology. To go to the summary page click on the ontology name link.&lt;br /&gt;
&lt;br /&gt;
Some submitters want to control who can browse the terms in their ontology. These ontologies are marked with visibility “Private” or “Licensed”. To browse the terms in these ontologies you must be both &lt;br /&gt;
* logged in to BioPortal&lt;br /&gt;
* granted access to the ontology&lt;br /&gt;
For '''private ontologies''', the ontology submitter directly controls access to the ontology. Please contact the submitter to gain access to a private ontology. Contact information for the ontology is available on the ontology summary page. For '''licensed ontologies''', the submitter indirectly controls access to the ontology. When you attempt to access a licensed ontology, the system will prompt you to enter the license information required by the submitter. When you have entered the required information, the system will allow you to access the ontology. In addition, there are '''&amp;quot;summary only&amp;quot; ontologies'''. The terms for these ontologies are not available in BioPortal at all. Please contact the ontology submitter for more information about these ontologies.&lt;br /&gt;
&lt;br /&gt;
To '''access ontologies programmatically''', see our [http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Services_to_access_ontologies_and_ontology_versions Ontology REST API documentation].&lt;br /&gt;
&lt;br /&gt;
=== Search Tab ===&lt;br /&gt;
&lt;br /&gt;
Enter text and find terms across multiple terminologies that contain this text. The names, ids, synonyms, properties for a term are searched for matches to the entered text.&lt;br /&gt;
&lt;br /&gt;
To '''find a term in any ontology''' enter the full or partial name the term in the search box and simply hit the Search button. The system looks for matches in the term name, synonyms, term ids, and in property values. You can filter the returned values by ontology or by the type of match by selecting one of the filter links in the output table. If you want to '''search only in a subset of ontologies''' you can specify the desired ontologies in the Ontologies box. (Note that it is no faster to search a subset than to search all ontologies.) Simply type the ontology name or acronym to chose the desired ontology. You can also select a set of ontologies from a list of all ontologies using the “select from list” link. &lt;br /&gt;
&lt;br /&gt;
Note that, for performance reasons, only the top 100 matches are returned. Usually this number is sufficient to cover matches in all names, ids, and synonyms.&lt;br /&gt;
&lt;br /&gt;
Some boolean search capability is available. Prefixing a term with &amp;quot;-&amp;quot; means NOT for that term. Thus &amp;quot;heart -attack&amp;quot; will search for terms with &amp;quot;heart&amp;quot; but not &amp;quot;attack&amp;quot; in the name. An OR capability is also available using parentheses. Thus &amp;quot;(heart attack)&amp;quot; means to find terms with either &amp;quot;heart&amp;quot; or &amp;quot;attack&amp;quot; in the name.&lt;br /&gt;
&lt;br /&gt;
To '''search programmatically''' see our [http://www.bioontology.org/wiki/index.php/NCBO_REST_services#Search_services Search REST API documentation].&lt;br /&gt;
&lt;br /&gt;
=== Mappings Tab ===&lt;br /&gt;
&lt;br /&gt;
Mappings are associations between two or more terms in different ontologies. This association typically, but not always, represents a degree of similarity between the terms. The author of the mapping defines the semantics of a particular mapping. It is also usual for a mapping to be bi-directional, but again, this is not required. The mapping author defines directionality (for details, please see our [http://www.bioontology.org/wiki/index.php/BioPortal_Mappings Mapping Documentation]).&lt;br /&gt;
&lt;br /&gt;
To '''browse mappings''' for an ontology, select the ontology from the drop-down list. You will then see a table showing all ontologies for which at least one mapping exists between that ontology and the ontology you selected. Select an ontology from this table to browse the mappings between the two ontologies.&lt;br /&gt;
&lt;br /&gt;
To '''access mappings programmatically''', please see our [http://www.bioontology.org/wiki/index.php/BioPortal_Mappings_Service Mappings REST API documentation].&lt;br /&gt;
&lt;br /&gt;
=== Recommender Tab ===&lt;br /&gt;
&lt;br /&gt;
The Recommender accepts text or a set of keywords describing a domain of interest; it then suggests appropriate ontologies to use if you want to identify terms in similar text. &lt;br /&gt;
&lt;br /&gt;
The '''ontology ranking algorithm''' is described in the paper [http://www.ncbi.nlm.nih.gov/pubmed/20626921 Jonquet et al J Biomed Semantics. 2010 Jun 22;1 Suppl 1:S1].&lt;br /&gt;
&lt;br /&gt;
To '''retrieve ontology recommendations programmatically''', please see our [http://www.bioontology.org/wiki/index.php/Ontology_Recommender_Web_service Ontology Recommender REST API documentation].&lt;br /&gt;
&lt;br /&gt;
=== Annotator Tab ===&lt;br /&gt;
&lt;br /&gt;
To '''generate annotations for text''', simply enter text in the box and press the submit button. The system matches words in the text to terms in ontologies by doing an exact string comparison (a “direct” match) between the text and ontology term names, synonyms, and ids. &lt;br /&gt;
&lt;br /&gt;
In addition to the direct matches, the user may '''expand the set of matches''' by including matches from mapped terms and from hierarchical expansion. For most ontologies (OWL and UMLS RRF) the system performs the hierarchical expansion on the superclass (“is-a”) relationship. For OBO ontologies the hierarchical expansion also includes the part-of relationship.  You use the “number of levels” field to control the number of levels up the hierarchy for which the system will return terms for a given match.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To '''generate annotations programmatically''' see the [http://www.bioontology.org/wiki/index.php/Annotator_User_Guide REST API documentation].&lt;br /&gt;
&lt;br /&gt;
Further information about the workings of the Annotator is available at [http://www.ncbi.nlm.nih.gov/pubmed/19761568 Shah et al BMC Bioinformatics. 2009 Sep 17;10 Suppl 9:S14]&lt;br /&gt;
&lt;br /&gt;
=== Resource Index Tab ===&lt;br /&gt;
&lt;br /&gt;
The resource index is a pre-calculated set of annotations of selected biomedical resources. We have used the Annotator web service to annotate these resources with all terms in all ontologies in BioPortal. To retrieve records annotated with a specific ontology term, select the term in the search box and press the &amp;quot;Search&amp;quot; button.  &lt;br /&gt;
&lt;br /&gt;
To '''access annotations for resources programmatically''', please see our [http://www.bioontology.org/wiki/index.php/Resource_Index_REST_Web_Service_User_Guide Resource Index REST API documentation].&lt;br /&gt;
&lt;br /&gt;
Further information on ontology-based search and mining of biomedical resources is available in [http://www.ncbi.nlm.nih.gov/pubmed/21918645 Jonquet et al Web Semant. 2011 Sep 1;9(3):316-324], [http://www.ncbi.nlm.nih.gov/pubmed/21550421 LePendu et al J Biomed Inform. 2011 Dec;44 Suppl 1:S31-8] and [http://www.ncbi.nlm.nih.gov/pubmed/22494789 Liu et al J Am Med Inform Assoc. 2012 Apr 11]&lt;br /&gt;
&lt;br /&gt;
=== Projects Tab ===&lt;br /&gt;
&lt;br /&gt;
This page shows selected projects which make use of BioPortal technology. To '''add your project''' to this list press the &amp;quot;Create New Project&amp;quot; button. You must be logged in to BioPortal to create a new project.&lt;br /&gt;
&lt;br /&gt;
== Common Tasks ==&lt;br /&gt;
&lt;br /&gt;
=== Submitting an ontology ===&lt;br /&gt;
Go to the &amp;quot;Browse&amp;quot; page and press the &amp;quot;Submit Ontology&amp;quot; button near the top of the page.&lt;br /&gt;
&lt;br /&gt;
=== Viewing and editing mappings ===&lt;br /&gt;
To view all mappings for an ontology, chose the ontology from the Browse page and then select &amp;quot;Mappings&amp;quot; from the drop-down list.&lt;br /&gt;
&lt;br /&gt;
To view the notes for a particular term, navigate to the ontology and term (using the &amp;quot;Browse&amp;quot; tab and select the terms item from the dropdown) and then select the &amp;quot;Mappings&amp;quot; tab in the right-hand panel.&lt;br /&gt;
&lt;br /&gt;
=== Viewing and editing notes ===&lt;br /&gt;
To view all notes for an ontology, chose the ontology from the Browse page and then select &amp;quot;Notes&amp;quot; from the drop-down list.&lt;br /&gt;
&lt;br /&gt;
To view the notes for a particular term, navigate to the ontology and term (using the &amp;quot;Browse&amp;quot; tab and select the terms item from the dropdown) and then select the &amp;quot;Notes&amp;quot; tab in the right-hand panel.&lt;br /&gt;
&lt;br /&gt;
=== Viewing and editing reviews ===&lt;br /&gt;
Navigate to the ontology summary page by selecting the ontology name from the Browse tab. Create a review by pressing the &amp;quot;Create Review&amp;quot; button near the top of the page.&lt;br /&gt;
&lt;br /&gt;
== Glossary ==&lt;br /&gt;
; &amp;lt;span id=&amp;quot;glossary_class&amp;quot;&amp;gt;class&amp;lt;/span&amp;gt;: A concept in the domain of the ontology. Used within BioPortal, class is a synonym for term or concept. Term is the preferred BioPortal label.&lt;br /&gt;
; concept: (from SKOS documentation) A concept is an idea or notion; a unit of thought. &lt;br /&gt;
; CUI:  Abbreviation for &amp;quot;Concept Unique Identifier&amp;quot;. These values that are assigned by UMLS for all terms in its ontologies. A CUI represents a &amp;quot;UMLS concept&amp;quot;. An ontology term may be assigned to more than one CUI. The assignment of terms to CUI is intended to allow the creation of maps between terms in different ontologies.  &lt;br /&gt;
; deprecated term: synonym for &amp;quot;obsolete term&amp;quot; in some ontologies.&lt;br /&gt;
; group: a collection of ontologies that are typically associated with some outside group or organization. &lt;br /&gt;
; &amp;lt;span id=&amp;quot;glossary_obsolete_term&amp;quot;&amp;gt;obsolete term&amp;lt;/span&amp;gt;: A term that the authors of the ontology have flagged as being &amp;quot;obsolete&amp;quot; and which they recommend that people not use. These terms are often left in ontologies (rather than removing them entirely) so that existing systems that depend on them will continue to function.&lt;br /&gt;
; mapping: Asserted relationship between two terms in different ontologies. The nature of the exact relationship is left to the mapping author. The most common relationship for mappings between terms is &amp;quot;same as&amp;quot;.&lt;br /&gt;
; preferred name : Human readable label for a term that the authors of the ontology suggest be used when referring to the term. Alternate, non-preferred, names are synonyms.&lt;br /&gt;
; &amp;lt;span id=&amp;quot;glossary_property&amp;quot;&amp;gt;property&amp;lt;/span&amp;gt;: Named association between two entities. Examples are &amp;quot;definition&amp;quot; (a relation between a term and some text) and &amp;quot;part-of&amp;quot; (a relation between two terms). &lt;br /&gt;
; resource: Biomedical resource (publication, database) that has been indexed with the ontologies in BioPortal.&lt;br /&gt;
; &amp;lt;span id=&amp;quot;slice_definition&amp;quot;&amp;gt;slice&amp;lt;/span&amp;gt;: An alternate entry point into BioPortal which has been configured to display and use a subset of the available ontologies. The slice is accessed via URL of the form http://&amp;lt;slice-name&amp;gt;.bioportal.bioontology.org . There is currently no way for an end user to create or configure slice. However, you may send a request to support@bioontology.org and request that a new slice be created for you.&lt;br /&gt;
; synonym: Alternate name for a term. Every term has a single &amp;quot;preferred&amp;quot; name and may have any number of synonyms.&lt;br /&gt;
; term: Concept in the domain of the ontology. Within BioPortal, term is a synonym for class or concept. Term is the preferred label.&lt;br /&gt;
; term mappings: Set of mappings for a given term to terms other ontologies. &lt;br /&gt;
; term resources: Set of resources that contain annotations for a given term.&lt;br /&gt;
&lt;br /&gt;
== How to cite NCBO and BioPortal ==&lt;br /&gt;
Noy NF, Shah NH, Whetzel PL, Dai B, Dorf M, Griffith N, Jonquet C, Rubin DL, Storey MA, Chute CG, Musen MA. BioPortal: ontologies and integrated data resources at the click of a mouse. Nucleic Acids Res. 2009 Jul 1;37(Web Server issue):W170-3. Epub 2009 May 29. PubMed PMID: 19483092; PubMed Central PMCID: PMC2703982.&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Ontology_Notes&amp;diff=12344</id>
		<title>Ontology Notes</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Ontology_Notes&amp;diff=12344"/>
		<updated>2012-06-15T18:56:22Z</updated>

		<summary type="html">&lt;p&gt;Palexand: /* Creating a 'New Term Proposal' proposal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BioPortal uses Notes to describe a variety of user-specified comments and metadata for an ontology, including new term proposals, requests for changes, comments and questions. &lt;br /&gt;
&lt;br /&gt;
The prefix for all production service URLs in the table below is http://rest.bioontology.org/bioportal&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO REST Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
== Types of notes in BioPortal ==&lt;br /&gt;
The following are the types of notes in BioPortal. Please, email us at [mailto:support@bioontology.org support@bioontology.org] if you have suggestions for other note types (or specific parameters for the notes).&lt;br /&gt;
&lt;br /&gt;
* Basic comments (as they are in BioPortal currently)&lt;br /&gt;
* Proposals &lt;br /&gt;
** New term proposal&lt;br /&gt;
*** PrefName&lt;br /&gt;
*** Synonym&lt;br /&gt;
*** Definition&lt;br /&gt;
*** Superclass&lt;br /&gt;
*** Comment&lt;br /&gt;
** New relationship proposal&lt;br /&gt;
*** Relationship type: is-a, part-of&lt;br /&gt;
*** Relationship target&lt;br /&gt;
** New attribute value proposal&lt;br /&gt;
*** Attribute: documentation, definition, etc.&lt;br /&gt;
*** New value&lt;br /&gt;
*** Flag: replaces the current value (which one, in case of multiple values) or in addition to the current value(s)&lt;br /&gt;
*** (future implementation) Special kind of new attribute value proposal: Assigning UMLS semantic type &lt;br /&gt;
**** Semantic type&lt;br /&gt;
**** Semantic typeID&lt;br /&gt;
&lt;br /&gt;
* (future implementation) Structured annotations with user-defined structure&lt;br /&gt;
* (future implementation) Usage-guideline notes&lt;br /&gt;
&lt;br /&gt;
== Web services to access and generate notes ==&lt;br /&gt;
If you have specific requirements that the list of services below does not satisfy, please contact us at [mailto:support@bioontology.org support@bioontology.org]&lt;br /&gt;
&lt;br /&gt;
=== Get notes for an ontology by version id ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./notes/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/notes/44450?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all notes for a specific version of the ontology &lt;br /&gt;
* '''Optional arguments:'''&lt;br /&gt;
** conceptid={conceptid} - returns notes associated with the given term.&lt;br /&gt;
** instanceid={instanceid} - returns notes associated with the given instance (individual).&lt;br /&gt;
** noteid={noteid} - returns notes associated with the given note id.&lt;br /&gt;
** threaded=[true|false] - returns notes in a threaded format where responses are nested in their parent notes. Default is false.&lt;br /&gt;
** Planned (not yet implemented):&lt;br /&gt;
*** notetype={notetype} - returns only the notes of the specific type.&lt;br /&gt;
*** includearchived=[true|false] - include archived notes. Default is false.&lt;br /&gt;
&lt;br /&gt;
=== Get notes for an ontology by virtual id ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/notes/{ontology virtual id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/notes/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all notes for the virtual ontology, i.e., all notes associated with any version of this ontology &lt;br /&gt;
* '''Optional arguments:'''&lt;br /&gt;
** conceptid={conceptid} - returns notes associated with the given term.&lt;br /&gt;
** instanceid={instanceid} - returns notes associated with the given instance (individual).&lt;br /&gt;
** noteid={noteid} - returns notes associated with the given note id.&lt;br /&gt;
** threaded=[true|false] - returns notes in a threaded format where responses are nested in their parent notes. Default is false.&lt;br /&gt;
** Planned (not yet implemented):&lt;br /&gt;
*** notetype={notetype} - returns only the notes of the specific type.&lt;br /&gt;
*** includearchived=[true|false] - include archived notes. Default is false.&lt;br /&gt;
&lt;br /&gt;
=== Sample of the XML returned for a note ===&lt;br /&gt;
&lt;br /&gt;
==== Possible Values ====&lt;br /&gt;
Some elements have a range of possible returned values.&lt;br /&gt;
* appliesTo/type: Ontology|Class|Individual|Property|Note&lt;br /&gt;
* noteBean/type: Comment|ProposalForCreateEntity|ProposalForChangeHierarchy|ProposalForPropertyValueChange&lt;br /&gt;
** Notes with types other than Comment will have an element in noteBean/values that matches the noteBean/type. This contains information specific to these Notes types.&lt;br /&gt;
&lt;br /&gt;
==== A single 'Comment' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 13:02:57.418 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272070868364&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272070868250&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;I note that clinical data is specifically defined not to include clinical trial data. So is anyone already thinking about where at a high level subtrees might be added to deal with clinical trial data and clinical trial management systems? Or is it premature to do that? This is for the CTSAs.&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'New Term Proposal' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:13:24.407 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_f8bb4dc0-10b3-48b9-ab69-79aed042c0ff&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;ProposalForCreateEntity&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272319359680&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272319377224&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Test Proposal Reply&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;Testing new term submission&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Ontology&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;values&amp;gt;&lt;br /&gt;
          &amp;lt;ProposalForCreateEntity&amp;gt;&lt;br /&gt;
            &amp;lt;reasonForChange&amp;gt;Bad data&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
            &amp;lt;contactInfo&amp;gt;palexander@stanford.edu&amp;lt;/contactInfo&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;TERM_1100&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;New Term&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;definition&amp;gt;Test new definition&amp;lt;/definition&amp;gt;&lt;br /&gt;
            &amp;lt;synonyms&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;best term&amp;lt;/string&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;amazing term&amp;lt;/string&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;great term&amp;lt;/string&amp;gt;&lt;br /&gt;
            &amp;lt;/synonyms&amp;gt;&lt;br /&gt;
            &amp;lt;parent&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;http://www.owl-ontologies.com/2009/9/24/Ontology1253802770.owl#Summary&amp;lt;/string&amp;gt;&lt;br /&gt;
            &amp;lt;/parent&amp;gt;&lt;br /&gt;
          &amp;lt;/ProposalForCreateEntity&amp;gt;&lt;br /&gt;
        &amp;lt;/values&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'Change Relationship/Hierarchy Proposal' note ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:21:52.474 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;noteBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;Note_b4e749c8-5ca7-414f-a123-acd16ba656fe&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;ProposalForChangeHierarchy&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
      &amp;lt;created&amp;gt;1272331290991&amp;lt;/created&amp;gt;&lt;br /&gt;
      &amp;lt;updated&amp;gt;1272331295114&amp;lt;/updated&amp;gt;&lt;br /&gt;
      &amp;lt;subject&amp;gt;Change Relationship&amp;lt;/subject&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;Testing change hierarchy&amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
          &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;values&amp;gt;&lt;br /&gt;
        &amp;lt;ProposalForChangeHierarchy&amp;gt;&lt;br /&gt;
          &amp;lt;reasonForChange&amp;gt;Incorrect data&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
          &amp;lt;contactInfo&amp;gt;palexander@stanford.edu/contactInfo&amp;gt;&lt;br /&gt;
          &amp;lt;relationshipTarget&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/relationshipTarget&amp;gt;&lt;br /&gt;
          &amp;lt;oldRelationshipTarget&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;isa&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/oldRelationshipTarget&amp;gt;&lt;br /&gt;
        &amp;lt;/ProposalForChangeHierarchy&amp;gt;&lt;br /&gt;
      &amp;lt;/values&amp;gt;&lt;br /&gt;
    &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'Property Value Change Proposal' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:25:30.465 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;noteBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;Note_8cfde654-2c2c-42e3-8187-0f6c05c6deff&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;ProposalForPropertyValueChange&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
      &amp;lt;created&amp;gt;1272331520036&amp;lt;/created&amp;gt;&lt;br /&gt;
      &amp;lt;updated&amp;gt;1272331522822&amp;lt;/updated&amp;gt;&lt;br /&gt;
      &amp;lt;subject&amp;gt;Tet Property Value Change&amp;lt;/subject&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;Testing a proposal to change a property value&amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
          &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;values&amp;gt;&lt;br /&gt;
        &amp;lt;ProposalForPropertyValueChange&amp;gt;&lt;br /&gt;
          &amp;lt;reasonForChange&amp;gt;The value was entered incorrectly initially&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
          &amp;lt;contactInfo&amp;gt;palexander@stanford.edu&amp;lt;/contactInfo&amp;gt;&lt;br /&gt;
          &amp;lt;newValue&amp;gt;200&amp;lt;/newValue&amp;gt;&lt;br /&gt;
          &amp;lt;oldValue&amp;gt;100&amp;lt;/oldValue&amp;gt;&lt;br /&gt;
          &amp;lt;propertyId&amp;gt;Cell_Count&amp;lt;/propertyId&amp;gt;&lt;br /&gt;
        &amp;lt;/ProposalForPropertyValueChange&amp;gt;&lt;br /&gt;
      &amp;lt;/values&amp;gt;&lt;br /&gt;
    &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A nested thread of 'Comment' notes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 13:21:28.104 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272070868364&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272070868250&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;I note that clinical data is specifically defined not to include clinical trial data. So is anyone already thinking about where at a high level subtrees might be added to deal with clinical trial data and clinical trial management systems? Or is it premature to do that? This is for the CTSAs.&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;associated&amp;gt;&lt;br /&gt;
          &amp;lt;noteBean&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
            &amp;lt;author&amp;gt;38144&amp;lt;/author&amp;gt;&lt;br /&gt;
            &amp;lt;created&amp;gt;1272070984380&amp;lt;/created&amp;gt;&lt;br /&gt;
            &amp;lt;updated&amp;gt;1272070984243&amp;lt;/updated&amp;gt;&lt;br /&gt;
            &amp;lt;subject&amp;gt;RE:Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
            &amp;lt;body&amp;gt;Not sure I follow the argument here.&amp;amp;amp;nbsp; Clinical trial data is covered under PHI so no distinction there.&amp;amp;amp;nbsp; Data generated in the course of delivering routine standard of care may be needed in the course of a clinical trial.&amp;amp;amp;nbsp; Does this make clinical trial data an overlapping superset of clinical data?&amp;lt;/body&amp;gt;&lt;br /&gt;
            &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
            &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;noteId&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
            &amp;lt;associated&amp;gt;&lt;br /&gt;
              &amp;lt;noteBean&amp;gt;&lt;br /&gt;
                &amp;lt;id&amp;gt;Note_6bdc5fae-bd95-492c-ab47-0aaae7a2193a&amp;lt;/id&amp;gt;&lt;br /&gt;
                &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
                &amp;lt;created&amp;gt;1272070985097&amp;lt;/created&amp;gt;&lt;br /&gt;
                &amp;lt;updated&amp;gt;1272070985195&amp;lt;/updated&amp;gt;&lt;br /&gt;
                &amp;lt;subject&amp;gt;RE:RE:Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
                &amp;lt;body&amp;gt;I was only reacting to the definition of BRO:Clinical_Data in the current version: &amp;amp;quot;Any type of data obtained in the course of caring for humans outside of measurements obtained in clinical trials&amp;amp;quot;. I think I&amp;amp;apos;m agreeing with you that clinical trial data should be overlapping clinical data (whether its a superset I&amp;amp;apos;m not sure). So I&amp;amp;apos;m not clear why the definition that is in the current version is there. Somehow this might be related to the fact that BRO:Data_Object is subclassed partly by function (eg clinical data) and partly by data type (eg image). I would think images could also be a type of clinical data.&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
                &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
                  &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                    &amp;lt;noteId&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                    &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
                  &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
              &amp;lt;noteBean&amp;gt;&lt;br /&gt;
                &amp;lt;id&amp;gt;Note_1b490c3a-dd19-458a-9446-5184e42d03ab&amp;lt;/id&amp;gt;&lt;br /&gt;
                &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;author&amp;gt;38145&amp;lt;/author&amp;gt;&lt;br /&gt;
                &amp;lt;created&amp;gt;1272070986051&amp;lt;/created&amp;gt;&lt;br /&gt;
                &amp;lt;updated&amp;gt;1272070986093&amp;lt;/updated&amp;gt;&lt;br /&gt;
                &amp;lt;subject&amp;gt;RE: Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
                &amp;lt;body&amp;gt;Hi David and all,&amp;amp;lt;br&amp;amp;gt;&amp;amp;lt;br&amp;amp;gt;Clinical Trial Data should probably be dealt with separately from Clinical Data&amp;amp;lt;br&amp;amp;gt;collected in the course of administering clinical care.&amp;amp;amp;nbsp; The use of Clinical&amp;amp;lt;br&amp;amp;gt;Trial data will be governed by the Consent that the patient signs as part of the&amp;amp;lt;br&amp;amp;gt;IRB Protocol that is set up to allow its collection, while the use Clinical Care&amp;amp;lt;br&amp;amp;gt;Data will be governed by the HIPAA notification that the patient receives, as&amp;amp;lt;br&amp;amp;gt;well as any IRB Protocols set up for the research involved.&amp;amp;lt;br&amp;amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
                &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
                  &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                    &amp;lt;noteId&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                    &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
                  &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
            &amp;lt;/associated&amp;gt;&lt;br /&gt;
          &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;/associated&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Creating Notes in BioPortal =&lt;br /&gt;
BioPortal uses ontology notes to describe a variety of user-specified comments and metadata on ontology, including new-term proposals, proposals for changes, comments and questions about classes, and so on.&lt;br /&gt;
&lt;br /&gt;
== BioPortal and REST Principles ==&lt;br /&gt;
BioPortal utilizes REST principles to create, read, update, and delete resources. The following service documentation uses the HTTP POST method to create notes in the BioPortal system. For more information, please see [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html W3C's documentation on HTTP methods].&lt;br /&gt;
&lt;br /&gt;
== Types of notes in BioPortal ==&lt;br /&gt;
The following are the types of notes in BioPortal. Please, email us at [mailto:support@bioontology.org support@bioontology.org] if you have suggestions for other note types (or specific parameters for the notes).&lt;br /&gt;
&lt;br /&gt;
* Basic comments (as they are in BioPortal currently)&lt;br /&gt;
* Proposals &lt;br /&gt;
** New term proposal&lt;br /&gt;
** New relationship proposal&lt;br /&gt;
** New attribute value proposal&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Comment' note ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=Comment&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=Comment&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Comment'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=Comment - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype={Ontology|Class|Individual|Property|Note} - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'New Term Proposal' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForCreateEntity&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype=Ontology&amp;amp;subject={subject}&amp;amp;reasonforchange={reasonforchange}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermparent={termparent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;email={email_address} &lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForCreateEntity&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype=Ontology&amp;amp;subject={subject}&amp;amp;reasonforchange={reasonforchange}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermparent={termparent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;email={email_address} &lt;br /&gt;
* '''Description''': creates a new note of the type 'New Term Proposal'&lt;br /&gt;
* '''Arguments''' (* required):&lt;br /&gt;
** * type=ProposalForCreateEntity - the type of note to create.&lt;br /&gt;
** * appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** * appliestotype={Ontology|Class} - The type of the thing that the note is associated with.&lt;br /&gt;
** * author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** * reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** * termpreferredname={preferredname} - Preferred name for the new term.&lt;br /&gt;
** * termdefinition={definition} - Definition for the new term.&lt;br /&gt;
** * termparent={termparent} - ID for the parent of the new term. Must be a valid IRI or 'root' to include the term at the root of the ontology.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** termsynonyms={synonym1,synonym2,synonym3} - Synonyms for the new term. Can be a single entry or comma-separated list.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
* '''Removed Arugments''' (no longer used):&lt;br /&gt;
** newtermid={termid} - Proposed or generated id for the new term.&lt;br /&gt;
*** This has been removed to allow for automatic generation of temporary URI ids for use with terms. This will allow you to refer to a term immediately after creating a new term proposal.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Change Relationship/Hierarchy' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForChangeHierarchy&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={parent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;newtermsynonyms={listofsynonyms}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForChangeHierarchy&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={parent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;newtermsynonyms={listofsynonyms}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Comment'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=ProposalForChangeHierarchy - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Class - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** relationshiptype={relationshiptype} - The type of relationship that should be created (is_a, part_of, has_part, etc)&lt;br /&gt;
** relationshiptarget={relationshiptarget} - The term to create the relationship with.&lt;br /&gt;
** oldrelationshiptarget={oldrelationshiptarget} - The term that the relationship is being changed from (if different than relationshiptarget).&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Change Property Value' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForPropertyValueChange&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newpropertyvalue={newvalue}&amp;amp;oldpropertyvalue={oldvalue}&amp;amp;propertyid={propertyid}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForPropertyValueChange&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newpropertyvalue={newvalue}&amp;amp;oldpropertyvalue={oldvalue}&amp;amp;propertyid={propertyid}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Change Property Value'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=ProposalForPropertyValueChange - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Property - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** newpropertyvalue={newpropertyvalue} - The new value for the property.&lt;br /&gt;
** oldpropertyvalue={oldpropertyvalue} - The old value for the property.&lt;br /&gt;
** propertyid={propertyid}= The ID of the property to change.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
== Updating an Existing Note ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP PUT)''': ./virtual/notes/{ontology virtual id}?noteid={note_id}&lt;br /&gt;
* '''Alt Signature (HTTP PUT)''': ./notes/{ontology version id}?noteid={note_id}&lt;br /&gt;
* '''Description''': updates an existing note using the given note id.&lt;br /&gt;
* '''Arguments:''' (* = required)&lt;br /&gt;
** * noteid={note_id} - Id of the note to update.&lt;br /&gt;
** archive=true - Archives the note with the given note id.&lt;br /&gt;
** archivethread=true - Archives all of the notes that are listed as associated to the given note id plus all of their children.&lt;br /&gt;
** unarchive=true - Unarchives the note with the given note id.&lt;br /&gt;
** unarchivethread=true - Unarchives all of the notes that are listed as associated to the given note id plus all of their children.&lt;br /&gt;
** type=Comment|ProposalForCreateEntity|ProposalForChangeHierarchy|ProposalForPropertyValueChange - the type of note.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Property - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the note.&lt;br /&gt;
** content={content} - The content of the note.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
== Web services to submit Terms ==&lt;br /&gt;
* See http://www.bioontology.org/wiki/index.php/BioPortal_Provisional_Terms&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Ontology_Notes&amp;diff=12343</id>
		<title>Ontology Notes</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Ontology_Notes&amp;diff=12343"/>
		<updated>2012-06-15T18:48:29Z</updated>

		<summary type="html">&lt;p&gt;Palexand: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;BioPortal uses Notes to describe a variety of user-specified comments and metadata for an ontology, including new term proposals, requests for changes, comments and questions. &lt;br /&gt;
&lt;br /&gt;
The prefix for all production service URLs in the table below is http://rest.bioontology.org/bioportal&lt;br /&gt;
&lt;br /&gt;
* '''&amp;lt;font color='red'&amp;gt;Note&amp;lt;/font&amp;gt;''': All NCBO REST Web services will be required to contain the parameter &amp;quot;apikey=YourApiKey&amp;quot; starting June 2011. The parameter will be added to all Web service calls for the April 27, 2011 release but will not be required until June 2011. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter. &lt;br /&gt;
* '''''Note for Application Developers''''': Application developers will also need to include the apikey parameter on all NCBO Web service calls. This allows us to track usage of our system at the level of an application. To obtain an API key, login to BioPortal and go to &amp;quot;Account&amp;quot; where your API key will be displayed. The addition of the API key replaces the use of the email parameter.&lt;br /&gt;
&lt;br /&gt;
== Types of notes in BioPortal ==&lt;br /&gt;
The following are the types of notes in BioPortal. Please, email us at [mailto:support@bioontology.org support@bioontology.org] if you have suggestions for other note types (or specific parameters for the notes).&lt;br /&gt;
&lt;br /&gt;
* Basic comments (as they are in BioPortal currently)&lt;br /&gt;
* Proposals &lt;br /&gt;
** New term proposal&lt;br /&gt;
*** PrefName&lt;br /&gt;
*** Synonym&lt;br /&gt;
*** Definition&lt;br /&gt;
*** Superclass&lt;br /&gt;
*** Comment&lt;br /&gt;
** New relationship proposal&lt;br /&gt;
*** Relationship type: is-a, part-of&lt;br /&gt;
*** Relationship target&lt;br /&gt;
** New attribute value proposal&lt;br /&gt;
*** Attribute: documentation, definition, etc.&lt;br /&gt;
*** New value&lt;br /&gt;
*** Flag: replaces the current value (which one, in case of multiple values) or in addition to the current value(s)&lt;br /&gt;
*** (future implementation) Special kind of new attribute value proposal: Assigning UMLS semantic type &lt;br /&gt;
**** Semantic type&lt;br /&gt;
**** Semantic typeID&lt;br /&gt;
&lt;br /&gt;
* (future implementation) Structured annotations with user-defined structure&lt;br /&gt;
* (future implementation) Usage-guideline notes&lt;br /&gt;
&lt;br /&gt;
== Web services to access and generate notes ==&lt;br /&gt;
If you have specific requirements that the list of services below does not satisfy, please contact us at [mailto:support@bioontology.org support@bioontology.org]&lt;br /&gt;
&lt;br /&gt;
=== Get notes for an ontology by version id ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./notes/{ontology version id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/notes/44450?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all notes for a specific version of the ontology &lt;br /&gt;
* '''Optional arguments:'''&lt;br /&gt;
** conceptid={conceptid} - returns notes associated with the given term.&lt;br /&gt;
** instanceid={instanceid} - returns notes associated with the given instance (individual).&lt;br /&gt;
** noteid={noteid} - returns notes associated with the given note id.&lt;br /&gt;
** threaded=[true|false] - returns notes in a threaded format where responses are nested in their parent notes. Default is false.&lt;br /&gt;
** Planned (not yet implemented):&lt;br /&gt;
*** notetype={notetype} - returns only the notes of the specific type.&lt;br /&gt;
*** includearchived=[true|false] - include archived notes. Default is false.&lt;br /&gt;
&lt;br /&gt;
=== Get notes for an ontology by virtual id ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature''': ./virtual/notes/{ontology virtual id}?apikey={YourAPIKey}&lt;br /&gt;
* '''Example''': http://rest.bioontology.org/bioportal/virtual/notes/1104?apikey=YourAPIKey&lt;br /&gt;
* '''Description''': returns all notes for the virtual ontology, i.e., all notes associated with any version of this ontology &lt;br /&gt;
* '''Optional arguments:'''&lt;br /&gt;
** conceptid={conceptid} - returns notes associated with the given term.&lt;br /&gt;
** instanceid={instanceid} - returns notes associated with the given instance (individual).&lt;br /&gt;
** noteid={noteid} - returns notes associated with the given note id.&lt;br /&gt;
** threaded=[true|false] - returns notes in a threaded format where responses are nested in their parent notes. Default is false.&lt;br /&gt;
** Planned (not yet implemented):&lt;br /&gt;
*** notetype={notetype} - returns only the notes of the specific type.&lt;br /&gt;
*** includearchived=[true|false] - include archived notes. Default is false.&lt;br /&gt;
&lt;br /&gt;
=== Sample of the XML returned for a note ===&lt;br /&gt;
&lt;br /&gt;
==== Possible Values ====&lt;br /&gt;
Some elements have a range of possible returned values.&lt;br /&gt;
* appliesTo/type: Ontology|Class|Individual|Property|Note&lt;br /&gt;
* noteBean/type: Comment|ProposalForCreateEntity|ProposalForChangeHierarchy|ProposalForPropertyValueChange&lt;br /&gt;
** Notes with types other than Comment will have an element in noteBean/values that matches the noteBean/type. This contains information specific to these Notes types.&lt;br /&gt;
&lt;br /&gt;
==== A single 'Comment' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 13:02:57.418 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272070868364&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272070868250&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;I note that clinical data is specifically defined not to include clinical trial data. So is anyone already thinking about where at a high level subtrees might be added to deal with clinical trial data and clinical trial management systems? Or is it premature to do that? This is for the CTSAs.&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'New Term Proposal' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104/&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:13:24.407 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_f8bb4dc0-10b3-48b9-ab69-79aed042c0ff&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;ProposalForCreateEntity&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272319359680&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272319377224&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Test Proposal Reply&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;Testing new term submission&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Ontology&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;values&amp;gt;&lt;br /&gt;
          &amp;lt;ProposalForCreateEntity&amp;gt;&lt;br /&gt;
            &amp;lt;reasonForChange&amp;gt;Bad data&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
            &amp;lt;contactInfo&amp;gt;palexander@stanford.edu&amp;lt;/contactInfo&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;TERM_1100&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;preferredName&amp;gt;New Term&amp;lt;/preferredName&amp;gt;&lt;br /&gt;
            &amp;lt;definition&amp;gt;Test new definition&amp;lt;/definition&amp;gt;&lt;br /&gt;
            &amp;lt;synonyms&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;best term&amp;lt;/string&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;amazing term&amp;lt;/string&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;great term&amp;lt;/string&amp;gt;&lt;br /&gt;
            &amp;lt;/synonyms&amp;gt;&lt;br /&gt;
            &amp;lt;parent&amp;gt;&lt;br /&gt;
              &amp;lt;string&amp;gt;http://www.owl-ontologies.com/2009/9/24/Ontology1253802770.owl#Summary&amp;lt;/string&amp;gt;&lt;br /&gt;
            &amp;lt;/parent&amp;gt;&lt;br /&gt;
          &amp;lt;/ProposalForCreateEntity&amp;gt;&lt;br /&gt;
        &amp;lt;/values&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'Change Relationship/Hierarchy Proposal' note ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:21:52.474 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;noteBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;Note_b4e749c8-5ca7-414f-a123-acd16ba656fe&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;ProposalForChangeHierarchy&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
      &amp;lt;created&amp;gt;1272331290991&amp;lt;/created&amp;gt;&lt;br /&gt;
      &amp;lt;updated&amp;gt;1272331295114&amp;lt;/updated&amp;gt;&lt;br /&gt;
      &amp;lt;subject&amp;gt;Change Relationship&amp;lt;/subject&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;Testing change hierarchy&amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
          &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;values&amp;gt;&lt;br /&gt;
        &amp;lt;ProposalForChangeHierarchy&amp;gt;&lt;br /&gt;
          &amp;lt;reasonForChange&amp;gt;Incorrect data&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
          &amp;lt;contactInfo&amp;gt;palexander@stanford.edu/contactInfo&amp;gt;&lt;br /&gt;
          &amp;lt;relationshipTarget&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Software&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/relationshipTarget&amp;gt;&lt;br /&gt;
          &amp;lt;oldRelationshipTarget&amp;gt;&lt;br /&gt;
            &amp;lt;string&amp;gt;isa&amp;lt;/string&amp;gt;&lt;br /&gt;
          &amp;lt;/oldRelationshipTarget&amp;gt;&lt;br /&gt;
        &amp;lt;/ProposalForChangeHierarchy&amp;gt;&lt;br /&gt;
      &amp;lt;/values&amp;gt;&lt;br /&gt;
    &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A single 'Property Value Change Proposal' note ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 18:25:30.465 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;noteBean&amp;gt;&lt;br /&gt;
      &amp;lt;id&amp;gt;Note_8cfde654-2c2c-42e3-8187-0f6c05c6deff&amp;lt;/id&amp;gt;&lt;br /&gt;
      &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;ProposalForPropertyValueChange&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;author&amp;gt;1234&amp;lt;/author&amp;gt;&lt;br /&gt;
      &amp;lt;created&amp;gt;1272331520036&amp;lt;/created&amp;gt;&lt;br /&gt;
      &amp;lt;updated&amp;gt;1272331522822&amp;lt;/updated&amp;gt;&lt;br /&gt;
      &amp;lt;subject&amp;gt;Tet Property Value Change&amp;lt;/subject&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;Testing a proposal to change a property value&amp;lt;/body&amp;gt;&lt;br /&gt;
      &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
          &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
          &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
      &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
      &amp;lt;values&amp;gt;&lt;br /&gt;
        &amp;lt;ProposalForPropertyValueChange&amp;gt;&lt;br /&gt;
          &amp;lt;reasonForChange&amp;gt;The value was entered incorrectly initially&amp;lt;/reasonForChange&amp;gt;&lt;br /&gt;
          &amp;lt;contactInfo&amp;gt;palexander@stanford.edu&amp;lt;/contactInfo&amp;gt;&lt;br /&gt;
          &amp;lt;newValue&amp;gt;200&amp;lt;/newValue&amp;gt;&lt;br /&gt;
          &amp;lt;oldValue&amp;gt;100&amp;lt;/oldValue&amp;gt;&lt;br /&gt;
          &amp;lt;propertyId&amp;gt;Cell_Count&amp;lt;/propertyId&amp;gt;&lt;br /&gt;
        &amp;lt;/ProposalForPropertyValueChange&amp;gt;&lt;br /&gt;
      &amp;lt;/values&amp;gt;&lt;br /&gt;
    &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== A nested thread of 'Comment' notes ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;success&amp;gt;&lt;br /&gt;
  &amp;lt;accessedResource&amp;gt;/bioportal/virtual/notes/1104&amp;lt;/accessedResource&amp;gt;&lt;br /&gt;
  &amp;lt;accessDate&amp;gt;2010-04-26 13:21:28.104 PDT&amp;lt;/accessDate&amp;gt;&lt;br /&gt;
  &amp;lt;data&amp;gt;&lt;br /&gt;
    &amp;lt;list&amp;gt;&lt;br /&gt;
      &amp;lt;noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;id&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
        &amp;lt;created&amp;gt;1272070868364&amp;lt;/created&amp;gt;&lt;br /&gt;
        &amp;lt;updated&amp;gt;1272070868250&amp;lt;/updated&amp;gt;&lt;br /&gt;
        &amp;lt;subject&amp;gt;Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
        &amp;lt;body&amp;gt;I note that clinical data is specifically defined not to include clinical trial data. So is anyone already thinking about where at a high level subtrees might be added to deal with clinical trial data and clinical trial management systems? Or is it premature to do that? This is for the CTSAs.&amp;lt;/body&amp;gt;&lt;br /&gt;
        &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
        &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
          &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;fullId&amp;gt;http://bioontology.org/ontologies/BiomedicalResourceOntology.owl#Clinical_Data&amp;lt;/fullId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Class&amp;lt;/type&amp;gt;&lt;br /&gt;
          &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
        &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
        &amp;lt;associated&amp;gt;&lt;br /&gt;
          &amp;lt;noteBean&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
            &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
            &amp;lt;author&amp;gt;38144&amp;lt;/author&amp;gt;&lt;br /&gt;
            &amp;lt;created&amp;gt;1272070984380&amp;lt;/created&amp;gt;&lt;br /&gt;
            &amp;lt;updated&amp;gt;1272070984243&amp;lt;/updated&amp;gt;&lt;br /&gt;
            &amp;lt;subject&amp;gt;RE:Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
            &amp;lt;body&amp;gt;Not sure I follow the argument here.&amp;amp;amp;nbsp; Clinical trial data is covered under PHI so no distinction there.&amp;amp;amp;nbsp; Data generated in the course of delivering routine standard of care may be needed in the course of a clinical trial.&amp;amp;amp;nbsp; Does this make clinical trial data an overlapping superset of clinical data?&amp;lt;/body&amp;gt;&lt;br /&gt;
            &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
            &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;noteId&amp;gt;Note_0a78922c-3d1e-4689-8af8-48d10d4cdaa8&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
              &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
            &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
            &amp;lt;associated&amp;gt;&lt;br /&gt;
              &amp;lt;noteBean&amp;gt;&lt;br /&gt;
                &amp;lt;id&amp;gt;Note_6bdc5fae-bd95-492c-ab47-0aaae7a2193a&amp;lt;/id&amp;gt;&lt;br /&gt;
                &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;author&amp;gt;38143&amp;lt;/author&amp;gt;&lt;br /&gt;
                &amp;lt;created&amp;gt;1272070985097&amp;lt;/created&amp;gt;&lt;br /&gt;
                &amp;lt;updated&amp;gt;1272070985195&amp;lt;/updated&amp;gt;&lt;br /&gt;
                &amp;lt;subject&amp;gt;RE:RE:Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
                &amp;lt;body&amp;gt;I was only reacting to the definition of BRO:Clinical_Data in the current version: &amp;amp;quot;Any type of data obtained in the course of caring for humans outside of measurements obtained in clinical trials&amp;amp;quot;. I think I&amp;amp;apos;m agreeing with you that clinical trial data should be overlapping clinical data (whether its a superset I&amp;amp;apos;m not sure). So I&amp;amp;apos;m not clear why the definition that is in the current version is there. Somehow this might be related to the fact that BRO:Data_Object is subclassed partly by function (eg clinical data) and partly by data type (eg image). I would think images could also be a type of clinical data.&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
                &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
                  &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                    &amp;lt;noteId&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                    &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
                  &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
              &amp;lt;noteBean&amp;gt;&lt;br /&gt;
                &amp;lt;id&amp;gt;Note_1b490c3a-dd19-458a-9446-5184e42d03ab&amp;lt;/id&amp;gt;&lt;br /&gt;
                &amp;lt;ontologyId&amp;gt;1104&amp;lt;/ontologyId&amp;gt;&lt;br /&gt;
                &amp;lt;type&amp;gt;Comment&amp;lt;/type&amp;gt;&lt;br /&gt;
                &amp;lt;author&amp;gt;38145&amp;lt;/author&amp;gt;&lt;br /&gt;
                &amp;lt;created&amp;gt;1272070986051&amp;lt;/created&amp;gt;&lt;br /&gt;
                &amp;lt;updated&amp;gt;1272070986093&amp;lt;/updated&amp;gt;&lt;br /&gt;
                &amp;lt;subject&amp;gt;RE: Including clinical trial data as clinical data&amp;lt;/subject&amp;gt;&lt;br /&gt;
                &amp;lt;body&amp;gt;Hi David and all,&amp;amp;lt;br&amp;amp;gt;&amp;amp;lt;br&amp;amp;gt;Clinical Trial Data should probably be dealt with separately from Clinical Data&amp;amp;lt;br&amp;amp;gt;collected in the course of administering clinical care.&amp;amp;amp;nbsp; The use of Clinical&amp;amp;lt;br&amp;amp;gt;Trial data will be governed by the Consent that the patient signs as part of the&amp;amp;lt;br&amp;amp;gt;IRB Protocol that is set up to allow its collection, while the use Clinical Care&amp;amp;lt;br&amp;amp;gt;Data will be governed by the HIPAA notification that the patient receives, as&amp;amp;lt;br&amp;amp;gt;well as any IRB Protocols set up for the research involved.&amp;amp;lt;br&amp;amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
                &amp;lt;createdInOntologyVersion&amp;gt;2&amp;lt;/createdInOntologyVersion&amp;gt;&lt;br /&gt;
                &amp;lt;appliesToList&amp;gt;&lt;br /&gt;
                  &amp;lt;appliesTo&amp;gt;&lt;br /&gt;
                    &amp;lt;noteId&amp;gt;Note_02e4b8cd-f582-411c-8561-035a0f7d1dd9&amp;lt;/noteId&amp;gt;&lt;br /&gt;
                    &amp;lt;type&amp;gt;Note&amp;lt;/type&amp;gt;&lt;br /&gt;
                  &amp;lt;/appliesTo&amp;gt;&lt;br /&gt;
                &amp;lt;/appliesToList&amp;gt;&lt;br /&gt;
              &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
            &amp;lt;/associated&amp;gt;&lt;br /&gt;
          &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
        &amp;lt;/associated&amp;gt;&lt;br /&gt;
      &amp;lt;/noteBean&amp;gt;&lt;br /&gt;
    &amp;lt;/list&amp;gt;&lt;br /&gt;
  &amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/success&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Creating Notes in BioPortal =&lt;br /&gt;
BioPortal uses ontology notes to describe a variety of user-specified comments and metadata on ontology, including new-term proposals, proposals for changes, comments and questions about classes, and so on.&lt;br /&gt;
&lt;br /&gt;
== BioPortal and REST Principles ==&lt;br /&gt;
BioPortal utilizes REST principles to create, read, update, and delete resources. The following service documentation uses the HTTP POST method to create notes in the BioPortal system. For more information, please see [http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html W3C's documentation on HTTP methods].&lt;br /&gt;
&lt;br /&gt;
== Types of notes in BioPortal ==&lt;br /&gt;
The following are the types of notes in BioPortal. Please, email us at [mailto:support@bioontology.org support@bioontology.org] if you have suggestions for other note types (or specific parameters for the notes).&lt;br /&gt;
&lt;br /&gt;
* Basic comments (as they are in BioPortal currently)&lt;br /&gt;
* Proposals &lt;br /&gt;
** New term proposal&lt;br /&gt;
** New relationship proposal&lt;br /&gt;
** New attribute value proposal&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Comment' note ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=Comment&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=Comment&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Comment'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=Comment - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype={Ontology|Class|Individual|Property|Note} - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'New Term Proposal' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForCreateEntity&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype=Ontology&amp;amp;subject={subject}&amp;amp;reasonforchange={reasonforchange}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={termparent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;email={email_address} &lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForCreateEntity&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype=Ontology&amp;amp;subject={subject}&amp;amp;reasonforchange={reasonforchange}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={termparent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;email={email_address} &lt;br /&gt;
* '''Description''': creates a new note of the type 'New Term Proposal'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=ProposalForCreateEntity - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype={Ontology|Class} - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** termdefinition={definition} - Definition for the new term.&lt;br /&gt;
** termparent={termparent} - ID for the parent of the new term. Must be a valid IRI.&lt;br /&gt;
** termpreferredname={preferredname} - Preferred name for the new term.&lt;br /&gt;
** termsynonyms={synonym1,synonym2,synonym3} - Synonyms for the new term. Can be a single entry or comma-separated list.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
* '''Removed Arugments''' (no longer used):&lt;br /&gt;
** newtermid={termid} - Proposed or generated id for the new term.&lt;br /&gt;
*** This has been removed to allow for automatic generation of temporary URI ids for use with terms. This will allow you to refer to a term immediately after creating a new term proposal.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Change Relationship/Hierarchy' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForChangeHierarchy&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={parent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;newtermsynonyms={listofsynonyms}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForChangeHierarchy&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newtermdefinition={definition}&amp;amp;newtermid={termid}&amp;amp;newtermparent={parent}&amp;amp;newtermpreferredname={preferredname}&amp;amp;newtermsynonyms={listofsynonyms}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Comment'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=ProposalForChangeHierarchy - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Class - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** relationshiptype={relationshiptype} - The type of relationship that should be created (is_a, part_of, has_part, etc)&lt;br /&gt;
** relationshiptarget={relationshiptarget} - The term to create the relationship with.&lt;br /&gt;
** oldrelationshiptarget={oldrelationshiptarget} - The term that the relationship is being changed from (if different than relationshiptarget).&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
=== Creating a 'Change Property Value' proposal ===&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP POST)''': ./virtual/notes/{ontology virtual id}?type=ProposalForPropertyValueChange&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newpropertyvalue={newvalue}&amp;amp;oldpropertyvalue={oldvalue}&amp;amp;propertyid={propertyid}&amp;amp;email={email_address}&lt;br /&gt;
* '''Alt Signature (HTTP POST)''': ./notes/{ontology version id}?type=ProposalForPropertyValueChange&amp;amp;appliesto={appliestoid}&amp;amp;appliestotype={appliestotype}&amp;amp;subject={subject}&amp;amp;content={content}&amp;amp;author={author}&amp;amp;newpropertyvalue={newvalue}&amp;amp;oldpropertyvalue={oldvalue}&amp;amp;propertyid={propertyid}&amp;amp;email={email_address}&lt;br /&gt;
* '''Description''': creates a new note of the type 'Change Property Value'&lt;br /&gt;
* '''Arguments''':&lt;br /&gt;
** type=ProposalForPropertyValueChange - the type of note to create.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Property - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the comment.&lt;br /&gt;
** content={content} - The content of the comment.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** reasonforchange={reason for change} - An explanation for why the proposal is being made.&lt;br /&gt;
** contactinfo={contact information} - Contact information for the entity making the request.&lt;br /&gt;
** newpropertyvalue={newpropertyvalue} - The new value for the property.&lt;br /&gt;
** oldpropertyvalue={oldpropertyvalue} - The old value for the property.&lt;br /&gt;
** propertyid={propertyid}= The ID of the property to change.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
== Updating an Existing Note ==&lt;br /&gt;
&lt;br /&gt;
* '''Signature (HTTP PUT)''': ./virtual/notes/{ontology virtual id}?noteid={note_id}&lt;br /&gt;
* '''Alt Signature (HTTP PUT)''': ./notes/{ontology version id}?noteid={note_id}&lt;br /&gt;
* '''Description''': updates an existing note using the given note id.&lt;br /&gt;
* '''Arguments:''' (* = required)&lt;br /&gt;
** * noteid={note_id} - Id of the note to update.&lt;br /&gt;
** archive=true - Archives the note with the given note id.&lt;br /&gt;
** archivethread=true - Archives all of the notes that are listed as associated to the given note id plus all of their children.&lt;br /&gt;
** unarchive=true - Unarchives the note with the given note id.&lt;br /&gt;
** unarchivethread=true - Unarchives all of the notes that are listed as associated to the given note id plus all of their children.&lt;br /&gt;
** type=Comment|ProposalForCreateEntity|ProposalForChangeHierarchy|ProposalForPropertyValueChange - the type of note.&lt;br /&gt;
** appliesto={appliestoid} - The id of the thing to associate the note with. This can be a class (term), individual, property, or another note. For classes, individuals, and properties, the specified id must exist in the target ontology. URIs must be URL-encoded.&lt;br /&gt;
** appliestotype=Property - The type of the thing that the note is associated with.&lt;br /&gt;
** subject={subject} - The subject for the note.&lt;br /&gt;
** content={content} - The content of the note.&lt;br /&gt;
** author={authorid} - The author's BioPortal user id.&lt;br /&gt;
** status={status} - Status for this notes. The Changes and Annotation Ontology provides a default set of statuses for proposals (Submitted, Rejected, Under Discussion, Under Review, Approved, Rejected, Implemented, Published) but the service also accepts arbitrary strings.&lt;br /&gt;
&lt;br /&gt;
== Web services to submit Terms ==&lt;br /&gt;
* See http://www.bioontology.org/wiki/index.php/BioPortal_Provisional_Terms&lt;/div&gt;</summary>
		<author><name>Palexand</name></author>
	</entry>
</feed>