EPrints Technical Mailing List Archive

Message: #01030


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

[EP-tech] Re: Associating eprints with other entities


On Thu, 30 Aug 2012 21:37:39 +0200, Jan Ploski <jpl@plosquare.com> wrote:
> Hi,
> 
> I'd like our eprints to be searchable using attributes of other, 
> associated entities. Specifically, we want to be able to search for 
> eprints that were published in journals that match certain criteria 
> (e.g. show all eprints published in OpenAccess journals). The attribute 
> values of journals may of course change in time and such changes should 
> be reflected immediately for all associated eprints.
> 
> The quickest and most primitive approach would be to reproduce the 
> desired journal attributes as metadata fields on eprints themselves and 
> set the values whenever an eprint is saved. But that would call for some 
> mechanism to ensure consistency when the journals themselves change 
> (e.g. if a journal becomes OpenAccess, update all eprints that were 
> published in it accordingly, to support search; perhaps through a db 
> trigger).
> 
> Furthermore, the direct approach of just storing the journal title in a 
> text field (rather than some stable foreign key) seems bad for ensuring 
> referential integrity (journal titles might change, too).
> 
> So I was wondering whether it would be proper to model the journals as a 
> new dataset and use itemref type fields to refer to them, or whether 
> there are other recommended approaches. Do you know of any examples that 
> might point me into the right direction?

Hi,

You can create a separate journals dataset and use itemref to tie the
journal into the eprint. There are some business-process issue with that
approach - how do users supply unlisted journal titles, who manages that
data etc.

Any other approach will require building an extension onto EPrints. You can
control how searches happen by creating a custom 'MetaField' e.g. by
returning a condition that queries a separate table.

No simple solutions I'm afraid, at least until we get further along with
adding support for CRIS-like features.

-- 
All the best,
Tim.