Ticket #439 (closed defect: fixed)

Opened 1 year ago

Last modified 7 months ago

Article Content Model needs fixing.

Reported by: amit Assigned to: ronald
Priority: critical Milestone: 0.9.0
Component: ambra Version: 0.7
Keywords: content-model article Cc:
Blocking: Blocked By:

Description (Last modified by ronald)

There are a few problems with the existing Article content model that needs to be fixed:

  • Stop creating objects in fedora for article categories; also, remove pid and state fields from Category
  • Remove state from ObjectInfo and put it in Article only. Update ArticleOtmService.setState() and deny-inactive xacml rule
  • Make Article.parts an RdfSeq or RdfList, and get rid of ObjectInfo.nextObject
  • Add rdf:type to ObjectInfo

Turns out that ingestion also needs to be cleaned up here in a big way. The main thing is that ingest needs to start using OTM instead of inserting rdf and fedora objects directly - blob handling especially needs to go through OTM too so A) ingest is not fedora specific and can use whatever blob-store is configured, such as the SimpleBlobStore for testing, and B) blob handling falls under the global transaction too.

To do this pmc2obj will generate xml descriptions of the OTM model classes and those will be used to instantiate and populate model instances. It might also be worth considering replacing the pmc2obj functionality with, say, a groovy script, though there's still the article-munging which is easier in xslt.

As part of this work some of the model fixes above will come for free.

This work is being coordinated with that on #856.

Dependency Graph

Change History

07/04/07 11:07:09 changed by amit

  • component changed from topaz to Information-Model.

07/20/07 10:11:55 changed by amit

  • milestone changed from Bugs to 0.9.

09/02/07 22:41:40 changed by

  • milestone deleted.

Milestone 0.9 deleted

03/19/08 16:51:32 changed by amit

  • milestone set to 0.9.0.

04/04/08 18:54:45 changed by amit

  • priority changed from high to critical.

04/04/08 18:58:23 changed by amit

  • component changed from information-model to publishing-app.

04/14/08 17:46:19 changed by amit

  • blocking changed.
  • blockedby changed.
  • description changed.

04/14/08 17:49:45 changed by amit

Ronald, can you please update this ticket because of the problem with ingestion and fix the whole things at once? Thanks.

04/15/08 04:00:36 changed by ronald

  • description changed.

04/21/08 15:25:47 changed by ronald

  • status changed from new to assigned.

05/04/08 04:22:36 changed by ronald

(In [5594]) Rework ingest (this addresses #439):

  • moved most of sip processing out of ingest proper and into a standalone utility in article-util. This includes fixing up relative article links, image scaling, and validation of the final sip. In order to reduce the guesswork needed by the various parts and to localize the handling of AP's zip format, the concept of a manifest that describes the entries in the sip has been introduced, and the first step of sip processing is to generate this manifest (MANIFEST.xml).
  • the last stage of ingest, the extraction of the metadata from the article, has been moved into the webapp.
  • ingest now creates OTM model objects from the article metadata and uses OTM to save them, instead of dealing with raw itql and fedora calls.
  • Because of this, Category objects are no longer stored in fedora (they have never been used anyway and were an artifact of early modeling).
  • As a side effect of using OTM for ingesting new objects, there is now a flag on ingest to allow re-ingesting of an existing article (instead of it throwing a duplicate-id-exception); the admin UI has been updated to allow this flag to be set.
  • Various webapp-internal cleanups have been made as part of the move of ingest to the webapp
  • Ensure the complete list of nested error messages are displayed when an ingest error occurs.
  • the article-ingest and article-delete scripts from article-util have been removed because the code they relied on is now in the webapp, and because it a bad idea to do these operations behind the server's back.

Image processing (and therefore sip preparation) currently only works correctly for articles proper, as the image-set code/concept has been removed (to be re-introduced from the 0.8.2.2 branch shortly).

Also, search-indexing has been disabled because it requires either the transaction rework which is part of #897 plus a hack, or it requires ingest to provide the meta-data directly to search (instead having the search service pull the article out of fedora and re-extract the metadata).

As part of this some otm model rework was done (which also addresses #439):

  • the pid field has been removed from ObjectInfo? and Category as it is neither needed nor desired (it's fedora specific and is handled by the fedora-blob-store).
  • Article.parts has been converted to an rdf:Seq, thereby obviating the nextObject field hack in ObjectInfo? and the corresponding code that built the ordered list from it.

05/04/08 19:29:18 changed by ronald

(In [5608]) Add rdf:type to ObjectInfo?. Addresses #439.

05/05/08 00:17:28 changed by ronald

(In [5611]) Removed state field from ObjectInfo? and Category, moving it to only Article instead. Use propagate-permissions-to when doing access-control based on article state.

Addresses #439.

05/06/08 08:58:42 changed by ronald

  • status changed from assigned to closed.
  • resolution set to fixed.

(In [5636]) Added image-set config support, and added differening processing depending on the context the image link appears in. The image processing should now be complete with respect to the funtionality in the 0.8.2.2 branch.

This completes and closes #439.