Dear Peter,

thank you very much for your helpful answer!

I tried the two options and both lenient loading and a merged type system in the project root worked for me. Thanks a lot!

Best regards,

Björn Rudzewitz

Am 15.07.20 um 12:42 schrieb Peter Klügl:
Hi,


the problem is that the type system used to open the XMI file does not
define all typed present in the XMI.


Short answer:

If you do not really care about the type DocumentMetaData, then activate
leniently loading in the preferences: Menu -> Window -> Preferences ->
UIMA Cas Editor -> Annotation Editor -> Load CAS leniently

When checked, annotation of types not present in the used type system
description will be ignored. Please mind that they will be lost if the
CAS is modified and stored again.


Long answer:

The CAS Editor requires a type system (description) in order to open a
CAS/XMI file. There are different strategies how the type system is
selected. Eclipse is able to remember the type system once used to open
a specific file. Then, there could be a default type system in the scope
of the project, normally project-root/TypeSystem.xml. Then, there are
also additional strategies in the Ruta Workbench: if the last launch
delegate (launch config) is a Ruta script and this Ruta script is in the
same project as the XMI file, then use the generated type system
descriptor of that Ruta script.

You can normally check the used type system in the tab of the editor
(tooltip?).

If you have a merged type system with all types, you could name it
"TypeSystem.xml" and copy it to the project root.

You could add an import of the type system for missing types in the Ruta
script, so that the generated description contains all types and the
exception is avoided.

The solution of your problem depends a bit on how you use the Ruta
Workbench. I personally only use maven projects and rely on the merged
type system in the project root, which is automatically created using
classpath scanning.

If you only want to take a look at the some annotations and others can
be neglected, then I would change the preference mentioned above.


Best,


Peter


Am 13.07.2020 um 12:25 schrieb Björn Rudzewitz:
Dear all,

I want use RUTA to develop rules to extend the output of a UIMA
pipeline. The original pipeline is defined in another project and uses
a type system that extends the DKPro type system by importing certain
types from it, but it also has custom types that are not available in
DKPro.

I already exported a merged type system that does not contain import
statements/references to external type systems and put that into the
descriptor/ folder of my RUTA project (which is in the build path). In
the input/ folder of my RUTA project, I put some XMI files that I
exported from the original pipeline.

In order to test the approach, I wrote a simple RUTA script with one
rule (supposed to mark ):

TYPESYSTEM DidiTypeSystem;

Token{REGEXP("...er") -> MARK(CompAdv)};

The problem is when I run this RUTA script and select one of the
generated XMIs in the output folder, I get an error message that I can
not interpret (see below at the end of the mail). It seems to be the
case that it can not find the DocumentMetaData type from DKPro, but I
checked and it is present in the type system. I also used the
org.apache.uima.tools.AnnotationViewerMain tool outside of RUTA to
double-check and the DocumentMetaData annotation is definitely present
in the document and annotated on the netire source text.

I would be very gratefule for any hints as to what I could do to
overcome the error.

Best regards,

Björn Rudzewitz

org.apache.uima.UIMARuntimeException
     at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:368)
     at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:312)
     at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:193)
     at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:218)
     at
org.apache.uima.caseditor.editor.DocumentUimaImpl.setContent(DocumentUimaImpl.java:291)
     at
org.apache.uima.caseditor.editor.DocumentUimaImpl.<init>(DocumentUimaImpl.java:105)
     at
org.apache.uima.caseditor.ide.DefaultCasDocumentProvider.createDocument(DefaultCasDocumentProvider.java:405)
     at
org.apache.uima.caseditor.editor.TextDocumentProvider.createDocument(TextDocumentProvider.java:103)
     at
org.eclipse.ui.texteditor.AbstractDocumentProvider.createElementInfo(AbstractDocumentProvider.java:330)
     at
org.apache.uima.caseditor.editor.TextDocumentProvider.createElementInfo(TextDocumentProvider.java:135)
     at
org.eclipse.ui.texteditor.AbstractDocumentProvider.connect(AbstractDocumentProvider.java:395)
     at
org.eclipse.ui.texteditor.AbstractTextEditor.doSetInput(AbstractTextEditor.java:4212)
     at
org.eclipse.ui.texteditor.StatusTextEditor.doSetInput(StatusTextEditor.java:260)
     at
org.apache.uima.caseditor.editor.AnnotationEditor.doSetInput(AnnotationEditor.java:924)
     at
org.eclipse.ui.texteditor.AbstractTextEditor.lambda$1(AbstractTextEditor.java:3179)
     at
org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:436)
     at
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:352)
     at
org.eclipse.ui.internal.WorkbenchWindow.lambda$5(WorkbenchWindow.java:2419)
     at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
     at
org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2417)
     at
org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3196)
     at
org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3221)
     at
org.apache.uima.caseditor.editor.AnnotationEditor.init(AnnotationEditor.java:667)
     at
org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:353)
     at
org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:340)
     at jdk.internal.reflect.GeneratedMethodAccessor87.invoke(Unknown
Source)
     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
     at
org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:58)
     at
org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:1002)
     at
org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:967)
     at
org.eclipse.e4.core.internal.di.InjectorImpl.internalInject(InjectorImpl.java:139)
     at
org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:408)
     at
org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:331)
     at
org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:202)
     at
org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:91)
     at
org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:60)
     at
org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:42)
     at
org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:132)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:1002)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:662)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:768)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:739)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:733)
     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:717)
     at
org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1297)
     at
org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:75)
     at
org.eclipse.e4.ui.services.internal.events.UIEventHandler.lambda$0(UIEventHandler.java:38)
     at
org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:236)
     at
org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:146)
     at org.eclipse.swt.widgets.Display.syncExec(Display.java:5786)
     at
org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:219)
     at
org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:38)
     at
org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:205)
     at
org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:203)
     at
org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
     at
org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:234)
     at
org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:151)
     at
org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:132)
     at
org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:75)
     at
org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:44)
     at
org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:55)
     at
org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:63)
     at
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:424)
     at
org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElementGen(ElementContainerImpl.java:170)
     at
org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:188)
     at
org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:661)
     at
org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:625)
     at
org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:790)
     at
org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:404)
     at
org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1239)
     at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3207)
     at
org.eclipse.ui.internal.WorkbenchPage.lambda$9(WorkbenchPage.java:3112)
     at
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:72)
     at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3110)
     at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3080)
     at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3071)
     at org.eclipse.ui.ide.IDE.openEditor(IDE.java:570)
     at org.eclipse.ui.ide.IDE.openEditor(IDE.java:525)
     at
org.eclipse.dltk.internal.ui.editor.EditorUtility.openInEditor(EditorUtility.java:380)
     at
org.eclipse.dltk.internal.ui.editor.EditorUtility.openInEditor(EditorUtility.java:149)
     at
org.eclipse.dltk.internal.ui.actions.OpenActionUtil.open(OpenActionUtil.java:45)
     at org.eclipse.dltk.ui.actions.OpenAction.run(OpenAction.java:265)
     at org.eclipse.dltk.ui.actions.OpenAction.run(OpenAction.java:246)
     at
org.eclipse.dltk.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:282)
     at
org.eclipse.dltk.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:260)
     at
org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerActionGroup.handleOpen(ScriptExplorerActionGroup.java:327)
     at
org.eclipse.dltk.internal.ui.scriptview.ScriptExplorerPart.lambda$2(ScriptExplorerPart.java:629)
     at
org.eclipse.jface.viewers.StructuredViewer$2.run(StructuredViewer.java:797)
     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
     at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
     at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
     at
org.eclipse.jface.viewers.StructuredViewer.fireOpen(StructuredViewer.java:794)
     at
org.eclipse.jface.viewers.StructuredViewer.handleOpen(StructuredViewer.java:1110)
     at
org.eclipse.jface.util.OpenStrategy.fireOpenEvent(OpenStrategy.java:275)
     at
org.eclipse.jface.util.OpenStrategy.access$2(OpenStrategy.java:270)
     at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:310)
     at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
     at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5676)
     at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
     at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4935)
     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4429)
     at org.eclipse.jface.window.Window.runEventLoop(Window.java:823)
     at org.eclipse.jface.window.Window.open(Window.java:799)
     at
org.eclipse.ui.internal.views.log.EventDetailsDialog.open(EventDetailsDialog.java:191)
     at
org.eclipse.ui.internal.views.log.EventDetailsDialogAction.run(EventDetailsDialogAction.java:102)
     at
org.eclipse.ui.internal.views.log.LogView.lambda$2(LogView.java:588)
     at
org.eclipse.jface.viewers.StructuredViewer$1.run(StructuredViewer.java:777)
     at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
     at org.eclipse.ui.internal.JFaceUtil.lambda$0(JFaceUtil.java:47)
     at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:174)
     at
org.eclipse.jface.viewers.StructuredViewer.fireDoubleClick(StructuredViewer.java:774)
     at
org.eclipse.jface.viewers.AbstractTreeViewer.handleDoubleSelect(AbstractTreeViewer.java:1518)
     at
org.eclipse.jface.viewers.StructuredViewer$4.widgetDefaultSelected(StructuredViewer.java:1205)
     at
org.eclipse.jface.util.OpenStrategy.fireDefaultSelectionEvent(OpenStrategy.java:251)
     at
org.eclipse.jface.util.OpenStrategy.access$0(OpenStrategy.java:249)
     at
org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java:308)
     at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
     at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5676)
     at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1423)
     at
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4935)
     at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4429)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1160)
     at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
     at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1049)
     at
org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:155)
     at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:660)
     at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:338)
     at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:559)
     at
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:154)
     at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:150)
     at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:203)
     at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:137)
     at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:107)
     at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:401)
     at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:255)
     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
     at
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
     at
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.base/java.lang.reflect.Method.invoke(Method.java:566)
     at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:657)
     at org.eclipse.equinox.launcher.Main.basicRun(Main.java:594)
     at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
     at org.eclipse.equinox.launcher.Main.main(Main.java:1438)
Caused by: XCASParsingException: Error parsing XCAS or XMI-CAS from
source <unknown> at line <unknown>, column <unknown>: unknown type:
de.tudarmstadt.ukp.dkpro.core.api.metadata.type.DocumentMetaData.
     at
org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.createException(XmiCasDeserializer.java:1635)
     at
org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.createException(XmiCasDeserializer.java:1657)
     at
org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.readFS(XmiCasDeserializer.java:490)
     at
org.apache.uima.cas.impl.XmiCasDeserializer$XmiCasDeserializerHandler.startElement(XmiCasDeserializer.java:409)
     at
org.apache.uima.util.XmlCasDeserializer$XmlCasDeserializerHandler.startElement(XmlCasDeserializer.java:150)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:183)
     at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
     at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2710)
     at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
     at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
     at
java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
     at
java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216)
     at
org.apache.uima.util.XmlCasDeserializer.deserializeR(XmlCasDeserializer.java:111)
     at org.apache.uima.util.CasIOUtils.load(CasIOUtils.java:366)
     ... 144 more



--
Björn Rudzewitz, M.A.
Universität Tübingen
Seminar für Sprachwissenschaft
[email protected]
http://www.sfs.uni-tuebingen.de/~brzdwtz/

Reply via email to