Of Hats and Islandora T h e T u q u e S t o r y 1 Who is this - - PowerPoint PPT Presentation

of hats and islandora
SMART_READER_LITE
LIVE PREVIEW

Of Hats and Islandora T h e T u q u e S t o r y 1 Who is this - - PowerPoint PPT Presentation

Of Hats and Islandora T h e T u q u e S t o r y 1 Who is this guy? Jonathan Green Chief Technology Officer at jonathan@discoverygarden.ca twitter: @jonawesomegreen slides: http://bit.ly/1atrzte 2 3 Overview 4 Links


slide-1
SLIDE 1

Of Hats and Islandora

T h e T u q u e S t o r y

1

slide-2
SLIDE 2

Jonathan Green Chief Technology Officer at jonathan@discoverygarden.ca twitter: @jonawesomegreen slides: http://bit.ly/1atrzte

Who is this guy?

2

slide-3
SLIDE 3

3

slide-4
SLIDE 4

Overview

4

slide-5
SLIDE 5

Links

  • http://jenkins.discoverygarden.ca
  • http://github.com/Islandora/tuque
  • http://bit.ly/152F7Fl

5

slide-6
SLIDE 6

What is Tuque?

6

slide-7
SLIDE 7

7

slide-8
SLIDE 8

// Get the Tuque object $tuque = islandora_get_tuque_connection(); // Construct a new Fedora Object (but don't ingest it) $object = $tuque->repository->constructObject("jons:amazingobject"); // Set some properties $object->label = "An amazing demo object."; $object->owner = "Jonathan Green"; // Create a new datastream. DSID: AWESOME $datastream = $object->constructDatastream("AWESOME", "M"); $datastream->label = 'Cool demo datastream'; $datastream->mimetype = 'image/jpeg'; $datastream->setContentFromUrl('http://bit.ly/15walXA'); // Ingest the datastream $object->ingestDatastream($datastream); // Ingest the Object $tuque->repository->ingestObject($object);

8

slide-9
SLIDE 9

// Load an existing object $object = islandora_object_load('jons:amazingobject'); // Change some properties $object->label = 'This is a new label'; // Test is a datastream exists if (isset($object['DSID'])) { // the datastream exists } // Access datastreams using array notation $object['AWESOME']->label = 'Change datastream label'; // Iterate over datastreams foreach ($object as $datastream) { echo $datastream->id; } // Add and remove relationships $object->relationships->remove(FEDORA_MODEL_URI, 'hasModel', 'islandora:collectionCModel'); $object->relationships->add(FEDORA_MODEL_URI, 'hasModel', 'islandora:imageCModel');

9

slide-10
SLIDE 10

10

slide-11
SLIDE 11
  • 12 Contributors
  • 180 Commits
  • 23,155 Lines Added
  • 12,896 Lines Deleted

11

slide-12
SLIDE 12

12

slide-13
SLIDE 13

13

slide-14
SLIDE 14

14

slide-15
SLIDE 15

15

slide-16
SLIDE 16

Fedora Futures!

http://fcrepo.org/

16

slide-17
SLIDE 17

17

slide-18
SLIDE 18

18

slide-19
SLIDE 19
  • abstract classes
  • /implementations
  • /fedora3
  • /fedora4
  • /tests
  • abstract test classes
  • /implementations
  • /fedora3
  • /fedora4

19

slide-20
SLIDE 20

abstract class AbstractRepository extends MagicProperty {} class RepositoryDecorator extends AbstractRepository {} class IslandoraRepositoryDecorator extends RepositoryDecorator {} $general_repo = Tuque::GetRepository('fedora4'); $repository = new IslandoraRepositoryDecorator($general_repo); $repository = new CachingRepositoryDecorator($repository); class IslandoraFedoraRepository extends FedoraRepository {} class IslandoraFedoraObject extends FedoraObject {} $repository = new IslandoraFedoraRepository(...)

New Decorator Structure Old Class Structure

20

slide-21
SLIDE 21

21

slide-22
SLIDE 22

slides: http://bit.ly/1atrzte

22