<?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=Andrew+Su</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=Andrew+Su"/>
	<link rel="alternate" type="text/html" href="https://www.bioontology.org//wiki/Special:Contributions/Andrew_Su"/>
	<updated>2026-06-05T11:46:28Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Annotator_R_Client&amp;diff=12643</id>
		<title>Annotator R Client</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Annotator_R_Client&amp;diff=12643"/>
		<updated>2013-12-19T17:41:14Z</updated>

		<summary type="html">&lt;p&gt;Andrew Su: /* Example */ minor tweaks for clarity&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# sample client for NCBO Annotator in R&lt;br /&gt;
# Author: Andrew Su &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
annotate.it &amp;lt;- function( queryText, yourAPIKey ) {&lt;br /&gt;
&lt;br /&gt;
    library(RCurl)&lt;br /&gt;
    library(XML)&lt;br /&gt;
	&lt;br /&gt;
	# Login to BioPortal to get YourAPIKey&lt;br /&gt;
    res&amp;lt;- postForm('http://rest.bioontology.org/obs/annotator',&lt;br /&gt;
            &amp;quot;textToAnnotate&amp;quot;=queryText,&lt;br /&gt;
			&amp;quot;apikey&amp;quot;=yourAPIKey, &lt;br /&gt;
            &amp;quot;style&amp;quot;=&amp;quot;POST&amp;quot;,&lt;br /&gt;
            &amp;quot;longestOnly&amp;quot;=&amp;quot;false&amp;quot;,&lt;br /&gt;
            &amp;quot;wholeWordOnly&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;filterNumber&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;withDefaultStopWords&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
            &amp;quot;isStopWordsCaseSensitive&amp;quot;=&amp;quot;false&amp;quot;,&lt;br /&gt;
			&amp;quot;minTermSize&amp;quot;=&amp;quot;3&amp;quot;,&lt;br /&gt;
			&amp;quot;scored&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;withSynonyms&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
            &amp;quot;ontologiesToExpand&amp;quot;=&amp;quot;1353,1032,1351,1009&amp;quot;,&lt;br /&gt;
            &amp;quot;ontologiesToKeepInResult&amp;quot;=&amp;quot;1353,1032,1351,1009&amp;quot;,&lt;br /&gt;
			&amp;quot;isVirtualOntologyId&amp;quot;=&amp;quot;true&amp;quot;, &lt;br /&gt;
            &amp;quot;semanticTypes&amp;quot;=&amp;quot;T017,T047,T191,T999&amp;quot;,&lt;br /&gt;
            &amp;quot;levelMax&amp;quot;=&amp;quot;0&amp;quot;,&lt;br /&gt;
            &amp;quot;mappingTypes&amp;quot;=&amp;quot;null&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;=&amp;quot;xml&amp;quot;,&lt;br /&gt;
            &amp;quot;email&amp;quot;=&amp;quot;YourEmail@Somewhere.com&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    x &amp;lt;- xmlInternalTreeParse(res)&lt;br /&gt;
    &lt;br /&gt;
    matchedConcepts &amp;lt;- list()&lt;br /&gt;
    conceptNodes &amp;lt;- getNodeSet(x,&amp;quot;/success/data/annotatorResultBean/annotations/annotationBean/concept&amp;quot;)&lt;br /&gt;
    for( concept in conceptNodes ) {&lt;br /&gt;
       localConceptId &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./localConceptId&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;ID = &amp;quot;,localConceptId ))&lt;br /&gt;
    &lt;br /&gt;
       preferredName &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./preferredName&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Name = &amp;quot;,preferredName ))&lt;br /&gt;
    &lt;br /&gt;
       semanticType &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./semanticTypes/semanticTypeBean/semanticType&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Type = &amp;quot;,semanticType ))&lt;br /&gt;
    &lt;br /&gt;
       description &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./semanticTypes/semanticTypeBean/description&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Type name = &amp;quot;,description ))&lt;br /&gt;
    &lt;br /&gt;
       matchedConcepts[[localConceptId]] &amp;lt;- preferredName&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    matchedPhrase &amp;lt;- list()&lt;br /&gt;
    resultNodes &amp;lt;- getNodeSet(x, &amp;quot;/success/data/annotatorResultBean/annotations/annotationBean/context&amp;quot;)&lt;br /&gt;
    for( result in resultNodes ) {&lt;br /&gt;
       localConceptId &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./term/concept/localConceptId&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;ID = &amp;quot;, localConceptId ) )&lt;br /&gt;
    &lt;br /&gt;
       term.name &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./term/name&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Match = &amp;quot;, term.name ) )&lt;br /&gt;
      &lt;br /&gt;
       from &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./from&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;From = &amp;quot;, from ) )&lt;br /&gt;
    &lt;br /&gt;
       to &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./to&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;To = &amp;quot;, to ) )&lt;br /&gt;
    &lt;br /&gt;
       matchedPhrase[[localConceptId]] &amp;lt;- term.name&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    for( key in names(matchedConcepts) ) {&lt;br /&gt;
       print(paste(key,matchedConcepts[[key]],&amp;quot;matched&amp;quot;,matchedPhrase[[key]]))&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
queryText &amp;lt;- &amp;quot;Melanoma is a malignant tumor of melanocytes which are found predominantly in skin but also in the bowel and the eye&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Instructions on getting an API key are at http://www.bioontology.org/wiki/index.php/Annotator_User_Guide#Annotator_Web_service_Validation&lt;br /&gt;
yourAPIKey &amp;lt;- &amp;quot;XXXXXXXXXXXXX&amp;quot;&lt;br /&gt;
&lt;br /&gt;
annotate.it( queryText, yourAPIKey )&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew Su</name></author>
	</entry>
	<entry>
		<id>https://www.bioontology.org//mediawiki/index.php?title=Annotator_R_Client&amp;diff=12593</id>
		<title>Annotator R Client</title>
		<link rel="alternate" type="text/html" href="https://www.bioontology.org//mediawiki/index.php?title=Annotator_R_Client&amp;diff=12593"/>
		<updated>2013-03-22T00:52:04Z</updated>

		<summary type="html">&lt;p&gt;Andrew Su: fix xpath&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Example ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# sample client for NCBO Annotator in R&lt;br /&gt;
# Author: Andrew Su &lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
AnnotatorURL &amp;lt;- &amp;quot;http://rest.bioontology.org/obs/annotator&amp;quot;&lt;br /&gt;
&lt;br /&gt;
queryText &amp;lt;- &amp;quot;Melanoma is a malignant tumor of melanocytes which are found predominantly in skin but also in the bowel and the eye&amp;quot;&lt;br /&gt;
&lt;br /&gt;
annotate.it( queryText )&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
annotate.it &amp;lt;- function( queryText ) {&lt;br /&gt;
&lt;br /&gt;
    library(RCurl)&lt;br /&gt;
    library(XML)&lt;br /&gt;
	&lt;br /&gt;
	# Login to BioPortal to get YourAPIKey&lt;br /&gt;
    res&amp;lt;- postForm('http://rest.bioontology.org/obs/annotator',&lt;br /&gt;
            &amp;quot;textToAnnotate&amp;quot;=queryText,&lt;br /&gt;
			&amp;quot;apikey&amp;quot;=YourAPIKey, &lt;br /&gt;
            &amp;quot;style&amp;quot;=&amp;quot;POST&amp;quot;,&lt;br /&gt;
            &amp;quot;longestOnly&amp;quot;=&amp;quot;false&amp;quot;,&lt;br /&gt;
            &amp;quot;wholeWordOnly&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;filterNumber&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;withDefaultStopWords&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
            &amp;quot;isStopWordsCaseSensitive&amp;quot;=&amp;quot;false&amp;quot;,&lt;br /&gt;
			&amp;quot;minTermSize&amp;quot;=&amp;quot;3&amp;quot;,&lt;br /&gt;
			&amp;quot;scored&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
			&amp;quot;withSynonyms&amp;quot;=&amp;quot;true&amp;quot;,&lt;br /&gt;
            &amp;quot;ontologiesToExpand&amp;quot;=&amp;quot;1353,1032,1351,1009&amp;quot;,&lt;br /&gt;
            &amp;quot;ontologiesToKeepInResult&amp;quot;=&amp;quot;1353,1032,1351,1009&amp;quot;,&lt;br /&gt;
			&amp;quot;isVirtualOntologyId&amp;quot;=&amp;quot;true&amp;quot;, &lt;br /&gt;
            &amp;quot;semanticTypes&amp;quot;=&amp;quot;T017,T047,T191,T999&amp;quot;,&lt;br /&gt;
            &amp;quot;levelMax&amp;quot;=&amp;quot;0&amp;quot;,&lt;br /&gt;
            &amp;quot;mappingTypes&amp;quot;=&amp;quot;null&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;=&amp;quot;xml&amp;quot;,&lt;br /&gt;
            &amp;quot;email&amp;quot;=&amp;quot;YourEmail@Somewhere.com&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    x &amp;lt;- xmlInternalTreeParse(res)&lt;br /&gt;
    &lt;br /&gt;
    matchedConcepts &amp;lt;- list()&lt;br /&gt;
    conceptNodes &amp;lt;- getNodeSet(x,&amp;quot;/success/data/annotatorResultBean/annotations/annotationBean/concept&amp;quot;)&lt;br /&gt;
    for( concept in conceptNodes ) {&lt;br /&gt;
       localConceptId &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./localConceptId&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;ID = &amp;quot;,localConceptId ))&lt;br /&gt;
    &lt;br /&gt;
       preferredName &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./preferredName&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Name = &amp;quot;,preferredName ))&lt;br /&gt;
    &lt;br /&gt;
       semanticType &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./semanticTypes/semanticTypeBean/semanticType&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Type = &amp;quot;,semanticType ))&lt;br /&gt;
    &lt;br /&gt;
       description &amp;lt;- xmlValue(getNodeSet(concept,&amp;quot;./semanticTypes/semanticTypeBean/description&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Type name = &amp;quot;,description ))&lt;br /&gt;
    &lt;br /&gt;
       matchedConcepts[[localConceptId]] &amp;lt;- preferredName&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    matchedPhrase &amp;lt;- list()&lt;br /&gt;
    resultNodes &amp;lt;- getNodeSet(x, &amp;quot;/success/data/annotatorResultBean/annotations/annotationBean/context&amp;quot;)&lt;br /&gt;
    for( result in resultNodes ) {&lt;br /&gt;
       localConceptId &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./term/concept/localConceptId&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;ID = &amp;quot;, localConceptId ) )&lt;br /&gt;
    &lt;br /&gt;
       term.name &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./term/name&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;Match = &amp;quot;, term.name ) )&lt;br /&gt;
      &lt;br /&gt;
       from &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./from&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;From = &amp;quot;, from ) )&lt;br /&gt;
    &lt;br /&gt;
       to &amp;lt;- xmlValue(getNodeSet(result,&amp;quot;./to&amp;quot;)[[1]])&lt;br /&gt;
       print( paste( &amp;quot;To = &amp;quot;, to ) )&lt;br /&gt;
    &lt;br /&gt;
       matchedPhrase[[localConceptId]] &amp;lt;- term.name&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    for( key in names(matchedConcepts) ) {&lt;br /&gt;
       print(paste(key,matchedConcepts[[key]],&amp;quot;matched&amp;quot;,matchedPhrase[[key]]))&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrew Su</name></author>
	</entry>
</feed>