<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bioontology.org//mediawiki/index.php?action=history&amp;feed=atom&amp;title=ExtractMappings</id>
	<title>ExtractMappings - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.bioontology.org//mediawiki/index.php?action=history&amp;feed=atom&amp;title=ExtractMappings"/>
	<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=ExtractMappings&amp;action=history"/>
	<updated>2026-06-05T12:18:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=ExtractMappings&amp;diff=9862&amp;oldid=prev</id>
		<title>Whetzel: New page: '''Extract Mappings - Sample code''' &lt;pre&gt; #!/usr/bin/perl  ############################################################# # DESCRIPTION: Code to extract mapping data from  # BioPortal(http...</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=ExtractMappings&amp;diff=9862&amp;oldid=prev"/>
		<updated>2010-04-15T23:54:35Z</updated>

		<summary type="html">&lt;p&gt;New page: &amp;#039;&amp;#039;&amp;#039;Extract Mappings - Sample code&amp;#039;&amp;#039;&amp;#039; &amp;lt;pre&amp;gt; #!/usr/bin/perl  ############################################################# # DESCRIPTION: Code to extract mapping data from  # BioPortal(http...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Extract Mappings - Sample code'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/perl&lt;br /&gt;
&lt;br /&gt;
#############################################################&lt;br /&gt;
# DESCRIPTION: Code to extract mapping data from &lt;br /&gt;
# BioPortal(http://bioportal.bioontology.org). &lt;br /&gt;
#&lt;br /&gt;
# NOTE: The Web services used in this code are prototype&lt;br /&gt;
# services and will change. Subscribe to the bioportal-announce&lt;br /&gt;
# mailing list (https://mailman.stanford.edu/mailman/listinfo/bioportal-announce)&lt;br /&gt;
# to be notified of changes in this Web service. &lt;br /&gt;
#&lt;br /&gt;
# USAGE: perl extract_mappings.pl &amp;gt; outputfile.txt&lt;br /&gt;
#&lt;br /&gt;
# AUTHOR: Trish Whetzel (support@bioontology.org)&lt;br /&gt;
# DATE: Tue Oct 27 18:55:06 PDT 2009&lt;br /&gt;
#############################################################&lt;br /&gt;
&lt;br /&gt;
use LWP::UserAgent;&lt;br /&gt;
use XML::LibXML;&lt;br /&gt;
use strict;&lt;br /&gt;
use warnings;&lt;br /&gt;
&lt;br /&gt;
# Declare variables&lt;br /&gt;
my ($ontology_id, $term_id, $term, $ontology, $dest_ontology_id, $dest_ontology, $dest_term_id, $dest_term, $user_id);&lt;br /&gt;
&lt;br /&gt;
# Main method&lt;br /&gt;
get_mappings();&lt;br /&gt;
&lt;br /&gt;
# Subroutines&lt;br /&gt;
sub get_mappings {&lt;br /&gt;
	my $ua = new LWP::UserAgent;&lt;br /&gt;
&lt;br /&gt;
	# make request&lt;br /&gt;
	# NOTE: ontology id is hard-coded, the ontology id can be found from the web interface ontology metadata page or &lt;br /&gt;
	# the web service http://rest.bioontology.org/bioportal/ontologies?email=example@example.org&lt;br /&gt;
	my $req =  new HTTP::Request GET =&amp;gt; 'http://bioportal.bioontology.org/mappings/service/1430/?email=bioportal-mapping';  #1023&lt;br /&gt;
	$req-&amp;gt;content_type('application/x-www-form-urlencoded');&lt;br /&gt;
&lt;br /&gt;
	# send request and get response.&lt;br /&gt;
	my $res = $ua-&amp;gt;request($req);&lt;br /&gt;
&lt;br /&gt;
	# If you want to get a large result. It is better to write to a file directly.&lt;br /&gt;
	# my $res = $ua-&amp;gt;request($req,'file_name.txt');&lt;br /&gt;
&lt;br /&gt;
	# Check the outcome of the response&lt;br /&gt;
	if ( $res-&amp;gt;is_success ) {&lt;br /&gt;
		print STDERR &amp;quot;Call successful\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
		# read XML file&lt;br /&gt;
		my $parser = XML::LibXML-&amp;gt;new();&lt;br /&gt;
		my $xml = $parser-&amp;gt;parse_string( $res-&amp;gt;decoded_content );&lt;br /&gt;
		my $num_of_responses = 0;	&lt;br /&gt;
&lt;br /&gt;
		# print output&lt;br /&gt;
		foreach my $mappingBlock ( $xml-&amp;gt;findnodes('hash/mapping-from/mapping-from') ) {&lt;br /&gt;
			my ($source) = $mappingBlock-&amp;gt;findnodes('./source-ont');&lt;br /&gt;
			my ($ontology_name) = $mappingBlock-&amp;gt;findnodes('./source-ont-name');&lt;br /&gt;
			my ($source_id) = $mappingBlock-&amp;gt;findnodes('./source-id');&lt;br /&gt;
			my ($source_name) = $mappingBlock-&amp;gt;findnodes('./source-name');&lt;br /&gt;
			&lt;br /&gt;
			my ($id) = $mappingBlock-&amp;gt;findnodes('./user-id');&lt;br /&gt;
			&lt;br /&gt;
			my ($dest_ont) = $mappingBlock-&amp;gt;findnodes('./destination-ont');&lt;br /&gt;
			my ($dest_ontology_name) = $mappingBlock-&amp;gt;findnodes('./destination-ont-name');&lt;br /&gt;
			my ($dest_source_id) = $mappingBlock-&amp;gt;findnodes('./destination-id');&lt;br /&gt;
			my ($dest_source_name) = $mappingBlock-&amp;gt;findnodes('./destination-name');&lt;br /&gt;
			&lt;br /&gt;
			$ontology_id = $source-&amp;gt;to_literal;&lt;br /&gt;
			$ontology = $ontology_name-&amp;gt;to_literal;&lt;br /&gt;
			$term_id = $source_id-&amp;gt;to_literal;&lt;br /&gt;
			$term = $source_name-&amp;gt;to_literal;&lt;br /&gt;
			&lt;br /&gt;
			$user_id = $id-&amp;gt;to_literal;&lt;br /&gt;
			&lt;br /&gt;
			$dest_ontology_id = $dest_ont-&amp;gt;to_literal;&lt;br /&gt;
			$dest_ontology = $dest_ontology_name-&amp;gt;to_literal;&lt;br /&gt;
			$dest_term_id = $dest_source_id-&amp;gt;to_literal;&lt;br /&gt;
			$dest_term = $dest_source_name-&amp;gt;to_literal;&lt;br /&gt;
			&lt;br /&gt;
			#add line to check if mapping is to a specific ontology&lt;br /&gt;
			my $ontology_id_of_interest = '1341'; &lt;br /&gt;
			my $user_of_interest = '';&lt;br /&gt;
			&lt;br /&gt;
			if ($dest_ontology_id == $ontology_id_of_interest) { #} &amp;amp;&amp;amp; $user_id == $user_of_interest) {  #use for mapping-from&lt;br /&gt;
			#if ($ontology_id == $ontology_id_of_interest &amp;amp;&amp;amp; $user_id == $user_of_interest) { #use for mapping-to&lt;br /&gt;
				$num_of_responses++;&lt;br /&gt;
				print (&amp;quot;$num_of_responses: S: $ontology_id, D: $dest_ontology_id; S: $ontology, D: $dest_ontology; S: $term_id, D: $dest_term_id; S: $term, D: $dest_term \n&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			# For testing script&lt;br /&gt;
			else {&lt;br /&gt;
				#print STDERR (&amp;quot;**Not mapped to ontol of interest: $ontology_id_of_interest\t - $ontology_id, $ontology, $term_id, $term, $dest_ontology_id, $dest_ontology, $dest_term_id, $dest_term \n&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Whetzel</name></author>
	</entry>
</feed>