Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewComposite.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewComposite.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewComposite.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewComposite.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,165 @@ +/* + * 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.ruta.cde.ui; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.Iterator; + +import org.apache.uima.ruta.cde.utils.CDEComparatorFactory; +import org.apache.uima.ruta.cde.utils.DocumentData; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.TableViewer; +import org.eclipse.swt.SWT; +import org.eclipse.swt.dnd.Clipboard; +import org.eclipse.swt.dnd.TextTransfer; +import org.eclipse.swt.dnd.Transfer; +import org.eclipse.swt.events.KeyEvent; +import org.eclipse.swt.events.KeyListener; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.TableColumn; +import org.eclipse.swt.widgets.TableItem; +import org.eclipse.ui.ISelectionListener; +import org.eclipse.ui.IWorkbenchPart; + + + +public class ResultViewComposite extends Composite implements ISelectionListener { + + private Clipboard clipboard; + + private TableViewer tableViewer; + + private Table table; + + private TableColumn tc1; + + private TableColumn tc2; + + private CDEComparatorFactory comparatorFactory; + + public ResultViewComposite(Composite parent, int style) { + super(parent, style); + initGui(); + comparatorFactory = new CDEComparatorFactory(); + clipboard = new Clipboard(parent.getDisplay()); + } + + public void initGui() { + this.setLayout(new FormLayout()); + tableViewer = new TableViewer (this, SWT.MULTI | SWT.BORDER + | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION); + tableViewer.setContentProvider(new ResultViewContentProvder()); + tableViewer.setLabelProvider(new ResultViewLabelProvider()); + table = tableViewer.getTable(); + + FormData tableFormData = new FormData(); + tableFormData.top = new FormAttachment(0, 5); + tableFormData.left = new FormAttachment(0, 5); + tableFormData.bottom = new FormAttachment(100, -5); + tableFormData.right = new FormAttachment(100, -5); + table.setLayoutData(tableFormData); + + table.addKeyListener(new KeyListener() { + public void keyPressed(KeyEvent e) { + if(((e.stateMask & SWT.CTRL) == SWT.CTRL) && (e.keyCode == 'c')) { + String output = ""; + TableItem[] items = table.getSelection(); + for(TableItem item : items) { + String[] data = (String[])item.getData(); + output = output + data[0] + ", " + data[1] + ", \n"; + } + clipboard.setContents(new Object[] { output }, + new Transfer[] { TextTransfer.getInstance() }); + } + } + public void keyReleased(KeyEvent arg0) { + // TODO Auto-generated method stub + } + }); + + + + tc1 = new TableColumn(table, SWT.LEFT); + tc1.setText("Constraint "); + tc1.setWidth(160); + tc1.addSelectionListener(new SelectionAdapter() { + public void widgetSelected (SelectionEvent event) { + ArrayList<String[]> data = (ArrayList<String[]>) tableViewer.getInput(); + Comparator comparator = comparatorFactory.getComparator(tc1); + Collections.sort(data, comparator); + tableViewer.refresh(); + } + }); + + tc2 = new TableColumn(table, SWT.LEFT); + tc2.setText("Result"); + tc2.setWidth(120); + tc2.addSelectionListener(new SelectionAdapter() { + public void widgetSelected (SelectionEvent event) { + ArrayList<String[]> data = (ArrayList<String[]>) tableViewer.getInput(); + Comparator comparator = comparatorFactory.getComparator(tc2); + Collections.sort(data, comparator); + tableViewer.refresh(); + } + }); + + tableViewer.refresh(); + table.setHeaderVisible(true); + table.setLinesVisible(true); + + + + } + + public void updateInput(Object input) { + tableViewer.setInput(input); + tableViewer.refresh(); + } + + public void selectionChanged(IWorkbenchPart part, ISelection selection) { + if (selection instanceof IStructuredSelection) { + IStructuredSelection strucSel = (IStructuredSelection) selection; + Iterator<?> iter = strucSel.iterator(); + if (iter.hasNext()) { + Object o = iter.next(); + if (o instanceof DocumentData) { + DocumentData data = (DocumentData) o; + ArrayList<String[]> results = data.getResults(); + tableViewer.setInput(results); + tableViewer.refresh(); + } + } + } + } + + public TableViewer getViewer() { + return tableViewer; + } + +}
Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewContentProvder.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewContentProvder.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewContentProvder.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewContentProvder.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,42 @@ +/* + * 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.ruta.cde.ui; + +import java.util.ArrayList; + +import org.eclipse.jface.viewers.IStructuredContentProvider; +import org.eclipse.jface.viewers.Viewer; + +public class ResultViewContentProvder implements IStructuredContentProvider { + + public void dispose() { + } + + public void inputChanged(Viewer arg0, Object arg1, Object arg2) { + } + + public Object[] getElements(Object input) { + if (input instanceof ArrayList) { + return ((ArrayList<?>) input).toArray(); + } + return null; + } + +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewLabelProvider.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewLabelProvider.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewLabelProvider.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/ui/ResultViewLabelProvider.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,59 @@ +/* + * 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.ruta.cde.ui; + +import org.eclipse.jface.viewers.ILabelProviderListener; +import org.eclipse.jface.viewers.ITableLabelProvider; +import org.eclipse.swt.graphics.Image; + +public class ResultViewLabelProvider implements ITableLabelProvider { + + public void addListener(ILabelProviderListener arg0) { + } + + public void dispose() { + } + + public boolean isLabelProperty(Object arg0, String arg1) { + return false; + } + + public void removeListener(ILabelProviderListener arg0) { + + } + + public Image getColumnImage(Object arg0, int arg1) { + return null; + } + + public String getColumnText(Object input, int column) { + if(input instanceof String[]) { + String[] results = (String[])input; + switch(column) { + case 0 : + return results[0]; + case 1 : + return results[1]; + } + } + return null; + } + +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/CDEComparatorFactory.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/CDEComparatorFactory.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/CDEComparatorFactory.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/CDEComparatorFactory.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,164 @@ +/* + * 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.ruta.cde.utils; + +import java.text.Collator; +import java.util.Comparator; +import java.util.Locale; + +import org.eclipse.swt.widgets.TableColumn; + +public class CDEComparatorFactory { + + private int updown; + + public CDEComparatorFactory () { + updown = 1; + } + + private Comparator<DocumentData> stringDocumentComparator = new Comparator <DocumentData>() { + + public int compare(DocumentData object1, DocumentData object2) { + Collator collator = Collator.getInstance(); + + String docName1 = object1.getDocument().getName(); + String docName2 = object2.getDocument().getName(); + + int result = collator.compare(docName1, docName2) * updown; + return result; + } + }; + + private Comparator<DocumentData> resultComparator = new Comparator <DocumentData> () { + + public int compare(DocumentData object1, DocumentData object2) { + + double augment1 = object1.getAugmentedResult(); + double augment2 = object2.getAugmentedResult(); + + if (augment1 <= augment2) { + return 1 * updown; + } + else { + return -1 *updown; + } + + } + }; + + +private Comparator<DocumentData> f1ScoreComparator = new Comparator <DocumentData> () { + + public int compare(DocumentData object1, DocumentData object2) { + + double augment1 = object1.getFMeasure(); + double augment2 = object2.getFMeasure(); + + if (augment1 <= augment2) { + return 1 * updown; + } + else { + return -1 *updown; + } + + } + }; + + + + + private Comparator<ConstraintData> stringConstraintComparator = new Comparator <ConstraintData>() { + + public int compare(ConstraintData object1, ConstraintData object2) { + Collator collator = Collator.getInstance(); + + String constraintName1 = object1.getDescription(); + String constraintName2 = object2.getDescription(); + + int result = collator.compare(constraintName1, constraintName2) * updown; + return result; + } + + }; + + private Comparator<ConstraintData> intConstraintComparator = new Comparator <ConstraintData> () { + + public int compare(ConstraintData object1, ConstraintData object2) {; + + int weight1 = object1.getWeight(); + int weight2 = object2.getWeight(); + + return (weight1-weight2) * updown; + } + + }; + + private Comparator <String[]> resultNameComparator = new Comparator<String[]> () { + public int compare(String[] object1, String[] object2) { + + Collator collator = Collator.getInstance(Locale.getDefault()); + int result = collator.compare(object1[0], object2[0]) * updown; + return result; + } + }; + + private Comparator <String[]> resultValueComparator = new Comparator<String[]> () { + public int compare(String[] object1, String[] object2) { + double result1 = Double.valueOf(object1[1]); + double result2 = Double.valueOf(object2[1]); + if (result1 >= result2) + return 1 * updown; + else { + return -1 *updown; + } + } + }; + + public Comparator getComparator (TableColumn tc) { + this.updown = updown * (-1); + String columnName = tc.getText(); + + if(columnName.equals("CDE")) { + return resultComparator; + } + if(columnName.equals( "F1")) { + return f1ScoreComparator; + } + else if (columnName.equals("Document")) { + return stringDocumentComparator; + } + else if (columnName.equals("Constraint")) { + return stringConstraintComparator; + } + else if (columnName.equals("Weight")) { + return intConstraintComparator; + } + else if (columnName.equals("Constraint ")) { + return resultNameComparator; + } + else if (columnName.equals("Result")) { + return resultValueComparator; + } + return Collator.getInstance(); + } + + +} + Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintData.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintData.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintData.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintData.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,56 @@ +/* + * 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.ruta.cde.utils; + +import org.apache.uima.ruta.cde.IRutaConstraint; + +public class ConstraintData { + + private IRutaConstraint constraint; + + private int weight; + + public ConstraintData (IRutaConstraint constraint) { + this.constraint = constraint; + weight = 1; + } + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } + + public IRutaConstraint getConstraint () { + return constraint; + } + + public void setConstraint (IRutaConstraint constraint) { + this.constraint= constraint; + } + + public String getDescription () { + return constraint.getDescription(); + } + + +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLExporter.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLExporter.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLExporter.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLExporter.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,131 @@ +/* + * 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.ruta.cde.utils; + +import java.util.ArrayList; + +import org.eclipse.core.runtime.IPath; + +@SuppressWarnings("restriction") +public class ConstraintXMLExporter { + + IPath outputPath; + + ArrayList<ConstraintData> constraints; + + public ConstraintXMLExporter(ArrayList<ConstraintData> constraints) { + this.outputPath = outputPath; + this.constraints = constraints; + } + + public void saveConstraints(IPath outputPath) throws Exception { + +// IWorkspace workspace = ResourcesPlugin.getWorkspace(); +// IWorkspaceRoot root = workspace.getRoot(); +// String rootPath = root.getRawLocation().toPortableString(); + +// if(outputPath.getFileExtension() == null) { +// outputPath = outputPath.addFileExtension("xml"); +// +// System.out.println("adsf :" + outputPath.toOSString()); +// } else if +// +// (!outputPath.getFileExtension().equals("xml")) { +// outputPath.removeFileExtension(); +// outputPath = outputPath.addFileExtension("xml"); +// } + +// String absolutPath = rootPath + System.getProperty("file.separator") + outputPath.toOSString(); +// String absolutPath = outputPath.toOSString(); +// File file = new File(absolutPath); +// +// +// file.createNewFile(); +// +// +// +// // outputPath = Path.fromOSString("C:/test/test1.xml"); +// // Create a XMLOutputFactory +// XMLOutputFactory outputFactory = XMLOutputFactory.newInstance(); +// // Create XMLEventWriter +// XMLEventWriter eventWriter = outputFactory.createXMLEventWriter(new FileOutputStream(absolutPath)); +// // Create a EventFactory +// XMLEventFactory eventFactory = XMLEventFactory.newInstance(); +// XMLEvent end = eventFactory.createDTD("\n"); +// // Create and write Start Tag +// StartDocument startDocument = eventFactory.createStartDocument(); +// eventWriter.add(startDocument); +// StartElement constraintListStartElement = eventFactory.createStartElement("", "", +// "constraintList"); +// eventWriter.add(constraintListStartElement); +// eventWriter.add(end); +// +// for (ConstraintData data : constraints) { +// String constraintType = ""; +// if (data.getConstraint() instanceof IAugurTMConstraint) { +// IAugurTMConstraint constraint = (IAugurTMConstraint) data.getConstraint(); +// +// if (constraint instanceof SimpleRutaConstraint) { +// constraintType = "SimpleRutaConstraint"; +// +// } +// if (constraint instanceof ListRutaConstraint) { +// constraintType = "ListRutaConstraint"; +// } +// +// StartElement constraintStartElement = eventFactory.createStartElement("", "", +// constraintType); +// eventWriter.add(constraintStartElement); +// eventWriter.add(end); +// +// createNode(eventWriter, "rule", constraint.getRule()); +// } +// createNode(eventWriter, "description", data.getDescription()); +// createNode(eventWriter, "weight", String.valueOf(data.getWeight())); +// eventWriter.add(eventFactory.createEndElement("", "", constraintType)); +// eventWriter.add(end); +// } +// eventWriter.add(eventFactory.createEndElement("", "", "constraintList")); +// eventWriter.add(end); +// eventWriter.add(eventFactory.createEndDocument()); +// eventWriter.close(); + } + +// private void createNode(XMLEventWriter eventWriter, String name, String value) +// throws XMLStreamException { +// +// XMLEventFactory eventFactory = XMLEventFactory.newInstance(); +// XMLEvent end = eventFactory.createDTD("\n"); +// XMLEvent tab = eventFactory.createDTD("\t"); +// // Create Start node +// StartElement sElement = eventFactory.createStartElement("", "", name); +// eventWriter.add(tab); +// eventWriter.add(sElement); +// // Create Content +// Characters characters = eventFactory.createCharacters(value); +// eventWriter.add(characters); +// // Create End node +// EndElement eElement = eventFactory.createEndElement("", "", name); +// eventWriter.add(eElement); +// eventWriter.add(end); +// +// } + +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLImporter.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLImporter.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLImporter.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/ConstraintXMLImporter.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,108 @@ +/* + * 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.ruta.cde.utils; + +import java.util.ArrayList; + +import org.apache.uima.ruta.cde.RutaConstraintFactory; +import org.eclipse.core.runtime.IPath; + +@SuppressWarnings({ "unchecked", "null", "restriction" }) +public class ConstraintXMLImporter { + + ArrayList<ConstraintData> constraints; + + IPath inputPath; + + RutaConstraintFactory factory; + + // IAugurConstraint constraint; + + public ConstraintXMLImporter() { + super(); + this.factory = new RutaConstraintFactory(); + } + + public ArrayList<ConstraintData> readXML(IPath inputPath) { +// System.out.println(inputPath.toOSString()); + this.inputPath = inputPath; + constraints = new ArrayList<ConstraintData>(); + +// try { +// // First create a new XMLInputFactory +// XMLInputFactory inputFactory = XMLInputFactory.newInstance(); +// // Setup a new eventReader +// InputStream in = new FileInputStream(inputPath.toOSString()); +// XMLEventReader eventReader = inputFactory.createXMLEventReader(in); +// // Read the XML document +// IAugurTMConstraint constraint = null; +// ConstraintData data = null; +// while (eventReader.hasNext()) { +// XMLEvent event = eventReader.nextEvent(); +// +// if (event.isStartElement()) { +//// System.out.println(event.asStartElement().getName().getLocalPart()); +// if (event.asStartElement().getName().getLocalPart().equals("SimpleRutaConstraint")) { +// StartElement startElement = event.asStartElement(); +// constraint = factory.createConstraint(startElement.getName().getLocalPart()); +// data = new ConstraintData(constraint); +// constraints.add(data); +// } +// } +// +// if (event.isStartElement()) { +// if (event.asStartElement().getName().getLocalPart().equals("ListRutaConstraint")) { +// StartElement startElement = event.asStartElement(); +// constraint = factory.createConstraint(startElement.getName().getLocalPart()); +// data = new ConstraintData(constraint); +// constraints.add(data); +// } +// } +// +// if(event.isStartElement()) { +// if(event.asStartElement().getName().getLocalPart().equals("rule")) { +// event = eventReader.nextEvent(); +// constraint.setRule(event.asCharacters().getData()); +// continue; +// } +// } +// +// if(event.isStartElement()) { +// if(event.asStartElement().getName().getLocalPart().equals("description")) { +// event = eventReader.nextEvent(); +// constraint.setDescription(event.asCharacters().getData()); +// continue; +// } +// } +// +// if(event.isStartElement()) { +// if(event.asStartElement().getName().getLocalPart().equals("weight")) { +// event = eventReader.nextEvent(); +// data.setWeight(Integer.valueOf(event.asCharacters().getData())); +// continue; +// } +// } +// } +// } catch (Exception e) { +// e.printStackTrace(); +// } + return constraints; + } +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/DocumentData.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/DocumentData.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/DocumentData.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/DocumentData.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,74 @@ +/* + * 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.ruta.cde.utils; + +import java.io.File; +import java.util.ArrayList; + +public class DocumentData { + + private File document; + + private double augmentedResult; + + private double fMeasure; + + private ArrayList<String[]> results; + + public DocumentData(File document) { + this.document = document; + this.augmentedResult = 0; + this.fMeasure = 0; + this.results = new ArrayList<String[]>(); + } + + public void setDocument(File document) { + this.document = document; + } + + public void setAugmentedResult (double result) { + this.augmentedResult = result; + } + + public File getDocument() { + return this.document; + } + + public double getAugmentedResult () { + return this.augmentedResult; + } + + public ArrayList<String[]> getResults() { + return results; + } + + public void setResults(ArrayList<String[]> results) { + this.results = results; + } + + public void setFMeasure(double fMeasure) { + this.fMeasure = fMeasure; + } + + public double getFMeasure() { + return this.fMeasure; + } + +} Added: uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/EvaluationMeasures.java URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/EvaluationMeasures.java?rev=1489049&view=auto ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/EvaluationMeasures.java (added) +++ uima/sandbox/ruta/trunk/ruta-ep-addons/src/main/java/org/apache/uima/ruta/cde/utils/EvaluationMeasures.java Mon Jun 3 16:06:47 2013 @@ -0,0 +1,77 @@ +/* + * 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.ruta.cde.utils; + +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.util.ArrayList; +import java.util.Locale; + +import org.apache.commons.math3.linear.ArrayRealVector; +import org.apache.commons.math3.stat.correlation.SpearmansCorrelation; +import org.apache.commons.math3.stat.inference.TestUtils; + +public class EvaluationMeasures { + + public static String getMeasureReport(ArrayList<Double[]> results) { + double[] x = new double[results.size()]; + double[] y = new double[results.size()]; + int index = 0; + for (Double[] resultPair : results) { + x[index] = resultPair[0]; + y[index] = resultPair[1]; + index++; + } + double spearmans = new SpearmansCorrelation().correlation(x, y); + double pairedT = TestUtils.pairedT(x, y); + double cosine = cosine(x, y); + spearmans = round(spearmans); + pairedT = round(pairedT); + cosine = round(cosine); + + String report = "cosine=" + cosine + " spearmans=" + spearmans + " pairedT=" + pairedT; + return report; + } + + public static double round(double d) { + DecimalFormat instance = (DecimalFormat) DecimalFormat.getInstance(Locale.US); + instance.applyPattern("#.####"); + String format = instance.format(d); + return Double.valueOf(format); + } + + public static double cosine(double[] a1, double[] a2) { + ArrayRealVector v1 = new ArrayRealVector(a1); + ArrayRealVector v2 = new ArrayRealVector(a2); + return v1.dotProduct(v2) / (v1.getNorm() * v2.getNorm()); + } + + public static double cosine(ArrayList<Double[]> results) { + double[] x = new double[results.size()]; + double[] y = new double[results.size()]; + int index = 0; + for (Double[] resultPair : results) { + x[index] = resultPair[0]; + y[index] = resultPair[1]; + index++; + } + return cosine(x, y); + } +} Modified: uima/sandbox/ruta/trunk/ruta-ep-engine/pom.xml URL: http://svn.apache.org/viewvc/uima/sandbox/ruta/trunk/ruta-ep-engine/pom.xml?rev=1489049&r1=1489048&r2=1489049&view=diff ============================================================================== --- uima/sandbox/ruta/trunk/ruta-ep-engine/pom.xml (original) +++ uima/sandbox/ruta/trunk/ruta-ep-engine/pom.xml Mon Jun 3 16:06:47 2013 @@ -152,7 +152,7 @@ licensed under the Common Public License org.apache.commons.lang3.*, org.apache.commons.io.*, org.apache.uima.fit.*, - org.reflections.* + org.apache.commons.math3.* </_exportcontents> <Require-Bundle> org.apache.uima.runtime