// Licensed to the Apache Software Foundation (ASF) under one or more // contributor license agreements. See the NOTICE file distributed with // this work for additional information regarding copyright ownership. // The ASF licenses this file to You under the Apache License, Version 2.0 // (the "License"); you may not use this file except in compliance with // the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. (function( $ ){ function insertDemoElements( element ) { element.append(''); element.append('
'); element.append(''); element.append('
'); element.append('
'); element.append(''); }; function detectLanguage( componentName ) { // TODO: // Query name finder tagging service for supported languages // Try to auto detect language in the background (every time input changed) // For now lets hard code English $('select#opennlp-demo-language').append(''); }; var methods = { namefinder : function( options ) { insertDemoElements(this); // Can we get the method name here? detectLanguage('namefinder') $('button#opennlp-demo-process').click(function() { //$.ajax({url:"/rest/namefinder/_findRawText",type:"GET",data: "Test text",dataType:"json",contentType:"application/json"}) var inputText = $('textarea#opennlp-demo-input').val(); // Call the name finder service to detect names $.ajax({ type: 'POST', url: "http://localhost:8080/rest/namefinder/_findRawText", data: inputText, dataType: "json", contentType: "application/json; charset=UTF-8", success: function (data) { $("div#opennlp-demo-result").empty(); // Extract tokens and names from the array array var tokens = []; var annotations = []; for (si = 0; si < data.document.length; si++) { for (ni = 0; ni < data.names[si].length; ni++) { var ann = data.names[si][ni]; // alert(data.names[si][ni]); annotations.push(new Annotation("person", 0, tokens.length + ann.start, tokens.length + ann.end)); } for (ti = 0; ti < data.document[si].length; ti++) { // TODO: its end and begin index, need to do substring on input text! tokens.push(inputText.substring(data.document[si][ti].start, data.document[si][ti].end)); } } // Display results in annotation editor! new AnnotationEditor($("div#opennlp-demo-result"), tokens, annotations); }, error: function (jqXHR, textStatus, errorThrown) { alert("Failed to call name finder service for some reason!"); } }); }); } }; $.fn.opennlpDemo = function( method ) { // Method calling logic if ( methods[method] ) { return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 )); } else if ( typeof method === 'object' || ! method ) { return methods.init.apply( this, arguments ); } else { $.error( 'Method ' + method + ' does not exist on jQuery.opennlpDemo' ); } }; })( jQuery );