Folks,

My main question is: can the tab-delimited spreadsheet wizard handle null 
values in some columns?

Background:

Last Friday, I've tried a more complicated tab-delimited input into the 
spreadsheet wizard, running TBC SE 3.5.2v22110828-2200R. This text file has 
about 10 columns, 330+ rows, but some rows have no values in some columns. So 
it is not a fully populated matrix. I'm attempting to create a new ontology, 
not add to an existing ontology.

The import spreadsheet wizard throws errors and seemingly randomly terminates 
writing the output file. The output file seems mostly correct except that it is 
truncated. When I manually (in a text editor) correct the truncated RDF, then 
save it (i.e., it is just a subset of the initial tab-delimited text file, 
approximately 78 rows out of 330 or so), it is loadable, e.g., into Protégé 
without errors, and looks correct.  By default it seems that the properties 
generated are annotation properties, not data (or object) properties. Can I 
tweak that?

Another weirdness is TBC cannot open these corrected files, stating that they 
don't exist (though text editors and more importantly Protégé can open them). 
Perhaps some file info is cached in the TBC project space?

Unfortunately I don't have the errors, since the particular installation is at 
a different site, and I didn't print out the traces (I'll get it next time I'm 
in, i.e., Tues, tomorrow).

However, I did attempt to reproduce the behavior today using some large, 
similar data, and a smaller text set of 6 rows, on a different Windows machine 
using Version 3.5.4.v20120206-0955R. The larger data set results in a null RDF 
file, with error trace calling out "an unexpected error". The smaller data set 
results in a null RDF file, with error trace calling out "Failed to execute 
runnable (java.lang.IllegalArgumentException: Argument cannot be null)", which 
is what I actually expected.

=====

TEST1: (larger data)

An unexpected error has occured.

If you believe this is due to a bug in TopBraid Composer, then please consider 
to report the problem to [email protected] and ideally include an 
export of the Error Log View (Window > Show View > Error Log).

On: Sep 24, 2012 1:49:57 PM

Reason:
com.hp.hpl.jena.shared.InvalidPropertyURIException: 
http://www.mycompany.com/test_orgs#

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.splitTag(BaseXMLWriter.java:393)

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.tag(BaseXMLWriter.java:405)

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.startElementTag(BaseXMLWriter.java:364)

               at 
com.hp.hpl.jena.xmloutput.impl.Basic.writePredicate(Basic.java:93)

               at 
com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:77)

               at 
com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:66)

               at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:40)

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:503)

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:472)

               at 
com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:458)

               at org.topbraid.core.io.IO.write(IO.java:437)

               at org.topbraid.core.io.IO.write(IO.java:486)

               at org.topbraidcomposer.core.io.TBCIO.write(TBCIO.java:171)

               at org.topbraidcomposer.core.io.TBCIO.write(TBCIO.java:150)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.saveFile(ImportSpreadsheetWizard.java:219)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.runImport(ImportSpreadsheetWizard.java:175)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.access$0(ImportSpreadsheetWizard.java:131)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard$1.execute(ImportSpreadsheetWizard.java:96)

               at 
org.topbraid.core.change.ChangeOperation.execute(ChangeOperation.java:105)

               at 
org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:511)

               at 
org.topbraid.core.change.AbstractChangeEngine.execute(AbstractChangeEngine.java:271)

               at 
org.topbraidcomposer.core.change.TBCChangeEngine.execute(TBCChangeEngine.java:193)

               at 
org.topbraidcomposer.core.change.TBCChangeEngine$2.run(TBCChangeEngine.java:163)

               at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

=====

TEST 2: ( 6 rows of sparse data)

Operation failed.

On: Sep 24, 2012 2:03:26 PM

Reason:
org.eclipse.swt.SWTException: Failed to execute runnable 
(java.lang.IllegalArgumentException: Argument cannot be null)

               at org.eclipse.swt.SWT.error(SWT.java:4083)

               at org.eclipse.swt.SWT.error(SWT.java:3998)

               at 
org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:195)

               at 
org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:150)

               at org.eclipse.swt.widgets.Display.syncExec(Display.java:4584)

               at org.topbraidcomposer.core.io.TBCIO.write(TBCIO.java:158)

               at org.topbraidcomposer.core.io.TBCIO.write(TBCIO.java:150)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.saveFile(ImportSpreadsheetWizard.java:219)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.runImport(ImportSpreadsheetWizard.java:175)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.access$0(ImportSpreadsheetWizard.java:131)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard$1.execute(ImportSpreadsheetWizard.java:96)

               at 
org.topbraid.core.change.ChangeOperation.execute(ChangeOperation.java:105)

               at 
org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:511)

               at 
org.topbraid.core.change.AbstractChangeEngine.execute(AbstractChangeEngine.java:271)

               at 
org.topbraidcomposer.core.change.TBCChangeEngine.execute(TBCChangeEngine.java:193)

               at 
org.topbraidcomposer.core.change.TBCChangeEngine$2.run(TBCChangeEngine.java:163)

               at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

Caused by: java.lang.IllegalArgumentException: Argument cannot be null

               at org.eclipse.swt.SWT.error(SWT.java:4064)

               at org.eclipse.swt.SWT.error(SWT.java:3998)

               at org.eclipse.swt.SWT.error(SWT.java:3969)

               at org.eclipse.swt.widgets.Dialog.error(Dialog.java:198)

               at org.eclipse.swt.widgets.Dialog.checkParent(Dialog.java:164)

               at org.eclipse.swt.widgets.Dialog.<init>(Dialog.java:127)

               at org.eclipse.swt.widgets.MessageBox.<init>(MessageBox.java:98)

               at org.topbraidcomposer.core.io.TBCIO$1.run(TBCIO.java:161)

               at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

               at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

               at 
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)

               at 
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)

               at 
org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:173)

               at 
org.eclipse.jface.operation.ModalContext.run(ModalContext.java:388)

               at 
org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:507)

               at 
org.eclipse.ui.internal.progress.ProgressMonitorJobsDialog.run(ProgressMonitorJobsDialog.java:275)

               at 
org.eclipse.ui.internal.progress.ProgressManager$5.run(ProgressManager.java:960)

               at 
org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)

               at 
org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:995)

               at 
org.eclipse.ui.internal.progress.ProgressManager.busyCursorWhile(ProgressManager.java:970)

               at 
org.topbraidcomposer.core.change.TBCChangeEngine$3.run(TBCChangeEngine.java:169)

               at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)

               at 
org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)

               at 
org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)

               at 
org.eclipse.swt.widgets.Display.msgFilterProc(Display.java:3375)

               at org.eclipse.swt.internal.win32.OS.MessageBoxW(Native Method)

               at org.eclipse.swt.internal.win32.OS.MessageBox(OS.java:2940)

               at org.eclipse.swt.widgets.MessageBox.open(MessageBox.java:207)

               at 
org.topbraidcomposer.spreadsheets.wizard.ImportSpreadsheetWizard.performFinish(ImportSpreadsheetWizard.java:112)

               at 
org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:811)

               at 
org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:430)

               at 
org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)

               at 
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)

               at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

               at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

               at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

               at 
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

               at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)

               at org.eclipse.jface.window.Window.open(Window.java:801)

               at 
org.eclipse.ui.internal.handlers.WizardHandler$Import.executeHandler(WizardHandler.java:147)

               at 
org.eclipse.ui.internal.handlers.WizardHandler.execute(WizardHandler.java:274)

               at 
org.eclipse.ui.internal.handlers.HandlerProxy.execute(HandlerProxy.java:293)

               at 
org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)

               at 
org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)

               at 
org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)

               at 
org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand(SlaveHandlerService.java:241)

               at 
org.eclipse.ui.internal.actions.CommandAction.runWithEvent(CommandAction.java:157)

               at 
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)

               at 
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)

               at 
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)

               at 
org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)

               at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)

               at 
org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)

               at 
org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)

               at 
org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2629)

               at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2593)

               at 
org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2427)

               at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)

               at 
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)

               at 
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)

               at 
org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)

               at 
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)

               at 
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)

               at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)

               at 
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)

               at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)

               at 
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)

               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

               at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

               at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown 
Source)

               at java.lang.reflect.Method.invoke(Unknown Source)

               at 
org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)

               at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)

               at org.eclipse.equinox.launcher.Main.run(Main.java:1407)

               at org.eclipse.equinox.launcher.Main.main(Main.java:1383)

=====

Also, I understand I can use Semantic Tables, which will get the spreadsheet in 
and enable me to use SPARQL queries to generate what I want. But I hadn't yet 
wanted to try that, preferring first to see whether the simpler tab-delimited 
approach would work.

Any suggestions? My guess is that null values in the matrix are causing the 
errors. Unselecting various fields (which might contain nulls) does not help, 
but instead it just errors at different places. Selecting just the first column 
(which does have values in every row) still causes failure, as I believed that 
it would, since single column input is not accepted by the wizard. However, I 
do know that I will be getting excel spreadsheets in the future that are very 
much like this, i.e., containing nulls in some columns of some rows.

Here's the small test set:


name sameAs     sameAs     sameAs

A    A1   A2   A3

B          B4   B5

C    C6   C7   C8

D    D9         D10

E    E11  E12

F    F13  F14  F15


Thanks!
Leo

_____________________________________________
Dr. Leo Obrst        The MITRE Corporation, Information Semantics
[email protected]     Information Discovery & Understanding, Command & Control 
Cntr
Voice: 703-983-6770  7515 Colshire Drive, M/S H305
Fax: 703-983-1379    McLean, VA 22102-7508, USA



-- 
-- You received this message because you are subscribed to the Google
Group "TopBraid Suite Users", the topics of which include Enterprise Vocabulary 
Network (EVN), TopBraid Composer, TopBraid Live,
TopBraid Ensemble, SPARQLMotion, SPARQL Web Pages and SPIN.
To post to this group, send email to
[email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/topbraid-users?hl=en


Reply via email to