Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Additionally, let's assume that Fedora's REST API exposed URIs for the methods expressed in these SDefs as follows:

Wiki Markup{{[http://(fedora.server)/services/(object-pid)/(sdef-pid)/(method)]\[/additional\]}}unmigrated-wiki-markup

...where  \where  [/additional\] could be parameters, or additional path elements in the URI.

For example, one of our service methods above would look like http://example.org/fedora/services/demo:SmileyStuff/atom:Collection/entries

...

So far, we've really only discussed the public "interfaces" of AtomPub in a writable CMA - the SDefs, URIs, and data formats.  Let us now take a look at all CMA and instance objects together, and see if we can map our desired functionality on to them.

Image item model: (augments capabilities in demo:DualResImage)

Code Block
pid:                       thought-expdemo:ImageItemInstanceDualResImage
relationship.hasService:   thought-exp:ImageItem # New Atom functionality
relationship.hasService:   demo:DualResolution   # Original Imageimage collection functionality
relationship.hasModel:     fedora-system:ContentModel-3.0
DS-COMPOSITE-MODEL:        datastream: FULL_SIZE # from original demo:DualResImage
                           datastream: MEDIUM_SIZE # from original demo:DualResImage
                           datastream: RELS-EXT:  # from original demo:DualResImage
                           datastream: DC # from original demo:DualResImage

Image item instance (one per image)

Code Block
pid:                      [item PID]
datastream:               MEDIUM_SIZE
datastream:               FULL_SIZE
relationship.isMemberOfdatastream:   [collection PID]            DC
relationship.isMemberOf   [collection PID] # de facto, see image collection demo objects
relationship.hasModel:    thought-expdemo:ImageItemInstanceDualResImage

Image item SDef:

Code Block
pid:                    thought-exp:ImageItem
method:                 service # APP Service document for one image collection
method:                 feed    # atom Image Collection feed
relationship.hasModel   atom:DomainModel # to have atom:Domain/feeds
relationship.hasModel   fedora-system:ServiceDefinition-3.0

...

Code Block
pid:      thought-exp:ImageItemInstanceImpl
relationship.isDeploymentOf: thought-exp:ImageItem
relationship.isContractorOf: thought-expdemo:ImageItemInstanceDualResImage
relationship.hasModel: fedora-system:ServiceDeployment-3.0

Image collection model:

Code Block
pid:                       thought-expdemo:ImageCollectionInstanceDualResImageCollection
relationship.hasService:   thought-exp:ImageCollection   # Adds atom collection functionality
relationship.hasModel:     fedora-system:ContentModel-3.0
DS-COMPOSITE-MODEL:        datastream: thought-exp.imageCollectionEntryimageCollection.ATOM_SERVICE
                           datastream: QUERY # from original demo:DualResImageCollection
                           datastream: XSLT  # from original demo:DualResImageCollection
                           datastream: LIST  # from original demo:DualResImageCollection

Image collection instance:

Code Block
pid:  [collection PID]

Image collection SDef:

...

relationship.hasModel      demo:DualResImageCollection
datastream:                QUERY
datastream:                XSLT
datastream:                LIST
datastream:                thought-exp.ImageCollection.ATOM_SERVICE

atom image collection SDef:

Code Block

atom image Image collection SDep:

Code Block

...