Code Monkey home page Code Monkey logo

wnetpbcore's Introduction

INTRODUCTION

This is a PBCore-compliant media asset database developed in Ruby on Rails.

To report bugs, email the author at [email protected]

To browse the source, go to git.mlcastle.net/?p=pbcore.git;a=summary

This software was developed by Roasted Vermicelli, LLC for the WNET Digital Archive. Copyright © 2008-2009 Educational Broadcasting Corporation. Copyright © 2009-2011 Roasted Vermicelli LLC.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.

A copy of the GNU General Public License can also be found in the ‘GPL-3’ file in the root directory of the project.

Code in the vendor and gems directories of this project was created by other authors under potentially different Free Software licenses; look in those directories for further information.

This work employs PBCore. The PBCore (Public Broadcasting Metadata Dictionary) was created by the public broadcasting community in the United States of America for use by public broadcasters and others. Initial development funding for PBCore was provided by the Corporation for Public Broadcasting. The PBCore is built on the foundation of the Dublin Core (ISO 15836), an international standard for resource discovery (dublincore.org), and has been reviewed by the Dublin Core Metadata Initiative Usage Board. Copyright: 2005, Corporation for Public Broadcasting.

LOCAL DEVELOPMENT SET-UP

Refer to the server set-up, but don’t actually set up a server.

Some points:

  • Copy a config from config/auth_rules to config/authorization_rules.rb (site-specific)

  • You need to create config/application.json (see .example file)

  • There’s now scripts/install_required_gems.rb which will install all the dependencies needed.

  • At the moment, with rails 2.1, rubygems 1.3.7 is stable. To install with rvm:

    $ rvm rubygems 1.3.7

  • If you are using RVM you may try this for libxml/libxslt:

    $ gem install libxml-ruby –version 0.8.0

    For libxslt, this worked (macports/osx):

    $ gem install -r libxslt-ruby –version 0.9.2 – –with-xml2-lib=/opt/local/lib –with-xml2-include=/opt/local/include –with-xslt-lib=/opt/local/lib –with-xslt-include=/opt/local/include

  • Sunspot gem versions > 1.1 do not seem to work with Rails 2.1

  • Sunspot needs to be indexed and running:

	$ rake sunspot:solr:start

$ rake sunspot:solr:reindex

SERVER SET-UP

See doc/INSTALL.rdoc

Notes

  • /config/authorization_rules.rb is symlinked to a ruleset in /config/auth_rules/

  • /config/auth_rules/lockdown.rb is for DHC

  • zed is z.mlcastle.net

  • wnet is out-of-date and unsupported

  • bavc is gone

There’s a way to get a list of records as an RSS feed. If you don’t provide a search parameter, the records come back BY DEFAULT in most-recently-modified order.

wnetpbcore's People

Contributors

aviflombaum avatar daverice avatar manfred avatar mlc avatar nzkoz avatar somebox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

wnetpbcore's Issues

API enhancements

Some way is desired to attach new non-instantiation elements to existing PBCore records, possibly leading to some kind of command-line tool like:

addpbcoredata --to assetuuid --pbcoreTitle[titlevalue|titleType] 

change annotation handling from one value to two (annotationType & annotation)

Update the database model to store 'annotation' and 'annotationType' (whereas it current tracks only 'annotation'). I suppose this would be:
create_table "annotations", :force => true do |t|
t.integer "instantiation_id"
t.text "annotation", :limit => 16777215
t.text "annotationType", :limit => 16777215
end
Then parse existing annotation values into the two fields:
annotation value before first occurrence of a colon (if any) to annotationType
annotation value after first occurrence of a colon (or whole string if no colon) to annotation.

Add annotationType index to the MANAGE section as a vocabulary.

Edit UI to have the place annotationType as a combobox before each annotation.

For the XML rendering.
If there is an annotationType then use
${annotationType}:${annotation}
if not then
${annotation}

an annotationType is not required, an empty value should be allowable

Allow configuration of auto-formatIdentifier on instantiation create

from Marcos "Automatically migrate Asset ID to instantiation ID (we can easily add the decimal points or suffixes: .1, .2A, etc.). This will greatly improve our workflow, and minimize errors."

Allow config of auto-formatID based on identifier (of specified identifierSource) plus incremental suffix.

can't search for merce

In the sample install, searching for 'merce' throws an exception. Other searches work fine.

The exception thrown is

ActiveRecord::RecordNotFound (Couldn't find all Assets with IDs (38590,42858,42836,40463,39208,40497,40475,39252,37396,38639,40469,40458,38641,42877,42834,40493,35576,40648,38633,38611) (found 19 results, but was looking for 20)):

initial 2.0 support

generate xml expressions in 2.0 form from current data
see email and attachments from January 18, 2011 12:12:35 PM EST

expandable faceted lists

On page load store top ~100 facets per faceted list. Display top ~14 but include a 'more...' option at the end of the list. The 'more' button would update the display to show the current displayed list +~10 additional values (until displaying ~100 or the whole list).

support 2.0 assetDate and dateType

  • and dateType controlled vocabulary
  • (opt) highlight assetDate red if not conforming to ISO8601 regex (ISO 8601 is recommended but not required)
  • (opt) calendar select drop down?

test issue

I wonder how GitHub's issue tracker works?

guided search page

allow for configurable guide search page. For example search boxes that just query the corresponding fields.
Collection
Series Title
Subject
Contributor

add auto-merge features for formatIdentifierSource

similar to how the auto-merge works for identifierSources but overwrite pre-existing instantiation. Thus if I upload an instantiation record, then change it, and re-upload it, if should overwrite the pre-existing record of matching formatIdentifier&formatIdentifierSource.

support custom 'Add new instantiation' steps that autofill tech metadata values

For instance, "Add a new CD instantatiation" When used this would fill formatPhysical="Audio CD", formatSamplingRate="44.1 kHz", and other assumed metadata. After clicking "add a new CD instantiation' the user would still end up on the edit-instantiation page but some would be autofilled according to the settings.

picklist management: sources

Within the picklists section add a method to identify and easily distinguish what values are part of the official PBCore recommended vocabularies.

Not applicable to 'Identifier Sources', 'Subject', 'Genre', 'Format Identifier Sources', 'Extension Names', 'Essence Track Identifier Sources'.

add support to suppress elements/fields from edit form

Some fields aren't relevant to some applications of the system (such as audienceRating for non-broadcast material or formatFrameSize for non-video collections).
Provide a checklist in the MANAGE section to suppress deselected PBCore elements/fields.
Include these elements fields:
subject/authority
genre/authority
relationType/identifier
coverage/Type
audienceLevel
audienceRating
creator/Role
contributor/Role
publisher/Role
rightsSummary
extension/Authority

and all individual fields from instantiation and essenceTrack except
formatID/source
formatLocation
formatPhysical/formatDigital
formatGenerations
formatDuration

configurable summaries in list view

add configuration for the summarization that occurs in list view so that we could make titles or other data more prominent without edits to ruby display code.

demote 'Destroy Found Set' button

Move the button for 'Destroy Found Set' down to where the 'Lend' and 'Merge' buttons are located in the administrative interface.

need way to close field selection list once opened

in the search bar, there's the 'Choose fields...' link that drops open a large list of fields for selection. Can we add a way to close this list? Then when the list ifs closed instead of 'Choose fields...', show the selected fields with a clear button, like 'Title, Subject [X]'. Clicking on 'Title, Subject' would open the list again, clicking of the X would unselect all field selections and revert the link back to 'Choose fields...'

series title controlled list update

Option 1: make series title list (and other list-based-on-other-lists) editable
or
Option 2: update the hard coded version as below:

I also have some additions to the list:

Adventures in Folk Music
Big Band Sounds
America & the World
American Composers Orchestra
American Story
Black Man in America
Brooklyn Academy of Music
Brooklyn Philharmonic Orchestra
Chamber Music New York
Chamber Music Society of Lincoln Center
Earplay
Evenings at the Thalia Book Club
Folksongs of America
Historic Heritage of Old New York
Inside Media
John Updike
Juggling Act
Life and Works
Margaret Juntwait
Music Maestro
National Association for American Composers
New York Queen of Commerce
Peace, Love, Creativity: Hope of Mankind
Roman Forum
Speaking for Ourselves
Steve Post
University of Chicago Roundtable
Vito Marcantonio Collection
WNYC Oral History Interviews
Youth in Government

And two corrections:

Citizens' Searchlight (not Citizen's Searchlight)
Housing Series (not Hudson Series)

advanced query syntax

it'd be nice to be able to search within specific fields, as we could with Sphinx.

support annotation type

add annotationType vocabulary in manage section.
add annotationType dropdown in GUI besides every annotation type
for now suppress annotationType in PBCore XML (not valid PBCore 1.3) or append it to beginning of the annotation value with a colon delimiter.
in PBCore 2.0 this will probably be:
Sony

combo-boxes

allow for both data entry via dropdown or free text data entry in selected fields

video upload & playback

we need to be able to specially create instantiations with video files in them, and to be able to play back those video files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.