Return-Path: Delivered-To: apmail-uima-commits-archive@www.apache.org Received: (qmail 3459 invoked from network); 21 Sep 2010 08:48:23 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 21 Sep 2010 08:48:23 -0000 Received: (qmail 26516 invoked by uid 500); 21 Sep 2010 08:48:23 -0000 Delivered-To: apmail-uima-commits-archive@uima.apache.org Received: (qmail 26483 invoked by uid 500); 21 Sep 2010 08:48:22 -0000 Mailing-List: contact commits-help@uima.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@uima.apache.org Delivered-To: mailing list commits@uima.apache.org Received: (qmail 26475 invoked by uid 99); 21 Sep 2010 08:48:21 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Sep 2010 08:48:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Sep 2010 08:48:19 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id C612223889E7; Tue, 21 Sep 2010 08:47:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r999276 - in /uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy: annotator/URLConceptTaggingAnnotator.java mapper/processor/RankedEntitiesProcessor.java Date: Tue, 21 Sep 2010 08:47:59 -0000 To: commits@uima.apache.org From: tommaso@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100921084759.C612223889E7@eris.apache.org> Author: tommaso Date: Tue Sep 21 08:47:59 2010 New Revision: 999276 URL: http://svn.apache.org/viewvc?rev=999276&view=rev Log: [UIMA-1863] - fixed reflection based FeatureStructure building for RankedEntitiesProcessor, added URLConceptTaggingAnnotator class Added: uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/annotator/URLConceptTaggingAnnotator.java Modified: uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/mapper/processor/RankedEntitiesProcessor.java Added: uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/annotator/URLConceptTaggingAnnotator.java URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/annotator/URLConceptTaggingAnnotator.java?rev=999276&view=auto ============================================================================== --- uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/annotator/URLConceptTaggingAnnotator.java (added) +++ uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/annotator/URLConceptTaggingAnnotator.java Tue Sep 21 08:47:59 2010 @@ -0,0 +1,60 @@ +/** + * 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. + */ +package org.apache.uima.alchemy.annotator; + +import org.apache.uima.alchemy.digester.DigesterProvider; +import org.apache.uima.alchemy.digester.concept.ConceptTaggingDigesterProvider; +import org.apache.uima.analysis_engine.AnalysisEngineProcessException; +import org.apache.uima.jcas.JCas; + +import java.io.UnsupportedEncodingException; +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URL; +import java.net.URLEncoder; + +public class URLConceptTaggingAnnotator extends AbstractAlchemyAnnotator { + @Override + protected DigesterProvider createDigester() { + return new ConceptTaggingDigesterProvider(); + } + + @Override + protected URL createServiceURI() throws MalformedURLException { + return URI.create("http://access.alchemyapi.com/calls/url/URLGetRankedConcepts").toURL(); + } + + @Override + protected String[] getServiceParameters() { + return new String[]{"url", "maxRetrieve", "outputMode", "linkedData", "showSourceText"}; + } + + @Override + protected void initializeRuntimeParameters(JCas aJCas) throws AnalysisEngineProcessException { + try { + StringBuffer serviceParamsBuf = new StringBuffer(); + serviceParamsBuf.append("&url="); + serviceParamsBuf.append(URLEncoder.encode(aJCas.getDocumentText(), "UTF-8")); + this.serviceParams += (serviceParamsBuf.toString()); + this.serviceParams += (serviceParamsBuf.toString()); + } catch (UnsupportedEncodingException e) { + throw new AnalysisEngineProcessException(e); + } + } +} Modified: uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/mapper/processor/RankedEntitiesProcessor.java URL: http://svn.apache.org/viewvc/uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/mapper/processor/RankedEntitiesProcessor.java?rev=999276&r1=999275&r2=999276&view=diff ============================================================================== --- uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/mapper/processor/RankedEntitiesProcessor.java (original) +++ uima/sandbox/trunk/AlchemyAPIAnnotator/src/main/java/org/apache/uima/alchemy/mapper/processor/RankedEntitiesProcessor.java Tue Sep 21 08:47:59 2010 @@ -126,16 +126,10 @@ public class RankedEntitiesProcessor imp Class typeClass = getClassFromName(typeName); if (typeClass != null) { try { - /* usually jcas gen creates the constructor with jcas argument as the second one */ - fsObject = (BaseEntity) typeClass.getConstructors()[1].newInstance(aJCas); + /* use reflection to build a BaseEntity object */ + fsObject = (BaseEntity) typeClass.getConstructor(JCas.class).newInstance(aJCas); } catch (Exception e) { - /* for exceptional cases in which jcas parameter constructor is the first */ - try { - fsObject = (BaseEntity) typeClass.getConstructors()[0].newInstance(aJCas); - } catch (Exception inner) { - /* could not instantiate a FS via reflection */ - inner.printStackTrace(); - } + // fsObject remains null } } return fsObject;