[ome-devel] Housekeeping..
Josiah Johnston
siah at nih.gov
Wed Jul 21 19:57:34 BST 2004
> Apropos OME format, I tried an ome file as generated by Imaris (4.0.5)
> and this
> was a failure. Later in this message, the extract of error_log,
> regarding this
> import operation.
>
> Any idea? Bitplane? OME Team?
Without seeing the file, I can't be sure, but I suspect the
ExperimenterRef tag under Image is absent (as the schema allows). The
back-end Image class requires an Experimenter field. The way we handle
this with other image formats is assume the image belongs to the user
that is importing it.
If this is really the problem, my short answer is: It's our fault. We
[the OME team] need to solve it with a minor bit of code and adding a
rule to the schema to prevent data inconsistencies.
The long answer (& proposal))
---------------------------------
An obvious solution is to adopt the usual strategy for image in the OME
format that don't say who they belong to.
A problem arises with Image in OME files that have qualified LSIDs. (1)
If such an image is imported into two separate OME installations by two
people, then the experimenter in the images will differ. This
introduces data inconsistencies: the two installations will return
contradictory objects for the same LSID.
My proposed solution is to
require an ExperimenterRef for Images with qualified LSIDs, and
populate the Image's ExperimenterRef with the currently logged in User
for Images that lack an LSID and lack an ExperimenterRef
This would be very easy to implement.
The rejected solutions:
---------------------------------
Make ExperimenterRef required in the schema.
This disallows direct translation from an existing file that lacks an
Experimenter description to an OME file.
Drop the Experimenter requirement in the back-end Image class
The experimenter is a very important bit of information. If we did
drop this requirement, we could still reconstruct who imported the
image. However, the person who imports an Image could easily be
different from the person that took the image. It's excedingly useful
to guarantee a recording of who took the image (or minimally, knows
where it came from). One could claim the person who imports an image
should not be assumed to be the experimenter, but they most often will
be. *shrug* This solution has many more implications.
Notes
---------------------------------
(1) An LSID is a Globally Unique Identifier that can (in principle) be
resolved to an object by whoever issued it. Folks that want to write
OME files but don't want to bother with guaranteeing LSID resolution
will use typical xml ids instead.
-josiah
>
> Regards, Claude
>
>
> 04/07/21 15:54:10 serve.pl[3987]: OME::Tasks::OMEImport->importFile:
> imported
> bla77_MLE.ome
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->new
> called with parameters:
> session=>OME::Session=HASH(0x94f664c)
> semanticTypes=>
> semanticColumns=>
> _parser=>XML::LibXML=HASH(0x918ef8c)
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->new
> returning successfully
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->processDOM: Processing Projects
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->processDOM: Processing Datasets
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->processDOM: Processing Images
> 04/07/21 15:54:10 serve.pl[3987]:
> OME::ImportExport::HierarchyImport->importObject: Importing node Image
> type 1
> [Wed Jul 21 15:54:10 2004] -e: DBD::Pg::st execute failed: ERROR:
> ExecInsert:
> Fail to add null value in not null attribute experimenter_id at /usr
> /lib/perl5/site_perl/5.8.0/OME/DBObject.pm line 2329.
> 04/07/21 15:54:10 serve.pl[3987]: Error DBD::Pg::st execute failed:
> ERROR:
> ExecInsert: Fail to add null value in not null attribute
> experimenter_i
> d at /usr/lib/perl5/site_perl/5.8.0/OME/DBObject.pm line 2329.
>
> OME::Factory::newObject('OME::Factory=HASH(0x90f2c2c)','OME::
> Image','HASH(0x8a29c24)')
> called at /usr/lib/perl5/site_perl/5.8.0/OME/ImportE
> xport/HierarchyImport.pm line 442
> [SNIP]
More information about the ome-devel
mailing list