Closed mcritchlow closed 8 years ago
At some point we could walk through the relevant sections of our code, although I'm not super familiar with all of it (we could bat our eyes at @val99erie and see if she'll help us).
That could be helpful. Thanks @dunn. I've reviewed some of the older codes at github, which haven't been updated since this May. Where can I find the codes for the latest version?
It's on a private GitHub Enterprise instance. Matt has access, and we could probably give you access as well.
It will be great if I can take a look at the codes. Thanks @dunn.
@mcritchlow: Our current model is fairly simple. Each local authority record includes a type (e.g., Person, Topic, Organization), a name/label, and a URI. Local authorities are created as needed upon ingest (metadata includes type). The ingest process checks if a local authority with that string/type already exists before creating a new one.
The administrative interface for managing local authorities currently allows you to edit, merge, or delete a record.
Screen shot of admin interface Object record referencing local heading: http://alexandria.ucsb.edu/catalog/f3xw4jdn.ttl (see marcrel:cre)
Note that we are also creating local authorities for the MARC harvest collections (ETDs and cylinders) because URIs are not yet included in our catalog records.
Hi, I just got back from a trip, so my head isn't really in the code right now, but I'll point you at some parts of the code you might want to look at.
You probably don't need access to UCSB's private repo, there is an older repo on github that you can view: https://github.com/curationexperts/alexandria
As Chrissy mentioned, the models for the local authority objects are: Person, Group, Organization, and Topic: https://github.com/curationexperts/alexandria/blob/master/app/models/person.rb https://github.com/curationexperts/alexandria/blob/master/app/models/topic.rb
And the configuration is here: https://github.com/curationexperts/alexandria/blob/master/config/initializers/controlled_vocabularies.rb#L10
That Vocabularies::LOCAL
class from the initializer is defined here:
https://github.com/curationexperts/alexandria/blob/master/lib/vocabularies/local.rb
Keep in mind that ADRL is currently on an old version of curation_concerns gem (we are in the middle of upgrading right now), so if you are building a new app based on curation_concerns, there might be significant changes from what the ADRL code does.
Some of the vocabularies' behaviors are defined in the oargun gem: https://github.com/curationexperts/oargun
Depending on how you want your vocabularies defined, the oargun gem might not work for you, but you can probably copy some of the code out of it.
I forgot to mention, the classes that are defined in the oargun gem are used in our work models like this: https://github.com/curationexperts/alexandria/blob/master/app/models/concerns/metadata.rb#L25
Thanks @chrissyrissmeyer and @val99erie ! And @dunn and I didn't even have to formally bat our eyes (which should be an emoji)
Thanks you very much, @chrissyrissmeyer & @val99erie. I've visited those codes recently and I am also writing a simple module to create authority records for our demo purpose. I think we can do it in a similar way. But are there any changes in your latest implementation regarding the local authorities system or not?
@lsitu nothing really significant, beyond a bit of refactoring and adding locations to the local authorities we create: https://gist.github.com/dunn/99d7c1ea4caaac04904281864267e3a2 (that patch won't apply to the curationexperts/alexandria code, though).
Got it. Thanks @dunn for digging this out.
Identify how UCSB has implemented their local authority control system, as it's a need we have as well.
I'm tagging @dunn and @chrissyrissmeyer so we could perhaps have the discussion here.