Skip to content

Instantly share code, notes, and snippets.

@rsinger
rsinger / gist:955713
Created May 4, 2011 18:21
Threach Code
def start_threading(triplers)
#puts "Start threading"
triplers.threach(triplers.length) do |tripler|
#triplers.each do |tripler|
parse_lines_or_warm_threads(tripler)
end
triplers.each do |tripler|
begin
module RDF
##
# Alias for `RDF::Resource.new`.
#
# @return [RDF::Resource]
def self.Resource(*args, &block)
Resource.new(*args, &block)
end
@rsinger
rsinger / gist:733607
Created December 8, 2010 17:35
Dewey explanation
A very good question (and not an easy one to answer). The short answer
would be: Language _is_ an element of the domain to be described (Dewey
concepts), so a different language should generate a different URI,
because it describes a separate instance of a concept. A longer answer:
My basic premise here was that a URI like http://dewey.info/class/641/
should indentify class 641 across all versions/languages of the DDC, not
just the most current version or a multilingual version. Why?
1. Labels can change over time for a given class, which could lead to
javascript:
(function(){
if(document.URL.match(/^http:\/\/dbpedia\.org\//)) {
document.location = document.URL.replace("http://dbpedia.org/page/","http://en.wikipedia.org/wiki/");
} else if (document.URL.match(/^http:\/\/en.wikipedia\.org\/wiki/)) {
document.location = document.URL.replace("http://en.wikipedia.org/wiki/", "http://dbpedia.org/page/");
}
})();
def parse_iii_marc(marc_text)
record = MARC::Record.new
marc_text.split("\n").each do |line|
if line =~ /^LEADER\s/
record.leader = line.sub(/^LEADER\s/, '').chop
elsif line =~ /^[0-9]{3}\s/
tag = line[0,3]
if tag < "010"
record << MARC::ControlField.new(tag,line[7..-1].chop)
else
require '/Users/rosssinger/Projects/ruby-marc/trunk/lib/marc'
tags = ['001','005', '100','110','111','240','243','245', /^6[0-9][0-9]$/, '700', '710', '711']
recs = 0
fields = 0
MARC::Reader.new('/Users/rosssinger/Downloads/ic_marc.mrc.mrc').each do | rec |
recs += 1
tags.each do |tag|
if tag.is_a?(String)
t = rec.find_all { | f | f.tag == tag }
else
require 'rubygems'
require 'marc'
tags = ['001','005', '100','110','111','240','243','245'] + ('600'..'699').to_a + ['700', '710', '711']
MARC::Reader.new('blacklight-data/lc_records.utf8.mrc').each do | rec |
fields = rec.find_all {|f| tags.index(f.tag) }
end
require 'rubygems'
require 'marc'
MARC::Reader.new('blacklight-data/lc_records.utf8.mrc').each do | rec |
rec.fields('001')
end
require 'rubygems'
require 'marc'
tags = ['001','005', '100','110','111','240','243','245'] + ('600'..'699').to_a + ['700', '710', '711']
MARC::Reader.new('blacklight-data/lc_records.utf8.mrc').each do | rec |
fields = rec.fields(tags)
end
require 'rubygems'
require 'marc'
MARC::Reader.new('blacklight-data/lc_records.utf8.mrc').each do | rec |
rec['001']
end