Fedora's HTTP API: Memento for versioning

120 views
Skip to first unread message

A. Soroka

unread,
Jan 7, 2016, 2:33:23 PM1/7/16
to fedora-tech@googlegroups.com Tech, fedora-community
On today’s tech call [1] we discussed the possibility of moving Fedora’s HTTP API for versioning [2] to be an implementation of Memento [3], the well-known and widely-supported specification for publishing versioned content on the Web.

There was general agreement that this move would be in alignment with our policy of adopting established or popular standards instead of “rolling our own”, that Memento is a thoroughly established standard, and that it would seem to support our use cases very well. There is a minor concern that there is currently no part of the Memento specification that covers the creation of versioned material, but Andrew Woods was able to speak with Herbert Van de Sompel (the leader of the Memento effort) about this at the CNI Fall Meeting, and he was very welcoming to the idea of expanding the specification in that direction.

We’d like to invite interested members of the community to comment on this idea. The tenor of the conversation was very positive: we saw no obvious problems with adopting Memento, and several advantages, but before any planning or work is done in this direction, we want to hear from you.

---
A. Soroka
The University of Virginia Library

[1] https://wiki.duraspace.org/display/FF/2016-01-07+-+Fedora+Tech+Meeting
[2] https://wiki.duraspace.org/display/FEDORA4x/RESTful+HTTP+API#RESTfulHTTPAPI-Versioning
[3] http://www.mementoweb.org/guide/quick-intro/



A. Soroka

unread,
Jan 7, 2016, 3:01:05 PM1/7/16
to fedora-tech@googlegroups.com Tech, fedora-community
On today’s tech call [1] some serious questions were raised about Fedora’s HTTP API for transactions [2] as we move towards creating specifications for Fedora’s HTTP API that would be independent of the current reference implementation. It’s important to note that the current Fedora implementation’s support for transactions is itself supported entirely by the JCR backend currently in use, and implementations using another backend will need to support whatever is eventually specified as the standard Fedora feature in this space by some other means.

The questions included:

1) To what extent do Fedora’s use cases require full (ACID [3]) transactions?

It seemed to some of us that of the traditional transaction guarantees, the use cases recorded for Fedora really demand only atomicity and durability. Reducing these guarantees in the (eventual) specifications of the Fedora APIs should reduce the burden on implementations considerably.

2) Would it be appropriate to mark transactions (in whatever form they are specified) as an “optional” feature in the Fedora API?

This would remove the burden entirely on implementations, but it raises the the question of how integral to common Fedora practices and workflows transactions or atomic operations are and will be. During the meeting, several people from the Islandora community remarked that current work on Islandora CLAW [4] is assuming the availability of multipart atomic operations from the Fedora API, and it’s not immediately clear how difficult it would be to remove that assumption. Marking this feature optional in the API specifications would mean that no framework that wanted to advertise compatibility with arbitrary Fedora implementations would rely on it being present in the repository API.

We invite interested parties in the community to comment on these questions. Does Fedora need full transactions, or would some simpler notion of “atomic batch operation” meet the use cases? In any case, is any such notion so indispensable that it must be included in all Fedora implementations, or should it be possible to do typical Fedora workflows in its absence? (This latter of course includes the possibility that middleware like Islandora CLAW or the nascent API-X project might host some such facility outside of the core repository APIs.)

---
A. Soroka
The University of Virginia Library

[1] https://wiki.duraspace.org/display/FF/2016-01-07+-+Fedora+Tech+Meeting
[2] https://wiki.duraspace.org/display/FEDORA4x/RESTful+HTTP+API#RESTfulHTTPAPI-Transactions
[3] https://en.wikipedia.org/wiki/ACID
[4] https://islandora-claw.github.io/CLAW/

Benjamin Armintor

unread,
Jan 7, 2016, 3:03:27 PM1/7/16
to fedor...@googlegroups.com, fedora-community
Some colleagues and I started sketching out a proposal in this vein yesterday, in a happy coincidence. There are some questions, but in the main I think this is an approach to be enthusiastic about.

- Ben




--
You received this message because you are subscribed to the Google Groups "Fedora Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-tech...@googlegroups.com.
To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.

Robert Sanderson

unread,
Jan 7, 2016, 4:30:21 PM1/7/16
to Fedora Tech, fedora-community

A very biased (as Memento co-author) +1 :)

Rob
--
Rob Sanderson
Information Standards Advocate
Digital Library Systems and Services
Stanford, CA 94305

Tom Johnson

unread,
Jan 7, 2016, 5:08:13 PM1/7/16
to fedor...@googlegroups.com

+1 from me too. (I'm one of the people Ben mentioned in his message).

I would be willing to contribute to any additions or supplements to the Memento spec, and could develop a second (Ruby RDF::LDP) implementation in parallel with any fedora development.

I think it would be good to advise the LDP community group if we have concrete plans to work on this. Ideally, this work could take place under the auspices of that group.

- Tom

Neil Jefferies

unread,
Jan 7, 2016, 5:09:33 PM1/7/16
to fedor...@googlegroups.com

+1

Since I'm still on this!

Neil

Nick Ruest

unread,
Jan 7, 2016, 5:10:57 PM1/7/16
to fedor...@googlegroups.com
+1 on the call.
+1 here.

-nruest

Neil Jefferies

unread,
Jan 7, 2016, 5:38:37 PM1/7/16
to fedor...@googlegroups.com
I can see the value of transactions at an object level - essentially as
an outcome of versioning.
It would be good to bundle a set of updates to different parts of an
object constituting a new version that either succeeds or fails.

Full ACID requirements across multiple objects I see as a symptom of
not properly changing mental gear from the SQL database table world to
the object/graph approach (queue indignant howls!).

However, I will concede at this point that I'm not sure we are really
ready for the pure object/graph play with the systems we currently have
in place. To do without transactions would mean delving much more into
rules and inference (e.g. to ensure that implicit reverse relationships
exist without requiring additional object updates).

So now I'm in two minds but "atomic batch operation" sounds like an
interesting approach.

Neil

Arif Shaon

unread,
Jan 7, 2016, 6:16:27 PM1/7/16
to fedora-c...@googlegroups.com, Fedora Tech

Memento looks really promising, so +1 from UNSW as well.

 

On a separate but related note, since Memento is an output from the same community that is behind OAI-ORE and OAI-PMH, I wonder if there is work done on possible interoperability/integration between these protocols. At UNSW library, our Fedora3-based repositories use OAI-PMH services to enable harvesting of records by external repositories, and there are use cases that involve enabling access to different versions of a record via OAI-PMH and Fedora 3 API.  I know this is a separate conversation, so I am just thinking out loud.

 

Cheers

Arif

 

 

Dr Arif Shaon

Lead Technical Officer, Library Repository Services, UNSW Library

 

Phone +61 2 9385 3088 | Fax +61 2 9385 8002 | a.s...@unsw.edu.au| http://www.library.unsw.edu.au

UNSW Library | UNSW Australia | UNSW Sydney NSW 2052 AUSTRALIA | CRICOS Provider Code: 00098G

 

From: fedora-c...@googlegroups.com [mailto:fedora-c...@googlegroups.com] On Behalf Of Chad Mills
Sent: Friday, 8 January 2016 9:58 AM
To: fedora-c...@googlegroups.com
Cc: Fedora Tech
Subject: Re: [fedora-community] Re: [fedora-tech] Fedora's HTTP API: Memento for versioning

 

As an unbiased long time lurker, +1 as well.

--
Chad Mills
Rutgers University Libraries
Digital Library Architect
Ph: 848.932.5924
Cell: 732.309.8538
https://rucore.libraries.rutgers.edu/

On Jan 7, 2016 4:30 PM, Robert Sanderson <azar...@gmail.com> wrote:

 

A very biased (as Memento co-author) +1 :)

 

Rob

On Thu, Jan 7, 2016 at 12:03 PM, Benjamin Armintor <armi...@gmail.com> wrote:

Some colleagues and I started sketching out a proposal in this vein yesterday, in a happy coincidence. There are some questions, but in the main I think this is an approach to be enthusiastic about.

 

- Ben

On Thu, Jan 7, 2016 at 2:33 PM, A. Soroka <aj...@virginia.edu> wrote:

On today’s tech call [1] we discussed the possibility of moving Fedora’s HTTP API for versioning [2] to be an implementation of Memento [3], the well-known and widely-supported specification for publishing versioned content on the Web.

There was general agreement that this move would be in alignment with our policy of adopting established or popular standards instead of “rolling our own”, that Memento is a thoroughly established standard, and that it would seem to support our use cases very well. There is a minor concern that there is currently no part of the Memento specification that covers the creation of versioned material, but Andrew Woods was able to speak with Herbert Van de Sompel (the leader of the Memento effort) about this at the CNI Fall Meeting, and he was very welcoming to the idea of expanding the specification in that direction.

We’d like to invite interested members of the community to comment on this idea. The tenor of the conversation was very positive: we saw no obvious problems with adopting Memento, and several advantages, but before any planning or work is done in this direction, we want to hear from you.

---
A. Soroka
The University of Virginia Library

[1] https://wiki.duraspace.org/display/FF/2016-01-07+-+Fedora+Tech+Meeting

[2] https://wiki.duraspace.org/display/FEDORA4x/RESTful+HTTP+API#RESTfulHTTPAPI-Versioning
[3] http://www.mementoweb.org/guide/quick-intro/



--
You received this message because you are subscribed to the Google Groups "Fedora Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-tech...@googlegroups.com.
To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Fedora Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-tech...@googlegroups.com.
To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.



 

--

Rob Sanderson

Information Standards Advocate

Digital Library Systems and Services

Stanford, CA 94305

--
You received this message because you are subscribed to the Google Groups "Fedora Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-communi...@googlegroups.com.


For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Fedora Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-communi...@googlegroups.com.

har...@umich.edu

unread,
Jan 8, 2016, 7:37:41 AM1/8/16
to Fedora Tech, fedora-c...@googlegroups.com
At ICPSR, we are relying on Transaction support to ensure that complex user actions are bundled together and is atomic. Our implementation depends on transaction support as an essential feature of Fedora and might add burden on our implementation if that support is removed. 
Thanks
Harsha

A. Soroka

unread,
Jan 8, 2016, 8:02:37 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
Harsha—

Are you using any qualities of transactions other than atomicity? Would (in answer to my first question) atomic batch operations serve you as well?

No one has suggested removing transaction (or atomic operation) support from the current implementation. The question on hand is whether that support should be enshrined in future specifications (and if so, in what form) so that all future implementations must support it.

---
A. Soroka
The University of Virginia Library

Harshakumar Ummerpillai

unread,
Jan 8, 2016, 8:35:13 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
Hi Soroka,
   I am not well versed with capabilities of Fedora transaction (at least I have not figured out how to create a snapshot within a transaction, a question for another topic), but in general we would like Fedora to provide ACID similar to any other database systems, or at least very close. Our systems are built using a hybrid of RDBMS and Fedora and it will be very helpful to have Java Transaction support around participating resources if possible to do so.

Thanks
Harsha

You received this message because you are subscribed to a topic in the Google Groups "Fedora Tech" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/fedora-tech/LAsEn46N5N0/unsubscribe.
To unsubscribe from this group and all its topics, send an email to fedora-tech...@googlegroups.com.

To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.



--
Harsha Ummerpillai
Architect/Developer Lead
Inter-university Consortium for Political and Social Research (ICPSR)

Tom Johnson

unread,
Jan 8, 2016, 8:50:49 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com

Taking atomicity and durability as assumed, can we clarify what consistency and/or isolation guarantees Fedora currently makes?

I don't see details on this in the transactions documentation link provided, and it's not clear to me what implementation burdens are at issue.

- Tom

Benjamin Armintor

unread,
Jan 8, 2016, 8:58:45 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com

In the LDP context, I'm not even sure what consistency means- I guess containment and membership triples?

A. Soroka

unread,
Jan 8, 2016, 9:04:56 AM1/8/16
to fedora-c...@googlegroups.com, fedor...@googlegroups.com
The current implementation offers snapshot isolation (I’m not quite sure what Harsha means by "create a snapshot within a transaction”— snapshot isolation is _inherent_ to transactions) and a set of consistency guards inherited from ModeShape/JCR which the tech team discourages people from using, to avoid further dependency on ModeShape/JCR.

I’m not sure that LDP is relevant in this context.

---
A. Soroka
The University of Virginia Library

> You received this message because you are subscribed to the Google Groups "Fedora Community" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to fedora-communi...@googlegroups.com.

Aaron Coburn

unread,
Jan 8, 2016, 9:20:59 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
Transactions within the current (Modeshape) implementation of Fedora provide full ACID guarantees, similar to most relational database systems. This works reasonably well in the context of a single-node deployment of Fedora.

However, I would like to bring up some reasons why full ACID guarantees become problematic as part of the Fedora API specification. I am making a clear distinction between the Fedora specification (API) and the Fedora implementation (Modeshape).

As mentioned above, in a single-node context, transactions are not terribly difficult to implement with locks and mutexes, and with Modeshape, these transactions basically come "for free" with the JCR notion of Sessions. I would note that the Modeshape community has found that providing ACID guarantees in a distributed context, however, is proving very difficult, and this is largely why Modeshape 5 will effectively dispense with horizontal scalability, focusing instead on vertical (single-node) scalability. I would also reiterate that no one is suggesting removing full ACID guarantees from the Modeshape implementation of Fedora.

In contrast, for anyone who is interested in a horizontally scalable Fedora system (for example: a Fedora implementation that runs on top of Hadoop and HBase), developing such an implementation that requires full ACID guarantees becomes very non-trivial. HBase and other such distributed systems have a weak notion of consistency, and true independence is very difficult, if not impossible, to achieve (in fact, it undermines much of the performance gains that scaling out would provide).

By requiring that the Fedora API specification provides full ACID guarantees, it would mean that any future Fedora implementation (i.e. an implementation that doesn't use Modeshape) would need to implement those guarantees. If, however, the API specification has a weak notion of transactions, (that is, as Adam put it: "atomic batch operations"), then a horizontally distributed implementation of Fedora becomes significantly more feasible.

Regards,
Aaron
signature.asc

Benjamin Armintor

unread,
Jan 8, 2016, 9:27:45 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com

I assume the API spec takes recourse to LDP, and am thinking about what consistency means in that context. I am otherwise unsure about how ACID fits into the API spec, though the A & D seem relatively clear.

A. Soroka

unread,
Jan 8, 2016, 9:32:00 AM1/8/16
to fedora-c...@googlegroups.com, fedor...@googlegroups.com
I’m not sure how the API spec can take recourse to anything, when it hasn’t yet been written.

Perhaps you are thinking of the documentation for the current implementation?

---
A. Soroka
The University of Virginia Library

Benjamin Armintor

unread,
Jan 8, 2016, 9:53:54 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
Ah, I think we are bringing somewhat different expectations to this conversation. Let me try again:

It is unclear what concepts of ACID-consistency might exist in a Fedora API specification without a notion of validity (and even ACID-isolation touches on validity, right?). There are potential validity claims to be made in the API spec, and I must suppose that ACID concepts in the API spec refer only to those, and not to the related concerns of the storage/implementation. It is clearer to me how ACID-atomicity and ACID-durability claims might be written into a specification for transactions regardless of the storage/implementation.

- Ben

Tom Johnson

unread,
Jan 8, 2016, 10:01:27 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
A. Soroka said:

The current implementation offers snapshot isolation (I’m not quite sure what Harsha means by "create a snapshot within a transaction”— snapshot isolation is _inherent_ to transactions) and a set of consistency guards inherited from ModeShape/JCR which the tech team discourages people from using, to avoid further dependency on ModeShape/JCR.

I’m not sure that LDP is relevant in this context.

Fedora makes certain guarantees about the integrity of internal links; assuming those guarantees are retained in the spec, it seems like consistency can't be dispensed with, right? Or are those the consistency guards that you mention?

Aaron Coburn said:
 
In contrast, for anyone who is interested in a horizontally scalable Fedora system (for example: a Fedora implementation that runs on top of Hadoop and HBase), developing such an implementation that requires full ACID guarantees becomes very non-trivial. HBase and other such distributed systems have a weak notion of consistency, and true independence is very difficult, if not impossible, to achieve (in fact, it undermines much of the performance gains that scaling out would provide).

This makes sense, but it's still unclear to me what guarantees are made by the Fedora APIs and how those interact with the (presumably stronger) ModeShape guarantees. Since "ACID" has multiple interpretations and, in some cases, levels of support for each of its parts (besides often being discussed as though RDBMSs are the only relevant databases), it doesn't seem like a useful stand-in for a rigorous accounting of those guarantees. It may work out that the requirements for transactions can be nicely abstracted away from any problematic assumptions about the backend.

- Tom

-Tom Johnson

A. Soroka

unread,
Jan 8, 2016, 10:17:01 AM1/8/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
I’m not sure what interactions you are imagining between internal links and consistency for user-managed transactions.

Internal links in a Fedora repository could be system- or user-manged. In the first case, it should never be possible to use a sequence of API operations to move the repository into a state wherein system-managed internal links have lost integrity. In the second case, I don’t understand the current implementation to make any guarantees about the integrity of those links, but it at least formerly did, and that facility has been repeatedly requested (e.g. [1]), and users have gone as far as to penetrate the Fedora codebase and rely directly on JCR functions to that end.

I’m sure you’ll agree that the (to-be-written) Fedora API specifications should not be a thoughtless translation of the current faults and strengths of the current implementation. The question at hand is whether to consider consistency for the API spec, not for the current implementation. (If the API adopts some such notion, I suppose the current implementation would move to support it.)

---
A. Soroka
The University of Virginia Library

[1] https://wiki.duraspace.org/display/FF/Optional+validation

A. Soroka

unread,
Jan 8, 2016, 10:19:10 AM1/8/16
to fedora-c...@googlegroups.com, fedor...@googlegroups.com
I’m not sure that isolation must touch on validity, but I think we can leave that point aside. More usefully, I’m not sure that the same specification that defines the API for transactions needs to (or should) define a notion of validity, only to refer to one. It seems to me reasonable to define that in a separate conversation with its own artifacts.

That all having been said, I hope it’s very clear by now that I am not in favor of including any such consideration in any Fedora specification. I would prefer to restrict the functionality associated with Fedora transactions to atomicity and durability. On the other hand, it is perfectly clear that there are members of the community who would like to be able to establish notions of validity and consistency in their repositories.

---
A. Soroka
The University of Virginia Library

A. Soroka

unread,
Jan 8, 2016, 10:25:47 AM1/8/16
to fedor...@googlegroups.com
> It may work out that the requirements for transactions can be nicely abstracted away from any problematic assumptions about the backend.

I would be _astonished_ by this. If that were the case, your previous sentence:

> Since "ACID" has multiple interpretations and, in some cases, levels of support for each of its parts (besides often being discussed as though RDBMSs are the only relevant databases), it doesn't seem like a useful stand-in for a rigorous accounting of those guarantees.


would seem to be wrong. We would all be able to agree on a straightforward and universal definition of ACID (aka an abstraction of the requirements for transactions) that the Fedora API could adopt. But we haven't (particularly although not only because of the issues around distribution, as Aaron discussed), which is one reason amongst others that the tech team decided to begin this conversation with the community.

---
A. Soroka
The University of Virginia Library

Tom Johnson

unread,
Jan 8, 2016, 10:42:12 AM1/8/16
to fedor...@googlegroups.com


On Jan 8, 2016 10:17 AM, "A. Soroka" <aj...@virginia.edu> wrote:
>
> I’m not sure what interactions you are imagining between internal links and consistency for user-managed transactions.
>

- T1 begins, with snapshot isolation.
- Deletion of R1 is added to T1.
- T2 begins, with snapshot isolation.
- An update to R2 is added to T2, containing a triple of the form <R2> <P> <R1>.
- T1 commits.
- T2 commits.

If we guarantee internal link integrity, T2 should fail as inconsistent.

> Internal links in a Fedora repository could be system- or user-manged. In the first case, it should never be possible to use a sequence of API operations to move the repository into a state wherein system-managed internal links have lost integrity. In the second case, I don’t understand the current implementation to make any guarantees about the integrity of those links, but it at least formerly did, and that facility has been repeatedly requested (e.g. [1]), and users have gone as far as to penetrate the Fedora codebase and rely directly on JCR functions to that end.
>

I don't follow much of this, but if internal link consistency is no longer a requirement of the API, obviously it won't effect transactions.

> I’m sure you’ll agree that the (to-be-written) Fedora API specifications should not be a thoughtless translation of the current faults and strengths of the current implementation. The question at hand is whether to consider consistency for the API spec, not for the current implementation. (If the API adopts some such notion, I suppose the current implementation would move to support it.)
>
> ---
> A. Soroka
> The University of Virginia Library
>
> [1] https://wiki.duraspace.org/display/FF/Optional+validation
>
> > On Jan 8, 2016, at 10:00 AM, Tom Johnson <johns...@gmail.com> wrote:
> >
> > A. Soroka said:
> >
> > The current implementation offers snapshot isolation (I’m not quite sure what Harsha means by "create a snapshot within a transaction”— snapshot isolation is _inherent_ to transactions) and a set of consistency guards inherited from ModeShape/JCR which the tech team discourages people from using, to avoid further dependency on ModeShape/JCR.
> >
> > I’m not sure that LDP is relevant in this context.
> >
> > Fedora makes certain guarantees about the integrity of internal links; assuming those guarantees are retained in the spec, it seems like consistency can't be dispensed with, right? Or are those the consistency guards that you mention?
>

A. Soroka

unread,
Jan 8, 2016, 10:49:09 AM1/8/16
to fedor...@googlegroups.com
Certainly, we want to be in close touch with the LDP CG. I’m not sure that this work should take place inside that group. I myself would prefer to continue the conversation within the Fedora community, at least until we have satisfied ourselves that Memento is something to which we _can_ commit. I don’t think we will know that until at least a certain amount of exploratory work is accomplished.

---
A. Soroka
The University of Virginia Library

A. Soroka

unread,
Jan 8, 2016, 10:53:55 AM1/8/16
to fedor...@googlegroups.com
> If we guarantee internal link integrity, T2 should fail as inconsistent.

Indeed, if we decide to adopt some notion of consistency, and if that notion includes this kind of internal link integrity, that transaction should fail. I’m not sure what you are arguing here. Are you suggesting that some kind of consistency _should_ or _should not_ be part of the Fedora API, and if the former, what kind of consistency are you suggesting that should be?

The facts are these: the current implementation, at various points in its history, sometime has and sometimes has not supported this kind of integrity. Many users have expressed interest in it or actually did use it. We now need to decide whether or not to require it as a feature of the Fedora API.

> I don't follow much of this, but if internal link consistency is no longer a requirement of the API, obviously it won't effect transactions.


I think you may be confused about the issue under discussion. The question on the table is exactly whether some notion of consistency _is_ going to be a requirement of the API for transactions.


A. Soroka
The University of Virginia Library

Tom Johnson

unread,
Jan 8, 2016, 11:25:42 AM1/8/16
to fedor...@googlegroups.com
On Fri, Jan 8, 2016 at 7:53 AM, A. Soroka <aj...@virginia.edu> wrote:
> If we guarantee internal link integrity, T2 should fail as inconsistent.

Indeed, if we decide to adopt some notion of consistency, and if that notion includes this kind of internal link integrity, that transaction should fail. I’m not sure what you are arguing here. Are you suggesting that some kind of consistency _should_ or _should not_ be part of the Fedora API, and if the former, what kind of consistency are you suggesting that should be?

I'm not *arguing* anything. I'm calling attention to a notion of consistency that is (or was?) in play for normal REST interactions. There are others (e.g. that there be a valid RDF serialization of the data); anything that would normally result in a 4xx response probably constitutes a definition of consistency that should be carefully considered before jettisoning the 'C' in ACID. That is the whole of my "argument".

The facts are these: the current implementation, at various points in its history, sometime has and sometimes has not supported this kind of integrity. Many users have expressed interest in it or actually did use it. We now need to decide whether or not to require it as a feature of the Fedora API.

Exactly.
 
> I don't follow much of this, but if internal link consistency is no longer a requirement of the API, obviously it won't effect transactions.

I think you may be confused about the issue under discussion. The question on the table is exactly whether some notion of consistency _is_ going to be a requirement of the API for transactions.

Adam, I understand the issue under discussion just fine, and I'm making a point that is relevant to it. I'm sorry that I'm not making myself understood to you, but frankly this conversation is becoming combative and I'm going to opt out of further participation. 
 



--
-Tom Johnson

Arif Shaon

unread,
Jan 11, 2016, 6:57:58 PM1/11/16
to fedor...@googlegroups.com, fedora-c...@googlegroups.com
A quick comment re "the community who would like to be able to establish notions of validity and consistency in their repositories ", I believe University of New South Wales would belong to this category as we have several Fedora 3-based repositories, one of which has to deal with approx. 10000 transactions per day (due to integration with Symplectic Elements that harvests records from various publishers' repositories, such as Web of Science and Scopus). As Fedora 3 does not support the notion of transaction, we are currently using a bespoke Java-based transaction-aware client to the Fedora 3 SOAP and REST APIs. So, an important consideration for migrating our Fedora3-based repositories to Fedora 4 would be full support for ACID transactions.
Happy to provide information if necessary.

Regards
Arif

Dr Arif Shaon
Lead Technical Officer, Library Repository Services, UNSW Library

Phone +61 2 9385 3088 | Fax +61 2 9385 8002 | a.s...@unsw.edu.au| http://www.library.unsw.edu.au
UNSW Library | UNSW Australia | UNSW Sydney NSW 2052 AUSTRALIA | CRICOS Provider Code: 00098G


A. Soroka

unread,
Jan 12, 2016, 11:10:21 AM1/12/16
to fedora-c...@googlegroups.com, fedor...@googlegroups.com
I think further information would be really useful and helpful for understanding the use cases around transactions, atomic operations, etc. We have only two recorded:

https://wiki.duraspace.org/display/FF/University+of+Virginia+-+Applications+can+be+easily+built+to+work+against+fedora
https://wiki.duraspace.org/display/FF/Transaction+Use+Case

so the more the merrier!

---
A. Soroka
The University of Virginia Library

A. Soroka

unread,
Jan 14, 2016, 12:07:34 PM1/14/16
to fedor...@googlegroups.com, fedora-community
On today’s tech call [1], it was observed that response to this proposal has been entirely positive. With that in mind, we agreed to keep an opportunity for comment open for another week (ending 21 Jan) just to be very sure.

In the absence of any objection between now and then, we will move forward to create a plan for shifting Fedora’s HTTP API for versioning to a presentation of Memento in the LDP context. We will be examining related work done in the Apache Marmotta project, we will be in contact with the Memento community (particularly on the question of HTTP action for creating new versions) and of course, anyone in the community with an interest is invited to participate.

[1] https://wiki.duraspace.org/display/FF/2016-01-14+-+Fedora+Tech+Meeting#id-2016-01-14-FedoraTechMeeting-memento

---
A. Soroka
The University of Virginia Library



> On Thu, Jan 7, 2016 at 2:33 PM, A. Soroka <aj...@virginia.edu> wrote:
> On today’s tech call [1] we discussed the possibility of moving Fedora’s HTTP API for versioning [2] to be an implementation of Memento [3], the well-known and widely-supported specification for publishing versioned content on the Web.
>
> There was general agreement that this move would be in alignment with our policy of adopting established or popular standards instead of “rolling our own”, that Memento is a thoroughly established standard, and that it would seem to support our use cases very well. There is a minor concern that there is currently no part of the Memento specification that covers the creation of versioned material, but Andrew Woods was able to speak with Herbert Van de Sompel (the leader of the Memento effort) about this at the CNI Fall Meeting, and he was very welcoming to the idea of expanding the specification in that direction.
>
> We’d like to invite interested members of the community to comment on this idea. The tenor of the conversation was very positive: we saw no obvious problems with adopting Memento, and several advantages, but before any planning or work is done in this direction, we want to hear from you.
>
> ---
> A. Soroka
> The University of Virginia Library
>

David Wilcox

unread,
Jan 14, 2016, 1:47:21 PM1/14/16
to Fedora Tech, Fedora Community
We discussed this topic at today’s Fedora Tech meeting [1], and we agreed that we need to document the use cases for transactions on the wiki. At least two use cases for fully ACID transactions were mentioned in this thread (from UNSW and ICPSR) and there may be others in the community. We’d like to discuss these use cases on the next Fedora Tech call [2], so please document them on the wiki [3] before then - even if it is just a brief description so we can discuss in more detail.

Regards,

Chad Mills

unread,
Jan 20, 2016, 10:44:24 AM1/20/16
to fedora-c...@googlegroups.com, Fedora Tech

As an unbiased long time lurker, +1 as well.

--
Chad Mills
Rutgers University Libraries
Digital Library Architect
Ph: 848.932.5924
Cell: 732.309.8538
https://rucore.libraries.rutgers.edu/

On Jan 7, 2016 4:30 PM, Robert Sanderson <azar...@gmail.com> wrote:

A very biased (as Memento co-author) +1 :)

Rob
On Thu, Jan 7, 2016 at 12:03 PM, Benjamin Armintor <armi...@gmail.com> wrote:
Some colleagues and I started sketching out a proposal in this vein yesterday, in a happy coincidence. There are some questions, but in the main I think this is an approach to be enthusiastic about.

- Ben
On Thu, Jan 7, 2016 at 2:33 PM, A. Soroka <aj...@virginia.edu> wrote:
On today’s tech call [1] we discussed the possibility of moving Fedora’s HTTP API for versioning [2] to be an implementation of Memento [3], the well-known and widely-supported specification for publishing versioned content on the Web.

There was general agreement that this move would be in alignment with our policy of adopting established or popular standards instead of “rolling our own”, that Memento is a thoroughly established standard, and that it would seem to support our use cases very well. There is a minor concern that there is currently no part of the Memento specification that covers the creation of versioned material, but Andrew Woods was able to speak with Herbert Van de Sompel (the leader of the Memento effort) about this at the CNI Fall Meeting, and he was very welcoming to the idea of expanding the specification in that direction.

We’d like to invite interested members of the community to comment on this idea. The tenor of the conversation was very positive: we saw no obvious problems with adopting Memento, and several advantages, but before any planning or work is done in this direction, we want to hear from you.

---
A. Soroka
The University of Virginia Library

--
You received this message because you are subscribed to the Google Groups "Fedora Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-tech...@googlegroups.com.
To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Fedora Tech" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedora-tech...@googlegroups.com.
To post to this group, send email to fedor...@googlegroups.com.
Visit this group at https://groups.google.com/group/fedora-tech.
For more options, visit https://groups.google.com/d/optout.



--
Rob Sanderson
Information Standards Advocate
Digital Library Systems and Services
Stanford, CA 94305

--

Aaron Birkland

unread,
Jan 21, 2016, 9:30:44 AM1/21/16
to fedora-c...@googlegroups.com, fedora-tech@googlegroups.com Tech
I'm very much +1 on this idea as well. There may be some interesting questions related to the contents of versioned resources - for example, would versions essentially retain their current semantics as a sort of 'snapshot' of an entire tree of resources, with every link to a repository resource replaced with a link to its memento within a version?

  -Aaron

Neil Jefferies

unread,
Jan 21, 2016, 9:59:23 AM1/21/16
to fedor...@googlegroups.com

We shouldn't need to - if we access the object via memento we have an implicit date time that we can use traverse the linked resources also using memento - without having to update the links in situ (good for preservation reasons)

If the links are external and don't support memento then we just have to link to the base URI.

Neil

On 2016-01-21 14:30, Aaron Birkland wrote:

I'm very much +1 on this idea as well. There may be some interesting questions related to the contents of versioned resources - for example, would versions essentially retain their current semantics as a sort of 'snapshot' of an entire tree of resources, with every link to a repository resource replaced with a link to its memento within a version?
  -Aaron

 

--
Reply all
Reply to author
Forward
0 new messages